如果一个分支中断,则流分支继续

如果一个分支中断,则流分支继续

假设我将一个视频流分成 2 个ffplay进程

cat video.mp4 |  tee >(ffplay -i -) >(ffplay -i -) > /dev/null

现在,如果我终止其中一个进程ffplay,流就会停止,这不是我想要的。

ffplay如果第二个进程被杀死,如何修改此命令以继续将视频流式传输到第一个进程?

PS:我正在寻找一个没有命名管道(fifo)的解决方案

答案1

一个办法

cat video.mp4 |  tee >(ffplay -i - || cat >/dev/null ) >(ffplay -i - || cat >/dev/null) > /dev/null

例子:要保存加密的网络摄像头捕获并同时播放,可能会终止文件保存进程 ( openssl) 或播放器 ( ffplay),我可以使用:

ffmpeg -f alsa -ac 2 -i plughw:0,0 -f video4linux2 -s vga -i /dev/video0 -f ogg - | tee >(openssl enc -k mypassword -aes-256-cbc > encrypted-capture.aes-256-cbc || cat >/dev/null) >(ffplay -fs -i - || cat >/dev/null) > /dev/null

您必须终止该ffplay进程(按f然后运行pkill ffplay),而不是关闭窗口Esc

相关内容