6

Команда ниже выполнена без ошибок.

ffmpeg -i thevideo.mkv outvideo.avi

Последующие попытки воспроизвести outvideo.avi в проигрывателе Windows Media выкинули эту ошибку

You may need an additional video decoder to play this file.

This file contains a track in an unknown format (code "ARGB") format. You may need to     
install a DirectShow decoder for this video format in order to play this file.

Сведения об ошибках, предоставляемые проигрывателем Windows Media, указывают на то, что для воспроизведения видео необходим кодек mpg2. Как сказать ffmpeg транскодировать в видеокодек, поддерживаемый проигрывателем Windows Media?

2 ответа2

5

Вы не можете, так как ffmpeg по себе не знает, какие кодеки установлены в вашей системе и доступны для Windows Media Player. Это потому, что ffmpeg использует свои собственные библиотеки libavcodec и libavformat для кодирования и декодирования. Поэтому видео, сгенерированное ffmpeg не обязательно должно воспроизводиться в проигрывателе Windows Media.


Решение 1. Установите дополнительные кодеки

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

Это то, что вам в конечном итоге придется сделать, поскольку Windows поставляется не со всеми возможными кодеками. На самом деле версии Windows до 7 поставляются практически без дополнительных кодеков, что требует от пользователя установки пакета кодеков, такого как K-Lite или CCCP. Однако вы не можете предполагать, что на каждом ПК они установлены, и вам может потребоваться поставлять видео с помощью медиаплеера, такого как VLC, который имеет собственные кодеки и не зависит от Windows.

Установка дополнительных мультимедийных кодеков - это то, что вы, вероятно, должны делать на каждой новой машине с Windows.


Решение 2. Преобразование в кодек WMP-игр

В соответствии с информацией о типах файлов мультимедиа, которые поддерживает проигрыватель Windows Media, существует несколько поддерживаемых форматов, но они не слишком специфичны в этом отношении. Если вы хотите быть в безопасности, вам, вероятно, следует конвертировать видео в Windows Media (wmv). Для всего остального, вот что говорит Microsoft:

Аудиоконтент или видеоконтент, сжатый различными кодеками, можно сохранить в файле .avi и воспроизвести в проигрывателе Windows Media, если на компьютере установлены соответствующие кодеки. Видеокодеки, которые часто используются в файлах .avi, включают следующие кодеки [...]

FAQ по ffmpeg немного более конкретен. Они говорят:

Какие кодеки поддерживаются Windows?

Следующий список видеокодеков должен работать на большинстве систем Windows:

  • msmpeg4v2 , .avi/.asf
  • msmpeg4 , .asf
  • wmv1 , .asf
  • только wmv2 .asf
  • mpeg4 , только если у вас установлен какой-то кодек MPEG-4, такой как ffdshow или Xvid.
  • mpeg1video , .mpg

Обратите внимание, что файлы ASF часто имеют расширения .wmv или .wma в Windows. Следует также упомянуть, что Microsoft заявляет патент на формат ASF и может подавать в суд или угрожать пользователям, которые создают файлы ASF с помощью программного обеспечения сторонних производителей. Настоятельно рекомендуется избегать ASF, где это возможно.

Следующий список аудиокодеков должен работать на большинстве систем Windows:

  • adpcm_ima_wav
  • adpcm_ms
  • pcm_s16le , всегда
  • libmp3lame , если установлен какой-нибудь MP3-кодек, такой как LAME.

Поэтому, когда вы конвертируете, вы можете указать кодек, который вы хотите использовать, используя -vcodec и -acodec для видео и аудио соответственно.

Например:

ffmpeg -i input.mp4 -vcodec msmpeg4v2 -acodec pcm_s16le output.avi

Обратите внимание, что при этом используется несжатый звук, поскольку вы не можете быть уверены в том, какой аудиокодек будет поддерживаться Windows. Если вам повезет, вы можете попробовать MP3 (и он должен работать на большинстве новых машин) и использовать опцию libmp3lame .

2

Попробуй это

C:\>ffmpeg -i yourvideofile.xyz -acodec mp2 -vcodec mpeg1video h.mpg

затем воспроизведите выходной файл h.mpg в WMP, надеюсь, он будет работать!

Это преобразовывает его в формат контейнера MPEG с аудиокодеком MP2 и видеокодеком MPEG1.

Эта комбинация должна поддерживаться WMP.

Нет причин смешивать эти 3 вещи. И вы можете скачать mediainfo, чтобы узнать такую информацию из любого видеофайла. CLI-версия mediainfo очень ясна
http://mediainfo.sourceforge.net/en/Download/Windows

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .