0

NVENC HEVC エンコーダーを使用して、4K 10 ビット YUV テスト シーケンスをエンコードしています。シーケンスと構成の例として、次のコマンドを使用します。

ffmpeg -hide_banner -benchmark -loglevel debug -y -f rawvideo -s:v 3840x2160 -r 50 -pix_fmt yuv420p10le -i ParkRunning3_3840x2160_50fps_10bit_420.yuv -c:v hevc_nvenc -preset hp -rc cbr -profile:v main10 -b:v 10M output.mp4

私の目標は、可能な限り低レイテンシーを達成することです。そのため、プリセットを低レイテンシの高性能に設定しました。ただし、このコマンドでは約 15 fps のエンコード速度しか得られません。上記のコマンドからの ffmpeg 出力のログファイルはこちらです。

また、さまざまなプリセットとさまざまなシーケンスを試しました。結果は、エンコードしたすべての 10 ビット シーケンスで類似しています。1920x1080 の 10 ビット シーケンスの場合、HEVC エンコーダーで約 50 ~ 60 fps が得られます。しかし、8 ビット シーケンスの場合、同様のプリセットおよびレート制御モードで、約 450 ~ 500 fps というはるかに高いスループットが得られます。この例では、レート制御モードとして CBR を使用していますが、VBR モードと定数 QP モードでもテストを行い、(エンコード スループットに関して) 同様の結果を得ました。

10 ビット HEVC エンコーディングのコマンドに欠けているものはありますか? 10 ビットでは、ビット深度が増加するため、エンコードに時間がかかることを理解しています。しかし、この規模でのスループットの低下は、私が何か間違ったことをしていると思わせます。FFmpeg は、yuv420p10le (私の入力形式) から p010le (NVENC で受け入れられる 10 ビット形式) に変換するエンコーダーの前に auto_scaler を挿入しているようです。このスケーリング モジュールによって、エンコーダの速度が大幅に低下する可能性はありますか?

4

1 に答える 1