2012-07-27 5 views
5

h264 capture pin (하위 유형 : MEDIASUBTYPE_H264)으로 표시되는 logitech c920 웹캠이 있습니다.비트 전송률을 제어하는 ​​방법 MEDIASUBTYPE_H264 directshow?

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 메가 비트를 사용합니다. 특히 더 낮은 해상도의 경우에는 너무 많습니다.

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을 호출하십시오.

관련 문제