2011-12-06 69 views
0

得到了FFmpeg FAQ如下:需要的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 

之前,我使用或修改它,我想完全理解它。

< /dev/null &是做什麼用的?

我明白|是管道,但爲什麼| \?

什麼是-f MPEG的ffmpeg後(看來,它告訴FFmpeg從貓(?)接受輸出管道)

回答

1

<的/ dev/null的&

這實際上是兩個部分:

  1. <的/ dev/null的
  2. &

1(< /dev/null)只是一個簡單的方法來將不輸入/ EOF傳遞給程序。我不確定這是否需要,但可能是因爲您正在使用命名管道。

2(&)只是將命令推送到背景並允許您執行其他操作。這是必要的,因爲否則,ffmpeg就會在那裏等待命名管道的另一端「打開」。

反斜槓管

後的管後反斜線只是在那裏讓你在多行輸入很長的命令。如果你想把它寫在一行上,你應該省略反斜槓。您會注意到,在輸入第一行(以反斜槓結尾)後,提示會從通常的[[email protected] directory]$(或其他任何內容)更改爲諸如>之類的內容。這表示您的命令正在從前一行繼續。

ffmpeg的-f開關

man page for ffmpeg表明-f選項可以強制的文件格式。在example in the FAQ中,由於使用管道位作爲輸入,您希望強制輸入格式(請參閱:告訴ffmpeg預期的輸入格式)。通常,它會嘗試根據文件擴展名和/或「文件魔法」來猜測輸入格式。