DirectShow: IMediaSeeking :: SetRate не работает с потоками H.264

Как установить скорость воспроизведения видео при работе с видеопотоками H.264 с DirectShow?

Похоже, что IMediaSeeking :: SetRate не работает с видеодекодером H.264. Пока что я пробовал следующие декодеры: Microsoft DTV-DVD Decoder (поставляется с Windows 7), FFDShow Video Decoder и Axis H.264 Decoder.

Еще я заметил DMO под названием Frame Rate Converter. Как вы думаете, это может помочь в данной ситуации?

Спасибо.


person Rafale    schedule 02.03.2011    source источник


Ответы (1)


Один из способов сделать это - использовать контейнер транспортного потока MPEG-2 с видео H.264 и аудио AAC. Я делал захват в реальном времени с HD-PVR и подавал результат захвата в демультиплексор MPEG-2. Затем я разделил аудио и видео отдельными контактами, направив звук непосредственно в приемник Streaming Buffer Engine. Я отправил видео в фильтр анализатора видео MPEG-2, а затем в приемник SBE.

На отдельном графике я начал с источника SBE, а затем отправил видео на декодер Microsoft DTV-DVD, а затем на VMR9. Звук, который я отправил в аудиодекодер Microsoft (я не помню точного в данный момент), а затем на устройство DirectSound.

Сделав все это, я мог использовать интерфейсы IStreamBufferMediaSeeking и IStreamBufferMediaSeeking2 в источнике SBE, чтобы установить более высокую или медленную скорость по мере необходимости.

Если вы используете прямой поток (например, прямой захват), я ожидаю, что вам придется сделать то же самое, чтобы предоставить соответствующий буфер для потока.

person David Paxson    schedule 09.03.2011