マルチパスで H.264 でビデオをエンコードしたいと思います。試したのは次のとおりです:
ffmpeg -y -ss 00:00:12.0 -i "c:\vid\example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b:v 1200k -an -pass 1 -f h264 /dev/null
ffmpeg -y -ss 00:00:12.0 -i "c:\vid\example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b:v 1200k -acodec copy -pass 2 "c:\vid\encoded.mkv"
しかし、エラーメッセージが表示されます:
/dev/null: そのようなファイルまたはディレクトリはありません
ratecontrol_init: 統計ファイルを開けません
出力ストリーム #0:0 のエンコーダーを開いているときにエラーが発生しました - bit_rate、rate、width、height などのパラメーターが正しくない可能性があります
何か間違ったことをしましたか? ちなみに、FFmpeg でマルチパスを使用する方法がわかりません。エラーを修正する方法はありますか?
答え1
Windows には がありません/dev/null
。NUL
代わりに を使用してください。
詳細については、H.264 エンコードに関する FFmpeg Wiki の投稿。
答え2
試す
ffmpeg -y -ss 00:00:12.0 -i "c:\vid\example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b:v 1200k -an -pass 1 -f matroska dummy
ffmpeg -y -ss 00:00:12.0 -i "c:\vid\example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b:v 1200k -acodec copy -pass 2 "c:\vid\encoded.mkv"
2 回目のパスが完了したら、最初のパスで作成されたダミー ファイルを削除します。