I’m obtaining H.264 video from a DJI drone in an Android library I wrote. From there the video is distributed via WebRTC to many subscribers. This works.
Now one came to the idea if it would be possible to have an RTMP stream aside, so that a parallel publishing of the video to platforms like YT or FB would be possible.
I integrated the code which does H.264 to FLV to RTMP and it works perfectly with at least two open source solutions I have tested: OSS/SRS (https://github.com/ossrs/srs) and node-media-server (https://github.com/illuspas/Node-Media-Server). I publish to instances running here in my LAN and view that by VLC. That works fine.
It doesn’t work if I publish to YT directly. Then I thought I try to insert restream.io into the chain. But it also does not work reliably. Restream at least is a bit more chatty regarding what’s happening, but not chatty enough: What I see is, that I can connect and disconnect - the dashboard window reacts promptly. Same as YT does. I see that the RS dashboard shows bitrate, frame rate and key frame rate and the statistics confirms that. Just - the screen remains black (as with YT) and there is just this spinning wheel.
I can exclude, that I have any kind of weird firewall problem, since I can perfectly uploading H264 as FLV stream using FFMPEG from the command line.
So what is the state: I have two open source RTMP servers, which tell me, all is fine. I have two major public RTMP servers, which don’t say much, but don’t confirm that it works either…
I'm looking for some hints to find out, what is wrong with my stream :)
The simple reason was: YT REQUIRES audio. My stream didn't contain any audio. So I multiplexed a silent fake audio stream into the upload and it worked.