ffmpeg:我不能让 tee 为流媒体工作

标签 ffmpeg video-streaming rtmp

我一直在尝试使用带有 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,需要全局 header 。

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"

关于ffmpeg:我不能让 tee 为流媒体工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006200/

相关文章:

streaming - 如何获取RTMP URL

ios - 通过 RTMP 从 Wowza 到 iOS 进行直播

node.js - 如何同步执行ffmpeg命令?

http - 通过 HTTP 的 VLC HTTP 流总是在 10 秒后停止

python - 流媒体音频和视频

android - Youtube 视频在移动绕过时被屏蔽

flash - 将 adobe media server 视频直播到 HTML 5

ffmpeg - 我对过滤器图描述中的无效文件索引 1 有疑问

javascript - 使用ffmpeg javascript从wav音频文件转换为pcm音频文件

video - FFmpeg 损坏的串联输出