ffmpeg:我无法让 tee 用于重新流式传输

ffmpeg: i cant make tee working for restreaming

我一直在尝试使用带有 rtmp 模块和 ffmpe 的 nginx 在 rtmp 流上叠加图像并将其重新发送到 Facebook Live 和 Twitch。我为每个服务都使用了这个代码:

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 开始直播时没有图像,只有黑屏。

我做错了什么,如何让这个流工作?

明确映射所有流,对于 FLV,需要全局 headers。

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"