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