Ffmpegは、ffmpeg -i -
を使用してディスクから読み取るのではなく、stdin
からデータを読み取ることができることを知っています。これはすべてのファイル形式でサポートされていますか?そうでない場合、サポートされているファイル形式のリストはありますか?
ffmpeg -protocols
を実行して、pipe
プロトコル(stdinおよびstdoutからの読み取りと書き込み)がffmpegのバージョンでサポートされているかどうかを確認してから、ffmpeg -formats
を実行してサポートされている形式のリストを表示する必要があります。 。以下の抜粋では、一部のプロトコルでシーク可能でなければならないという出力パイプに関する注記が表示されます。入力プロトコルの場合、そのような制限はありません。
man ffmpeg-protocols
から:
[〜#〜]プロトコル[〜#〜]
プロトコルはFFmpegで構成された要素であり、特定のプロトコルの使用を必要とするリソースにアクセスできます。
FFmpegビルドを設定すると、サポートされているすべてのプロトコルがデフォルトで有効になります。構成オプション
--list-protocols
を使用して、使用可能なすべてのものをリストできます。構成オプション
--disable-protocols
を使用してすべてのプロトコルを無効にし、オプション--enable-protocol=PROTOCOL
を使用してプロトコルを選択的に有効にするか、オプション--disable-protocol=PROTOCOL
を使用して特定のプロトコルを無効にすることができます。Ff *ツールのオプション
-protocols
は、サポートされているプロトコルのリストを表示します。現在利用可能なプロトコルの説明は次のとおりです。 ...パイプ
UNIXパイプアクセスプロトコル。UNIXパイプからの読み取りと書き込みを許可します。
受け入れられる構文は次のとおりです。
pipe:[<number>]
numberは、パイプのファイル記述子に対応する番号です(たとえば、stdinの場合は0、stdoutの場合は1、stderrの場合は2)。番号が指定されていない場合、デフォルトでは、stdoutファイル記述子が書き込みに使用され、stdinが読み取りに使用されます。
一部の形式(通常はMOV)では、出力プロトコルがシーク可能である必要があるため、パイプ出力プロトコルで失敗することに注意してください。