Какие кодеки наиболее подходят для воспроизведения с помощью Windows Media Player в Windows XP?

Мне нужно закодировать короткое видео в формате, который можно воспроизводить с помощью Windows Media Player на Windows XP без установки каких-либо дополнительных кодеков. Для процесса перекодировки я использую ffmpeg.

Я уже пробовал кодек msmpeg4v2 но качество ужасно (по сравнению с оригинальным видео, которое вы видите большими «блоками»), поэтому я ищу другие кодеки, которые работают из коробки и имеют как минимум «хорошее» качество.

Поскольку комментарии указывали, что это может быть не кодек, а проблема с битрейтом, вот команда, которую я использовал:

 ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi 

Вывод:

 Input #0, flv, from 'x.flv': Metadata: moovPosition : 39337765 avcprofile : 100 avclevel : 30 aacaot : 2 videoframerate : 25 audiochannels : 2 Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc Stream #0:1: Audio: aac, 48000 Hz, stereo, s16 w:702 h:396 pixfmt:yuv420p tb:1/1000000 sar:2596/3679 sws_param: Output #0, avi, to 'x.avi': Metadata: moovPosition : 39337765 avcprofile : 100 avclevel : 30 aacaot : 2 videoframerate : 25 audiochannels : 2 ISFT : Lavf53.32.100 Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16, 384 kb/s Stream mapping: Stream #0:0 -> #0:0 (h264 -> msmpeg4v2) Stream #0:1 -> #0:1 (aac -> adpcm_ima_wav) Press [q] to stop, [?] for help frame= 9485 fps=436 q=31.0 Lsize= 31197kB time=00:06:19.48 bitrate= 673.5kbits/s video:12628kB audio:17913kB global headers:0kB muxing overhead 2.149820% 

4 Solutions collect form web for “Какие кодеки наиболее подходят для воспроизведения с помощью Windows Media Player в Windows XP?”

Поскольку вы ничего не указываете, ваш видеопоток настроен на использование q=2-31, 200 kb/s . Это приводит к среднему 673.5kbits , что мало, по крайней мере, не для кодеков, отличных от h.264.

Попробуйте заставить

  • Определенный битрейт с -b:v 1000K например. С более старыми версиями FFmpeg вы можете использовать только -b .
  • Фиксированный уровень качества с помощью -qscale 2 например. Здесь значение может qscale в диапазоне от 1 до 31. Значения qscale для qscale находятся в диапазоне от 2 до 5 или около того. Просто попробуйте и посмотрите, что достигает наилучшего результата.

Кодеки, которые по умолчанию поддерживаются Windows , следующие :

Сегодня используются сотни аудио и видео кодеков. Некоторые из них были созданы Microsoft, но подавляющее большинство кодеков были созданы другими компаниями, организациями или отдельными лицами. По умолчанию операционная система Windows и проигрыватель включают в себя ряд наиболее популярных кодеков, таких как Windows Media Audio, Windows Media Video и MP3.

Также см. Типы файлов мультимедиа, которые поддерживает Windows Media Player для получения дополнительной информации.

С помощью FFmpeg вы можете попробовать mpeg1video (MPEG-1) или mpeg2video (MPEG-2) или msmpeg4 (MPEG-4 Part II), но я не уверен, что последнее поддерживается даже повсеместно. Если вы хотите безопасно играть, вы вынуждены использовать MPEG-1 или MPEG-2.

У меня была аналогичная проблема с файлом aac / h264 .mp4, который изначально играл отлично в Windows Media Player (Windows 7). После редактирования в VirtualDub и сохранения в формате .avi, а затем преобразованного обратно в aac / h264 .mp4 с использованием параметров ffmpeg по умолчанию, он больше не будет проигрываться в проигрывателе Windows Media.

Используя MediaInfo для сравнения исходного и окончательного файлов, я заметил, что был использован другой профиль кодирования, а также различные настройки субсэмплирования цветности (4: 2: 0, окончательный 4: 4: 4). Перекодируя его с помощью ffmpeg, используя следующую опцию, WMP смог правильно воспроизвести файл:

 ffmpeg -i edited.avi -pix_fmt yuv420p fixed.mp4 

Поскольку оба кодека уже поддерживаются контейнером AVI, вы можете просто сделать

 ffmpeg -i x.flv -vcodec copy -acodec copy x.avi 

Это предполагает, что ваш XP поддерживает h.264, иначе я бы пошел с файлом wmv, тем же квантизатором и позволил ffmpeg заполнить кодеки. Это должно дать вам почти идентичное качество оригинала:

 ffmpeg -i x.flv -sameq x.wmv 

Вики FFMPEG рекомендует следующее :

 ffmpeg -r 30 -i foo.flv -codec:v mpeg4 -flags:v +qscale -global_quality:v 0 -codec:a libmp3lame foo.avi 
  • Ffmpeg Audio Stereo to Mono с использованием только левого канала
  • Почему это не работает для цикла?
  • Как получить временную метку ближайшего ключевого кадра перед заданной меткой времени с помощью FFmpeg?
  • Неверная длительность звука с помощью ffmpeg
  • Как я могу получить ffmpeg для преобразования .mov в .gif?
  • Concat mp4 с пустым видео
  • Исправлена ​​ошибка инициализации ffmpeg drawtext
  • Твердая shell FFmpeg для C # /. NET
  • Может ли ffmpeg показать индикатор выполнения?
  • Быстрое сжатие видео на Android
  • FFmpeg на Android
  • Давайте будем гением компьютера.