4

核心をつかむために、最初のコマンドは機能するのに、2 番目のコマンドは機能しないのはなぜですか。これらは、内容が異なるわずかに異なるサイズのファイルを生成します。

ffmpeg -i test.wav -f ogg -acodec libvorbis test.a.ogg

ffmpeg -i test.wav -f ogg -acodec libvorbis - > test.b.ogg

test.a.ogg は正常に再生され、問題はありません。test.b.ogg はソース オーディオの途中から開始し、オーディオに停止やギャップがあります。また、トラックの長さは報告されません。

作成中のプログラムのソース ファイルをオンザフライで ogg にトランスコードしたいのですが、ffmpeg から stdout を自分のプログラムにパイプしようとしています。トランスコーディングはオンデマンドで行われるはずなので、結果を中間ファイルに入れるとパフォーマンスが低下します。

4

1 に答える 1

6

OGGはシーク可能である必要があるかもしれません。ffmpegドキュメントから:

ffmpegでstdoutに書き込む場合:

ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi

...これは...と同じです

ffmpeg -i test.wav -f avi pipe: | cat > test.avi

一部の形式(通常はMOV)では、出力プロトコルがシーク可能である必要があるため、パイプ出力プロトコルで失敗することに注意してください。

于 2012-01-16T17:42:48.547 に答える