DirectShow: IMediaSeeking :: SetRate не работает с потоками H.264 - PullRequest
1 голос
/ 02 марта 2011

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

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

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

Спасибо.

1 Ответ

1 голос
/ 09 марта 2011

Один из способов сделать это - использовать контейнер транспортного потока 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, чтобы при необходимости устанавливать скорость быстрее или медленнее.

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

...