2

We are trying to live stream a video file with alpha channel. Adaptive streaming would be great, but it's not a must. Streaming is pretty new territory for us.

We found out that WebM (VP9) seems to be the only format in the web that supports alpha channel. We tried using the nginx-rtmp-module as streaming server (MPEG-DASH) and broadcast the file with ffmpeg. But the alpha channel was lost. Probably because RTMP required us to broadcast the video as a FLV which doesn't support alpha.

Is anyone having experience in streaming rgba videos on the web? Getting to know compatible commercial solutions would be interesting tee. My next approaches would be trying to use Icecast. There is not much information online but this article where streaming a webm directly seems to be possible.

air5
  • 140
  • 2
  • 10
  • 1
    You can stream WebM with DASH. Just don't send the source video via RTMP. Upload the segments directly. And yes, you can stream WebM via Icecast and compatible servers, but that won't get you adaptive bitrate. – Brad Mar 04 '21 at 07:49
  • But I can't send fragmented/segmented (nur sure about the terminology) WebM to the nginx-rtmp-module server, right? Do you have a compatible streaming server in mind? – air5 Mar 04 '21 at 09:51
  • Skip that module altogether. You just need Nginx to serve the static files output from your encoder. – Brad Mar 04 '21 at 17:53
  • I tried `sudo ffmpeg -re -i claus.webm -g 52 -b:a 64k -c:v libvpx-vp9 -b:v 448k -f webm -movflags frag_keyframe+empty_moov stream.webm` but neither the regular video element, dash.js or video.js are playing it live, but after the stream has finished as a file. – air5 Mar 04 '21 at 20:45
  • 1
    You need to create a DASH manifest and segments, not output to a single WebM. Take a look at this: https://stackoverflow.com/a/56560631/362536 https://www.ffmpeg.org/ffmpeg-formats.html#dash-2 – Brad Mar 04 '21 at 20:54
  • I don't get it, think I have way to less knowledge about ffmpeg so solve this `ffmpeg -re -i claus.webm -map 0 -map 0 -c:a libvorbis -c:v libvpx-vp9 \ -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \ -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \ -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \ -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \ -f dash stream.mpd` – air5 Mar 05 '21 at 12:47

0 Answers0