2012-07-27 98 views
5

私はh264 capture pin(サブタイプ:MEDIASUBTYPE_H264)を提示するlogitech c920ウェブカメラを持っています。それは関係なく、常に選択した解像度の3メガビットを使用して、私のテストでビットレートを制御する方法MEDIASUBTYPE_H264 directshow?

 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 640x480 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 160x90 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 160x120 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 176x144 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 320x180 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 320x240 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 352x288 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 432x240 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 640x360 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 800x448 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 800x600 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 864x480 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 960x720 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 1024x576 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 1280x720 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 1600x896 @ 30 fps 
FORMAT_VideoInfo - subtype: MEDIASUBTYPE_H264 1920x1080 @ 30 fps 

H264ピンは、以下の解像度をサポートしています。これは、とりわけ低解像度の場合は多すぎます。

directshowを使用してプログラムでどのように希望のビットレートを選択するかについてのアイデアはありますか?それとも他のAPIですか?

答えて

1

Logitechサポートの回答から、エンコーディングは80/20 HW/SWであり、ビットレート(およびGOP)は制御できません。しかし、バンドルされたソフトウェアは明らかにそれを行います。それは本当に低解像度/ fpsの組み合わせで発生するもののそれ以外は、いくつかの制限の後、ビットレートの減少が、そこにある:

Required bandwidth for size: (1920 , 1080) @ 30 is 2.81771 Mbit 
Required bandwidth for size: (1920 , 1080) @ 25 is 2.81672 Mbit 
Required bandwidth for size: (1920 , 1080) @ 20 is 2.82701 Mbit 
Required bandwidth for size: (1920 , 1080) @ 15 is 2.83327 Mbit 
Required bandwidth for size: (1920 , 1080) @ 10 is 2.83594 Mbit 
Required bandwidth for size: (1920 , 1080) @ 5 is 2.8431 Mbit 
Required bandwidth for size: (1280 , 720) @ 30 is 2.82013 Mbit 
Required bandwidth for size: (1280 , 720) @ 25 is 2.82436 Mbit 
Required bandwidth for size: (1280 , 720) @ 20 is 2.83217 Mbit 
Required bandwidth for size: (1280 , 720) @ 15 is 2.83696 Mbit 
Required bandwidth for size: (1280 , 720) @ 10 is 2.83721 Mbit 
Required bandwidth for size: (1280 , 720) @ 5 is 2.45272 Mbit 
Required bandwidth for size: (864 , 480) @ 30 is 2.82089 Mbit 
Required bandwidth for size: (864 , 480) @ 25 is 2.82313 Mbit 
Required bandwidth for size: (864 , 480) @ 20 is 2.83131 Mbit 
Required bandwidth for size: (864 , 480) @ 15 is 2.83343 Mbit 
Required bandwidth for size: (864 , 480) @ 10 is 2.79526 Mbit 
Required bandwidth for size: (864 , 480) @ 5 is 1.15564 Mbit 
Required bandwidth for size: (320 , 180) @ 30 is 1.9Mbit 
Required bandwidth for size: (320 , 180) @ 25 is 1.89367 Mbit 
Required bandwidth for size: (320 , 180) @ 20 is 1.26006 Mbit 
Required bandwidth for size: (320 , 180) @ 15 is 0.957935 Mbit 
Required bandwidth for size: (320 , 180) @ 10 is 0.637158 Mbit 
Required bandwidth for size: (320 , 180) @ 5 is 0.328456 Mbit 

あなたが解決策をお願いし、シェアを思い付いた場合。ありがとう!

2

IAMStreamConfigインターフェイスのクエリピン。GetStreamCaps()でこのフォーマットのリストを取得し、必要なものを選択すると、dwBitRateフィールドを含むVIDEOINFO構造体へのポインタpFormatが含まれます。このフィールドを目的のビットレートに変更し、この新しいデータでIAMStreamConfig :: SetFormatを呼び出します。

関連する問題