Прямая трансляция HTML5 с альфа-каналом

Мы пытаемся транслировать видеофайл в прямом эфире с альфа-каналом. Адаптивная потоковая передача была бы отличной, но не обязательной. Потоковое вещание — довольно новая для нас территория.

Мы обнаружили, что WebM (VP9) кажется единственным форматом в Интернете, который поддерживает альфа-канал. Мы попытались использовать модуль nginx-rtmp в качестве сервера потоковой передачи (MPEG-DASH) и транслировать файл с помощью ffmpeg. Но альфа-канал был потерян. Вероятно, потому что RTMP требовал от нас транслировать видео в формате FLV, который не поддерживает альфа-канал.

Есть ли у кого-нибудь опыт потоковой передачи видео rgba в Интернете? Было бы интересно познакомиться с совместимыми коммерческими решениями. Моими следующими подходами будут попытки использовать Icecast. В Интернете не так много информации, но есть эта статья, в которой потоковая передача веб-сайта напрямую кажется возможной. .


person air5    schedule 03.03.2021    source источник
comment
Вы можете транслировать WebM с помощью DASH. Только не отправляйте исходное видео через RTMP. Загрузите сегменты напрямую. И да, вы можете транслировать WebM через Icecast и совместимые серверы, но это не даст вам адаптивного битрейта.   -  person Brad    schedule 04.03.2021
comment
Но я не могу отправить фрагментированный/сегментированный (уверенный в терминологии) WebM на сервер nginx-rtmp-module, верно? У вас есть совместимый потоковый сервер?   -  person air5    schedule 04.03.2021
comment
Пропустите этот модуль вообще. Вам просто нужен Nginx для обслуживания статических файлов, выводимых вашим кодировщиком.   -  person Brad    schedule 04.03.2021
comment
Я попробовал 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, но ни обычный видеоэлемент, ни dash.js, ни video.js не воспроизводят его в прямом эфире, а после завершения потока в виде файла.   -  person air5    schedule 04.03.2021
comment
Вам нужно создать манифест и сегменты DASH, а не выводить в один WebM. Взгляните на это: stackoverflow.com/a/56560631/362536 ffmpeg.org/ffmpeg-formats.html#dash-2   -  person Brad    schedule 04.03.2021
comment
Я не понимаю, думаю, у меня меньше знаний о ffmpeg, так что решите это 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   -  person air5    schedule 05.03.2021