web-dev-qa-db-ja.com

-anスイッチは2パスffmpegエンコードの最初のパスを高速化しますか?

多くの2パスエンコードの例を見てきましたが、多くの場合、最初のパスで-anスイッチを使用します。これは、最初のパスでは、より効率的なエンコードを作成するために2番目のパスで使用されるログファイルのビデオデータのみがサンプリングされるためと思われます。 この質問 に答えると、このスイッチに再び気づきました。2パスエンコードの最初のパスでこのスイッチを使用すると、何か効果があるのでしょうか。

1
Elder Geek

効果はありますか?

はい。 -anスイッチを使用すると、ffmpegはオーディオストリームの処理をスキップします。

肯定的なメリットは?

はい、処理時間にかなりの減少があります。テストに使用する60秒のmp4ソースクリップを取り、コマンドを発行しました

time ffmpeg -i input.mp4 -y -an -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null

次の出力が得られました。

frame= 1799 fps=174 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

出力ファイルは空で、エンコードされたものはありません

real    0m10.477s
user    0m12.972s
sys 0m0.188s

後で比較するために、結果のログファイルan.logの名前を変更しました。

次のように-anスイッチなしでコマンドを再実行しました

time ffmpeg -i input.mp4 -y -c:v libvpx -quality best -b:v 225k -qmin 10 -qmax 42 -maxrate 300k -bufsize 1000k -threads 4 -pass 1 -f webm /dev/null

結果の出力は次のとおりです。

frame= 1799 fps=165 q=0.0 Lsize=     505kB time=00:01:00.01 bitrate=  68.9kbits/s    
video:0kB audio:483kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.367473%

    real    0m11.088s
    user    0m13.792s
    sys 0m0.156s

したがって、-anを使用して最初のパスを実行する方が少し速いように見えます

最初のパスのログファイルに変更はありますか?いいえ。ログファイルは、diffを実行すると証明されるように、同じです。

2
Elder Geek