問題タブ [nvenc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1019 参照

ffmpeg - nvidia GPUでの画像からmp4へのFFMPEGビデオ

1070ti nvidia cuda パワーを使用して、.jpg 画像から作成された h264 .mp4 ビデオをエンコードしようとしています。各画像間にクロスフェード トランジションがあります。フラグ -c:v h264_nvenc を使用して GPU でビデオをレンダリングすることができます。GPU エンコーディングに短いピークが見られますが、コンピュータ CPU の高負荷が長時間かかるため、遷移イメージを準備していると思います。しかし、-filter_complex が原因で cpu/ram で発生するイメージの準備は非常に遅いです。これは機能します:

GPU ですべての作業を実行しようとしていますが、理論的には、各 -i フラグ「-hwaccel cuvid -c:v mjpeg_cuvid」を使用して、GPU メモリ内のすべての画像をエンコードできます。次のエラーが表示されます。

「フェード」フラグを適用して GPU に画像をロードする方法はありますか?

前もって感謝します !

0 投票する
1 に答える
3022 参照

ffmpeg - NVENC を使用した FFmpeg GPU 10 ビット HEVC エンコーディング

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

私の目標は、可能な限り低レイテンシーを達成することです。そのため、プリセットを低レイテンシの高性能に設定しました。ただし、このコマンドでは約 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 を挿入しているようです。このスケーリング モジュールによって、エンコーダの速度が大幅に低下する可能性はありますか?

0 投票する
1 に答える
1003 参照

ffmpeg - アスペクト比を維持するffmpegスケーリングnvenc

mkv ファイルを mp4 に完全に hw トランスコードし、アスペクト比を維持しながらコンテンツをアップ/ダウンスケールしたいと考えています。

CPU ベースのトランスコーディングでは、以下を追加するだけです:

HW (CUDA)を使用-resizeすると、デコード側または-scale_nppエンコード側でトランスコーディングが可能ですが、どちらも元のアスペクト比を強制することはできないようです。

たとえば、1920x800 ファイルを 1920x1080 にアップスケールし、残りを黒いバーで埋めて、たとえばバーの上に字幕を重ねることができるようにしたい...

これにより、CPU を使用する代わりに GPU パワーを使用して完全にトランスコーディングできます。何か案は?