Как записать encode h264 в массив байтов, отличный от файла

Я использую учебник MSDN для кодирования кадра RAW RGB32 в видео h264. Эта первая часть работает без проблем. ( http://msdn.microsoft.com/en-us/library/ff819477%28v=VS.85%29.aspx)

Но есть одна мысль, которую я могу сделать: я просто хочу записать выходное закодированное видео в массив BYTE, отличный от файла, я прочитал около 400 различных веб-страниц и всю документацию Media Foundation, но я не вижу как это сделать !!

Я пробовал много разных способов, используя MFCreateTempFile и работая с IMFByteStream, но делать нечего!

После того, как я попробую: http://msdn.microsoft.com/en-us/library/windows/desktop/ms698913%28v=VS.85%29.aspx Но мой буфер пуст!

Помогите мне, пожалуйста !! Я теряю глаза!!


person Maypeur    schedule 06.01.2012    source источник


Ответы (1)


Кодер видео H.264 — это MFT, то есть он предоставляет Интерфейс IMFTransform и не обязательно должен участвовать в сеансе. Вы можете создать его автономный экземпляр, настроить его и получить необработанные данные в кодировке H.264 из его метода ProcessOutput.

person Roman R.    schedule 06.01.2012
comment
Я читаю документацию, и, похоже, она работает как приемник: с processInput и processOut, с помощью которых я могу читать буферизованный вывод, как вы говорите! Теперь мне нужно найти быструю реализацию RGB в YUV! Спасибо за ваш быстрый ответ! - person Maypeur; 06.01.2012