2

Я пытался сделать это, но Windows говорит, что файл не воспроизводится. Воспроизведение в VLC действительно работает.

ffmpeg -i in.mp4 -f mpeg -vcodec mpeg2video out.m2v

1 ответ1

2

Windows Media Player использует DirectShow, который представляет собой систему фильтров, соединенных вместе в зависимости от того, что в них подается. Если вы хотите воспроизвести любой формат с помощью Windows Media Player, было бы лучше установить набор бесплатных фильтров DirectShow с открытым исходным кодом, известных под общим названием "LAV Filters", написанных и поддерживаемых Nevcairiel. Его последний выпуск установщика можно найти на странице релизов Github, здесь: https://github.com/Nevcairiel/LAVFilters/releases.

Однако, если вы ориентируетесь на установку Windows по умолчанию, одним из кодеков с потерями самого высокого качества, который Windows поддерживает с помощью фильтров DirectShow по умолчанию, является Windows Media Video. Вот как удобно перекодировать видеофайл Windows Media с помощью ffmpeg с помощью Windows Media Video 8.

ffmpeg -i input.mp4 -q:a 2 -q:v 2 -vcodec wmv2 -acodec wmav2 output.wmv

Существует более поздняя версия Windows Media Video, называемая Windows Media Video 9, но FFmpeg не поддерживает кодирование Windows Media Video 9; только декодирование. Для такого кодирования вы, скорее всего, добьетесь успеха, используя инструмент Microsoft.

У меня есть последнее замечание, которое я хотел бы включить. В идеале, если исходное видео не имеет потерь, вам не следует транскодировать видео в формат с потерями, такой как Windows Media Video 8, если вы можете помочь. Это приводит к потере поколений, что является серьезной проблемой для архивного видео. Вместо этого постарайтесь убедиться, что ваша целевая система воспроизведения может воспроизводить исходное видео с кодировкой с потерями или убедитесь, что вы кодируете видео с потерями из источника без потерь.

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