从空管道持续流式传输,然后根据需要向管道添加数据

从空管道持续流式传输,然后根据需要向管道添加数据

本质上,我想要做的是让 ffmpeg 使用空管道连续流式传输到 RTMP 服务器,然后当我想要流式传输某些内容时,将数据添加到管道。

我这样做的原因是,我正在从外部源传输视频。每当视频播放完毕,ffmpeg 就会崩溃,因为它没有收到任何数据,所以我必须再次打开它。

这可能吗?如果不行,还有其他方法吗?

我当前的命令是:

ffmpeg -i pipe:0 -re -c copy -f flv rtmp://mystream.com/key

pipe:0是...的一个实例韋特達

答案1

我解决这个问题的方法是使用我自己的RTMP 服务器将视频流传输到主机。

我使用以下方式将视频传输到本地 RTMP 服务器

mkfifo x
ytdl http://youtube.com/watch?v=12345 > x
ffmpeg -re -i x -c copy -f flv rtmp://mylocalRTMPserver/stream

然后使用以下命令创建从该流到主机的流

ffmpeg -re -i rtmp://mylocalRTMPserver/stream -c copy -f flv rtmp://mystream.com/key

如果上述流没有收到输入,它会保持打开状态约 30 秒,这样我就可以关闭 youtube 管道并再次打开它。

虽然这可行,但还需要运行两个 ffmpeg 实例,从而产生额外的开销。

相关内容