FFmpeg がリアルタイムでトランスコードしない

FFmpeg がリアルタイムでトランスコードしない

友人のために、私と似たようなレコーディング ビルドをセットアップしましたが、十分な (私が知る限り) ハードウェアがあるにもかかわらず、リアルタイムで動作させることができないようです。

システム仕様: 8600K、GTX 1050ti、16Gb RAM、1tb 860 EVO

テストコマンド(簡略化のため更新):

ffmpeg -y -hide_banner -thread_queue_size 9999 -f dshow -rtbufsize 2147.48M -video_size 1920x1080 -framerate 60 `
-i video="@device_pnp_\\?\usb#vid_07ca&pid_0570&mi_00#7&3886ab1a&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" `
-thread_queue_size 9999 -f dshow -rtbufsize 2147.48M -video_size 1920x1080 -framerate 60 `
-i video="@device_pnp_\\?\usb#vid_07ca&pid_0570&mi_00#7&24df76f&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" `
-map 0 -c:v h264_nvenc -r 60 -preset: llhp -pix_fmt yuv420p -b:v 1M -minrate 1M -maxrate 1M -bufsize 1M `
C:\Users\Jordan\Videos\FFmpeg\Left\Left.ts `
-map 1 -c:v h264_nvenc -r 60 -preset: llhp -pix_fmt yuv420p -b:v 1M -minrate 1M -maxrate 1M -bufsize 1M `
C:\Users\Jordan\Videos\FFmpeg\Right\Right.ts

このコマンドの目的は、2 つの別々の同期出力を記録することです。ただし、何らかの理由で、このコマンドはビデオをリアルタイムでトランスコードしません。これは、ファイルを単に変換するのではなく、記録しようとしている場合に大きな問題になります。2 つの出力の 1 つを省略するか、各入力/出力の解像度を半分にすると、すべてがリアルタイムで機能します。これにより、システムのどこかにボトルネックがあると思われますが、タスク マネージャーですべてを監視しても、上限に近いものはありません (GPU エンコーダー、CPU、RAM、SSD の使用率は 30% 未満)。

さらに、OBS 経由で両方のストリームを 1 つの 4K60 ビデオに録画しようとすると、リアルタイムの場合と同様に、すべて正常に動作します。そのため、FFmpeg で 2 つの 1080p60 ストリームをトランスコードすることが、OBS で 1 つの 4K60 ストリームをトランスコードすることよりも負荷がかかる理由がわかりません...

それ以来、1050ti を GTX 1080 に交換しましたが、パフォーマンスに違いはありません。これは、CPU に問題があると信じる理由になります。FFmpeg は実際には 1 ~ 2 スレッドしか使用していないようです... 強制的にもっと使用させる方法はありますか? -threads は、コマンドのどこに挿入しても効果がないようです。本当に奇妙なのは、非常によく似たコマンドがあるのですが、GTX 1080 と 6800K で 2 つの 1080p60 ストリームではなく 2 つの 4K60 ストリームを実行していることです... 私の知る限り、8600K は 6800K と比較してスレッドあたりのパフォーマンスが高いので、なぜこれほど多くのことを実行できるのかわかりません。

どのような洞察でも大いに感謝いたします。

答え1

問題はキャプチャ カードにありました。彼のシステムから 1 枚取り出して自分のシステムに取り付けたところ、問題を再現できました。これは、私が持っている他のキャプチャ カードでは再現できません。私は 4 枚のキャプチャ カードを持っています。

この問題は、カード自体に保存されている Avermedia のストリーム エンジン ブロートウェアが原因であるようです。カードは実際には 2 つのデバイスとして表示され、1 つは名前にストリーム エンジンが含まれず、もう 1 つは含まれます。ストリーム エンジンが含まれるデバイスを選択すると、問題は軽減されますが、まだ存在します。いずれにせよ、Elgato の HD60 Pro では問題が存在しないことが確認できたので、2 つ注文しました。

振り返ってみると、ブロートウェアや型破りなファームウェアは、診断が非常に難しい問題を簡単に説明できます。幸運なことに、私たちは Avermedia Live Gamer HD 2s をセールで購入し、全額返金で再販できます。これで一安心です。

関連情報