【问题标题】:Can ffmpeg resume reading from a pipe after interruption?ffmpeg 可以在中断后恢复从管道读取吗?
【发布时间】:2017-11-21 21:04:12
【问题描述】:

我无法确定这是超级用户、SO 还是视频制作,如果您认为我弄错了,我深表歉意。

我从计算机上的各种输入(一些通过 WiFi、一些 RTMP 等)获得了许多不同的视频流,并且我已将它们全部转码为原始 h264 帧。

现在我想将它们输出到 RTMP 流。例如,我将设置 camera1 输出到名为 CAM01 的命名管道。我可以让 ffmpeg 从管道中读取,但是当我想切换相机时问题就来了。我希望杀死camera1输出到管道,然后启动一个将camera2输出到同一个CAM01管道的新进程会让ffmpeg接收流,但是它挂在我杀死第一台相机之前收到的最后一帧。

但是,如果 camera1 的输出由于某种原因被中断(例如,与它的无线连接中断),那么当图片返回时 FFmpeg 接收流是没有问题的。

基本上,有没有办法让 ffmpeg 继续从管道读取,即使它被暂时中断,或者我想要做的事情根本不可能这样?

我是命名管道的菜鸟,所以请原谅我潜在的无知。 我目前正在使用的命令(请注意,现在它会生成音频,因为我还没有对音频进行排序)

ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i CAM01 -vcodec copy -acodec aac -ab 128k -g 120 -strict experimental -f flv "my_rtmp_URL"

如果重要的话,CAM01 管道基本上只包含原始 h264 帧(就像你摆脱 raspivid 一样)

TIA!

编辑:忘了说,我在 Linux Mint 上

【问题讨论】:

标签: linux ffmpeg named-pipes


【解决方案1】:

对于任何试图做同样事情的人

如果您在前一个输入被终止之前开始写入管道,ffmpeg 似乎会在前一个输入被终止时不间断地继续编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多