У нас есть приложение, которое использует API-интерфейс ffmpeg для кодирования файлов mpeg-4 (AV_CODEC_ID_MPEG4) в контейнер mp4. Проблема в том, что файлы не воспроизводятся в проигрывателе Windows Media или проигрывателе Windows 10 & TV «. Оно воспроизводится в VLC, Google Chrome, видеопроигрывателе Ubuntu и во всех других видеопроигрывателях, которые я пробовал.
Два проигрывателя Windows могут воспроизводить другие файлы, закодированные с помощью mpeg-4, в контейнере mp4. Я также протестировал перекодирование видеофайлов в тот же формат с помощью инструмента командной строки ‘ffmpeg’ и смог успешно воспроизвести видео с помощью следующей команды:
ffmpeg input.avi -c:v mpeg4 output.mp4
Пока я обнаружил, что следующие команды не работают:
ffmpeg input.avi -c:v mpeg4 -vtag xvid output.mp4
ffmpeg input.avi -c:v libxvid output.mp4
# the last command wont play with windows media player but VLC can still play it. If the extension of the output file is changed to avi for the last two commands then Windows media player can play it.
Я начал смотреть на код ffmpeg src, но он кажется немного большим / сложным, я попытался использовать более простой пример «encode_video.c», который смог кодировать видео и воспроизводить его в проигрывателе видео Ubuntu по умолчанию, но VLC или Windows Media Player мог бы сыграть это.
Мы должны кодировать их с помощью API ffmpeg, а не инструмента командной строки, поэтому мне интересно, что делает инструмент командной строки ffmpeg, а я не знаю, или какие-либо идеи о том, в чем может быть проблема и как заставить это работать.
Благодарю.
В соответствии с этот а также этот Воспроизведение XVid не поддерживается фильмами & ТВ-приложение, а также другие приложения Win Store, использующие видео-возможности WinRT. И согласно этот он также не поддерживается проигрывателем Windows Media. Если вам удалось воспроизвести его с помощью проигрывателя Windows Media, то, скорее всего, у вас установлен соответствующий сторонний кодек Direct Show. На самом деле нет смысла использовать XVid в 2017 году, просто используйте h264.
Других решений пока нет …