Как получить Pixel Aspect Ratio(PAR) из клипа WMV в DShow Graph?

По вики для Pixel Aspect Ratio:

DAR = SAR x PAR 
(Display Aspect Ratio, Storage Aspect Ratio, Pixel Aspect Ratio)

У меня есть видео WMV с разрешением 2048x1080(256:135). Windows Media Player (WMP) может извлечь PAR, 15:16, чтобы WMP может сделать этот клип как 16:9(= 256:135 * 15:16),

В настоящее время я могу получить только dwPictAspectRatioX/dwPictAspectRatioY из VIDEOINFOHEADER2 как 256/135. Это значение выглядит как SAR по разрешению или DAR игнорирует PAR.

Как я могу получить PAR информация от DShow график?

я использую [ASF Reader]-[DMO]-[VMR7] в качестве компонентов фильтра в граф.

PotPlayer также не может прочитать PAR, поэтому он отображает этот клип с соотношением сторон 256:135 вместо 16:9,

Обновлено,

Я обнаружил, что ASF_Reader_Filter:: IWMHeaderInfo:: GetAttributeByName:: Atrributes.

Существует атрибут AspectRatio X ( Y) со следующим значением:

Атрибут AspectRatioX содержит компонент ширины пропорции пикселя для видеопотока.

Я пытаюсь запросить интерфейс или queryService через IServiceProvider из фильтра чтения ASF, но он всегда возвращает E_NOINTERFACE.

Все еще нужно больше расследований.

1 ответ

VIDEOINFOHEADER2::dwPictAspectRatio получает коэффициент, который является корректировкой для неквадратных пикселей в кодированном изображении. То есть, если вы применяете dwPictAspectRatio когда вы представляете видео и предполагаете, что сам монитор имеет квадратные пиксели, вы получаете правильное физическое соотношение сторон.

Напротив, изображение PAL 720 × 576 D-1 имеет SAR 720/576 = 5:4, но отображается на дисплее 4:3 (DAR = 4:3).

  • biWidth, biHeight, rcSource имеют значения размера в пикселях (720x576) - SAR
  • dwPictAspectRatio поручает показать 4:3 - DAR
Другие вопросы по тегам