I have been using Janus[1] signaling server to broadcast live drone video on my website and it has worked flawlessly with multiple expectators. The drone video is captured through a Janus webrtc library in the Android phone connected to the drone.[3]
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.
I was asked today to help on exactly this for an artistic project, do you have a write-up to share? I'm also a fan of Xirsys And Janus, good to see it plugged.
Hello telesilla, I do not have write up as this is part of a project I am hoping to commercially release. If you have specific questions let me know.
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.
Wow thanks for the comprehensive reply, I wasn't expecting that! I can't wait to see more from you. Best of luck - it seems a good time to be working with drones.
Wow @ptsneves, that sounds really cool. Could you give me a consultation on video streaming? I want to implement this into my product. If so, please write to my username at gmail. Thank you!
use a phone on drone for camera, how about its zoom functions? can it record far distance contents? per my understanding phone-camera is only good for relatively short distance objects which is not the use case for drones? Thanks.
Hello auskje, maybe my post was not clear. The phone acts as a connecting point to the drone, through a manufacurer's SDK.
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.
Thanks, that let me find the pricing. It looks like it's $0.48/hr for a two-person meeting, or $30/hr for a 50-person meeting: https://www.twilio.com/video/pricing
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.
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