2012-07-27 8 views
5

Ich habe eine logitech c920 Webcam, die eine codierte h264 capture pin (Untertyp: MEDIASUBTYPE_H264) präsentiert.Wie Bitrate zu steuern MEDIASUBTYPE_H264 directshow?

Der h264 Stift unterstützt die folgenden Auflösungen:

 
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 

In meinen Tests verwendet es immer 3 Mbits unabhängig von der gewählten Auflösung. Es ist ein bisschen zu viel, besonders für die niedrigeren Auflösungen.

Haben Sie eine Idee, wie Sie mit Directshow die gewünschte Bitrate programmieren können? Oder vielleicht andere API?

Antwort

1

Aus der Logitech-Support-Antwort folgt, dass die Codierung 80/20 HW/SW ist und die Bitrate (und GOP) nicht gesteuert werden kann. Aber ihre gebündelte Software tut das offensichtlich. Andere als die, nach einer gewissen Grenze, gibt es eine Verringerung der Bitrate, obwohl es bei sehr niedrigen Auflösung/fps Kombinationen auftritt:

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 

Wenn Sie mit der Lösung kam, bitte teilen. Vielen Dank!

2

Abfrage Pin für IAMStreamConfig Schnittstelle, erhalten Sie diese Liste von Formaten über GetStreamCaps(), wählen Sie die, die Sie benötigen, wird es Zeiger pFormat zu VIDEOINFO Struktur enthalten, die dwBitRate Feld enthält. Ändern Sie dieses Feld in die gewünschte Bitrate und rufen Sie IAMStreamConfig :: SetFormat mit diesen neuen Daten auf.

Verwandte Themen