Медиа Фонд. Кодирование видео из растровых изображений с помощью пользовательского IMFMediaSource - PullRequest
4 голосов
/ 13 января 2012

Может кто-нибудь уточнить следующие вопросы?Приличный фрагмент исходного кода или пример был бы замечательным, единственный уместный пример, который я до сих пор нашел, это WavSource в SDK.

  1. Как необработанные данные растрового изображения представляются кодеру?Является ли это (A) RGB 32BPP или аналогичным?

  2. На основе образца WavSource что-то вызывает RequestSample () во входном потоке, это возвращает данные, время воспроизведения и продолжительность.Так что я бы вернул буфер с соответствующим форматом с временем воспроизведения и продолжительностью 1 с?

Спасибо.

1 Ответ

3 голосов
/ 27 июня 2014

Посмотрите по этой ссылке, как написать собственный источник мультимедиа: http://msdn.microsoft.com/en-us/library/windows/desktop/ms700134(v=vs.85).aspx

В примере необработанное растровое изображение закодировано.Вы можете просто выделить образец размером 4 * row * height для 32 BPP и передать необработанный буфер.

Вы можете сделать это:

  1. MFCreateMemoryBuffer для создания буфера
  2. MFCopyImage для копирования растрового изображения в буфер
  3. MFCreateSample для создания сэмпла

Для кодирования сэмплов видео взгляните на: http://msdn.microsoft.com/en-us/library/windows/desktop/ee663604(v=vs.85).aspx

...