FFmpeg による H.264 マルチパス エンコーディング

FFmpeg による H.264 マルチパス エンコーディング

マルチパスで 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/nullNUL代わりに を使用してください。

詳細については、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 回目のパスが完了したら、最初のパスで作成されたダミー ファイルを削除します。

関連情報