如何控制比特率MEDIASUBTYPE_H264 directshow?

use*_*688 5 c++ windows directshow logitech

我有一个logitech c920网络摄像头,呈现编码h264 capture pin(子类型:) MEDIASUBTYPE_H264.

h264引脚支持以下分辨率:

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  

在我的测试中,无论选择何种分辨率,它总是使用3 Mbits.它有点太多了,特别是对于较低的分辨率.

有关如何使用directshow以编程方式选择所需比特率的任何想法?或者其他API?

fAX*_*fAX 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.90123 Mbit 
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
Run Code Online (Sandbox Code Playgroud)

如果您想出了解决方案,请分享。谢谢!