2016-09-21 7 views
0

メディアファンデーションH264エンコーダパフォーマンスの低下メディア財団H264エンコーダパフォーマンスの低下

私はリアルタイムでPCの画面を記録し、メディア財団H264コーデックでそれをコード化するアプリケーションを書いています。 エンコーディングは、多くのCPUリソースを消費します。また、ビデオの録画を停止した後(または、ビデオおよびオーディオフレームのエンコーダへの給電を停止するだけで一時停止する)、CPUの負荷は長時間(5〜10秒以上)非常に高く保たれます。この間、アプリケーションはIMFSinkWriter :: Finalizeメソッドが完了するまで待機します。

私のPC構成:4つのコアと

  • インテルi5-2410M 2.3GHz帯
  • 8ギガバイトのRAM

コーデック設定:

  • 25 fpsの
  • 1364 x 768解像度
  • ベースラインプロファイルは
  • 1.2メガビットのビットレート

これはMF H264コーデック性能の限界であるか、それは私のコードのバグ/設定ミスが原因でしょうか?

+0

私はこのソースコードを試しています。http://stackoverflow.com/questions/33753912/directx-screen-capture-and-output-as-video/33946441#33946441 10分のビデオの分、Finalizeは非常に簡単です。 – mofo77

答えて

0

長い内部キューを持つパイプラインでは、キューが空になるまでビデオをエンコードし続けることが予想されます。ソフトウェアエンコーダが使用されていてかなり遅いので、スクリーンキャプチャソースはキューをいっぱいにするのに十分なデータを生成し、それを並べ替えるのに数秒かかります。

あなたの解決策は、データレートを制御/削減するか、より高速にすることです。ハードウェア支援エンコーダ。しかし、Media Foundationは自動的にハードウェアエンコーダを利用することができますので、それはあなたの選択肢ではないと思います。 MediaFoundationVideoEncoderTransforms toolを使用して、ハードウェアエンコーダの可用性をチェックすることができます。

関連する問題