2011-12-06 11 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 &の機能は何ですか?

私は理解しています|パイプなのですが、なぜですか?\? ffmpegの後に-f MPEGとは何

(ようだ、それは(catからの出力にパイプで連結を受け入れるようにffmpegのを告げる?))

答えて

1

<を/ dev/null &

これは実際にあります二つの部分:

  1. <を/ dev/null
  2. &

1(< /dev/null)は、入力/ EOFをプログラムに渡す単純な方法です。私はそれが必要であるかどうかはわかりませんが、名前付きパイプを使用している可能性があります。

2(&)は、コマンドをバックグラウンドにプッシュするだけで、他の操作を行うことができます。これは、そうでなければ、ffmpegがそこに座って、名前付きパイプのもう一方の端が「開く」のを待つためです。パイプの後にバックスラッシュは、単にそこにあるパイプ

バックスラッシュを使用すると、複数行に長いコマンドを入力できるようにします。 1行に書きたい場合は、バックスラッシュを省略してください。プロンプトは、通常の[[email protected] directory]$(または何でも)から、>などのように、最初の行を入力すると(バックスラッシュで終わる)変更されます。これは、コマンドが以前の行から継続されていることを示します。 man page for ffmpeg

を切り替える-f

ffmpegのは、-fスイッチを使用すると、ファイル形式を強制することを可能にすることを示しています。 example in the FAQでは、パイプラインビットを入力として使用しているので、入力フォーマットを強制したい(読んでください:どの入力フォーマットを期待するかを指定してください)。通常、ファイル拡張子やファイルマジックに基づいて入力フォーマットを推測しようとします。

関連する問題