假设我将一个视频流分成 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