2013-03-31 6 views
1

Я хочу закодировать необработанные пиксельные кадры фиксированного размера в MPEG на окнах 7. Я пытаюсь использовать для этого преобразование media foundaiton transofrmation. Но медиа-поддержка не поддерживает прямое преобразование необработанных кадров в MPEG. Вместо этого я должен использовать медиа-приемник для преобразования исходных буферов пикселей в формат WMV3, а затем преобразовать WMV в MPEG с использованием перекодовой топологии.Медиа-основа, конвертирующая необработанный пиксельный кадр в MPEG-видео

Есть ли способ, которым медиа-основа поддерживает прямое преобразование фреймов в MEPG?

Кроме того, при этом я столкнулся с проблемой каркаса транскодирования, который не смог преобразовать однокадровое видео WMV в MEPG. Не знаю, почему, но это приводит к созданию пустого файла MPEG при подаче одного кадра WMV. Является ли это известным пределом со средствами массовой информации?

наилучшими пожеланиями

GT

P.S. Я не собираюсь реализовывать графики фильтров для прямого показа, чтобы сделать это. В соответствии с медийной документацией, он должен предоставить все возможности, которые предоставляет прямое шоу.

ответ

1

Фонд средств массовой информации предлагает вам H.264 Video Encoder MFT/DMO, который обрабатывает сжатие.

В отличие от DirectShow (который вы не хотите использовать, но он предлагает вам сопоставимую возможность сжатия в MPEG-4 и MPEG-4 AVC с использованием сторонних кодеров), с Media Foundation вы можете использовать преобразование на свой собственный, без вставки его в полнофункциональный график (топология). Microsoft предлагает вам только кодировщик H.264, начиная с Windows 7 (только для вас).

Использование MFT описано в статье MSDN, и после этого шаг за шагом вы получите сжатые единицы NAL H.264 (MPEG-4 AVC), однако они не являются «файлом». Файл MPEG-4 - это данные, отформатированные по спецификации MPEG-4 Part 14, для которой Microsoft предоставляет вам MPEG-4 File Sink. Последнее в основном предполагает, что вы используете топологию скорее как отдельный компонент.

Таким образом, ваш выбор либо реализует собственный источник видеоисточника, который необходимо вставить в топологию, так и построить топологию кодирования для маршрутизации данных через кодер H.264 в приемник файлов MPEG-4 или создать экземпляр видеокодера и файлового приемника отдельно и использовать их вне топологии, настраивать их и передавать данные между ними самостоятельно.

В соответствии с информацией, представленной в документе, она должна предоставлять все возможности, которые предоставляет прямое шоу.

Не должно быть, и это не так. Microsoft предоставляет видеокодер MPEG-4 и мультиплексор только через Media Foundation в Windows 7+ и не делает их доступными для DirectShow вообще (если только через оболочку над компонентом MF), однако MF во многом отличается от DS: поддержка в старых ОС, набор функций, расширяемость и накладные расходы - просто для того, чтобы назвать несколько.