Файл ASF не может быть воспроизведен GraphEdit, но может быть воспроизведен WMP
Моя программа использует MFT-файлы Windows Media Foundation для кодирования в формат ASF (мультиплексирование выполняется ffmpeg). Созданный файл может отлично воспроизводиться проигрывателем Windows Media на Win10, но не может быть отображен с помощью GraphEdit, код ошибки == NS_E_INVALID_DATA (0xC00D002FL).
Та же ошибка происходит, когда IWMSyncReader->GetNextSample используется для чтения аудиосэмпла.
Пример сломанного видео можно посмотреть здесь: https://www.dropbox.com/s/x8uyaqbclq93u5d/big_buck_bunny.wmv?dl=0
Может ли кто-нибудь взглянуть, чтобы проверить причину? Спасибо
1 ответ
Изучив ваш wmv-файл с помощью Windows Media ASF Viewer, я пришел к выводу, что он был зашифрован с помощью кодировщика Lavf (FFMPEG). Поэтому я установил LAV DirectShow фильтры и воспроизвел WMV с Graphstudionext. Я добавил файл в качестве асинхронного источника файла, и после этого график автоматически использовал разделитель LAV. Кажется, что только разветвитель LAV может проанализировать этот wmv. В вашем приложении вы можете сделать то же самое, добавив файл через асинхронный фильтр источника файла и разрешив LAV проанализировать его (если он установлен).