ffmpeg: я не могу заставить tee работать для рестриминга

Я пытался наложить изображение на поток rtmp и повторно отправить его в Facebook Live и Twitch, используя nginx с модулем rtmp и ffmpe. Я использовал этот код для каждой службы:

ffmpeg -i rtmp://localhost/app/streamkey -i logo.png -filter_complex "[0:v][1:v] overlay=0:0" -c:v libx264 -preset veryfast -bufsize 4000k -c:a aac -b:a 160k -ar 44100 -f flv rtmp://live-api.facebook.com:80/rtmp/streamkey;

У меня есть одна команда для Facebook Live и другая для Twitch, но она потребляет много оборудования, поэтому, осмотревшись, я нашел обходной путь с помощью tee seudo-mixer:

ffmpeg -i rtmp://localhost/app/streamkey -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" -c:v libx264 -preset veryfast -bufsize 4000k -c:a aac -b:a 160k -ar 44100 -f tee "[f=flv]rtmp://live-api.facebook.com:80/rtmp/streamkey|[f=flv]rtmp://live-jfk.twitch.tv/app/streamkey"

Он отлично работает с Facebook Live, но когда Twitch запускает прямую трансляцию, изображения нет, только черный экран.

Что я делаю не так и как заставить этот поток работать?


person Jorge Vértiz    schedule 24.04.2018    source источник


Ответы (1)


Сопоставьте все потоки явно, а для FLV требуются глобальные заголовки.

ffmpeg -i rtmp://localhost/app/streamkey -i logo.png -filter_complex "[0:v][1:v]overlay=10:10[v]" -map "[v]" -map 0:a? -c:v libx264 -preset veryfast -bufsize 4000k -c:a aac -b:a 160k -ar 44100 -flags +global_header -f tee "[f=flv]rtmp://live-api.facebook.com:80/rtmp/streamkey|[f=flv]rtmp://live-jfk.twitch.tv/app/streamkey"
person Gyan    schedule 24.04.2018
comment
Вот оно. Большое спасибо. - person Jorge Vértiz; 25.04.2018