With a TURN server from Xirsys[2], I have had live drone video recording as well as barely a second of latency. I disabled peer2peer video because I do not want a 4G connection to broadcast to multiple viewers.
The reason I have not used twilio(even though I evaluated its offerings) is that they do not provide on premises hosting and my potential customers are not normally interested in not having on premises hosting.
[1] https://janus.conf.meetecho.com/ [2] https://xirsys.com [3] https://github.com/ptsneves/janus-gateway-android
The camera of the phone is not used nor is the phone flying. Actually the phone is connected to a remote control. See [1].
The role of the phone is not only as a viewer of the live video being captured by the drone, but also as a 4G internet point and a hardware video encoder, that pumps the live video to my platform.
The basic thing is that if you are doing a basic demo without business logic you can easily pick up a Janus video room demo and set Xirsys as your ice server in the Java script file. After that, start front end work, to get to your demo goal. Of course if you know Janus you probably are already doing this. :)
For the android part, if any, you can pick the library that i quoted before.
My biggest difficulty, that almost made me give up was realizing that my reverse proxy internet facing machine needed to have the ports open necessary for webrtc. Otherwise you get extremely weird results in the ice candidate gathering stage, or sessions that take very long to start. Even weirder, the turn server does not work without it, which my limited understanding at the time did not even consider it. It may sound obvious in retrospective but the debugging results were just misleading.
With that problem solved i just programmed a small library in C# that sets up private video rooms per user group. Also programmed a system that gathers the mjr files after a live video session and makes it available in a gallery as webm files(tried mp4 for ios safari but never got them working)
The system design is glued together by a docker compose file which has containers for: asp.net core server, Janus, mjr transcoder, ngingx reverse proxy, and mysql database.
Sorry if this is not much detail, but I am a one man show and I dedicate the time apart from my family to this project and day time job, and I am really trying to be laser focused to release it commercially. Also, I work in an Eastern European country so my resources to hire out help, are more constrained. When I have a minimal viable product I will try to get it to the Show HN and hopefully work on the growth and scaling.
The bottom mentions that peer-to-peer room pricing is even lower, $0.18/hr for a two-person meeting, but I'm not sure when that's used.