Media Foundation кодирует ошибку индекса AVI Raw

Я пытаюсь закодировать видео с помощью MediaFoundation в Windows 8.1, выходной файл должен быть контейнером avi с необработанным потоком NV12.
Видео генерируется, и я могу его воспроизвести, но когда я открываю его с помощью VLC, я обнаруживаю поврежденный индекс (с возможностью проигрывания как есть или временного исправления). Если я нажимаю кнопку play как есть, она воспроизводится нормально. Но это порождает проблему в других программах.
Я попытался исследовать это и заметил, что AVI поддерживает 2 типа индексации

https://msdn.microsoft.com/en-us/library/windows/desktop/dd318189(v=vs.85).aspx

Но это для DirectShow, и я использую MediaFoundation, и я не могу найти ничего связанного с этим внутри MediaFoundation.

Любая помощь или предложение будут оценены.
Благодарю.

Редактировать:
Вот как я создаю IMFMediaSink:

hr = MFCreateAttributes(&sinkAttributes, 5);
assert(SUCCEEDED(hr));
sinkAttributes->SetUnknown(MF_SINK_WRITER_ASYNC_CALLBACK, this);
sinkAttributes->SetGUID(MF_TRANSCODE_CONTAINERTYPE, MFTranscodeContainerType_AVI);
if (SUCCEEDED(hr)){
hr = MFCreateSinkWriterFromURL(videoURL, NULL, sinkAttributes, (IMFSinkWriter**)&sinkWriter);
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector