Shell 需要解释ffmpeg和pipes命令的详细信息吗
获得以下信息:Shell 需要解释ffmpeg和pipes命令的详细信息吗,shell,ffmpeg,pipe,Shell,Ffmpeg,Pipe,获得以下信息: mkfifo intermediate1.mpg mkfifointermediate2.mpg ffmpeg-i input1.avi-sameq-y intermediate1.mpg
mkfifo intermediate1.mpg
mkfifointermediate2.mpg
ffmpeg-i input1.avi-sameq-y intermediate1.mpg
在我使用或修改它之前,我想完全理解它
的作用是什么
我知道“是管道,但为什么?”
ffmpeg之后的-f mpeg是什么(似乎,它告诉ffmpeg接受cat(?)的管道输入输出) 这实际上是两个部分:
)只是一种不向程序传递输入/EOF的简单方法。我不确定是否需要它,但可能是因为您正在使用命名管道
2(&
)只需将命令推到后台,并允许您执行其他操作。这是必要的,因为否则,ffmpeg将只是坐在那里等待命名管道的另一端“打开”
管道后的反斜杠
管道后面的反斜杠仅用于在多行上输入long命令。如果你想把它写在一行上,你应该省略反斜杠。您会注意到提示与通常的[user@machine在输入第一行(以反斜杠结尾)后,将目录]$
(或任何内容)更改为类似于
。这表示您的命令从前一行继续执行
ffmpeg-f交换机
指示-f开关允许您强制文件格式。在中,您希望强制输入格式(读取:告诉ffmpeg预期的输入格式),因为您使用管道位作为输入。通常,它会尝试根据文件扩展名和/或“文件魔法”猜测输入格式
mkfifo intermediate1.mpg
mkfifo intermediate2.mpg
ffmpeg -i input1.avi -sameq -y intermediate1.mpg < /dev/null &
ffmpeg -i input2.avi -sameq -y intermediate2.mpg < /dev/null &
cat intermediate1.mpg intermediate2.mpg |\
ffmpeg -f mpeg -i - -sameq -vcodec mpeg4 -acodec libmp3lame output.avi