我一直试图在rtmp流上叠加图像并使用带有rtmp模块和ffmpe的nginx将其重新发送到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启动直播时,没有图像,只有黑屏。
我做错了什么,如何让这个流工作?
答案 0 :(得分:2)
明确地映射所有流,对于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"