Вы не можете, так как 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
.