Какие кодеки наиболее подходят для воспроизведения с помощью 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% 

Поскольку вы ничего не указываете, ваш видеопоток настроен на использование 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 с iPhone SDK для кодирования видео
  • Как разрезать на точные кадры с помощью ffmpeg?
  • Невозможно перекодировать аудиопоток с различным битрейтом с помощью ffmpeg
  • Concat подразделы видео с использованием ffmpeg
  • Как сделать видеофайл MPEG2 с наивысшим качеством, используя FFMPEG?
  • Как сравнить два аудиофайла без потерь?
  • Как создать видео с изображений с помощью FFmpeg?
  • Вставьте фоновое изображение с помощью FFmpeg
  • IPhone записывает видео, которые вращаются в системах Windows
  • Получить информацию ffmpeg по-дружески
  • Как добавить прозрачный водяной знак в центр видео с помощью ffmpeg?
  • Interesting Posts

    Странный шум при сканировании, используя scanimage и Canon Lide 35

    Лучшее программное обеспечение Intel Quick Sync для перекодирования h.264

    GLES10.glGetIntegerv возвращает 0 только в Lollipop

    Повторите элемент HTML несколько раз, используя ngFor на основе числа

    Moq + Unit Testing – System.Reflection.TargetParameterCountException: несоответствие счетчика параметров

    Active Directory (LDAP) – проверка заблокированной учетной записи / срок действия пароля истек

    Ассемблер x86: сравнение с плавающей запятой

    Если папка не существует, создайте ее

    Преобразовать десятичное число в двойное?

    Можете ли вы определить, был ли объект, десериализованный объект, отсутствием поля с classом JsonConvert в Json.NET

    OpenGL – маска с несколькими текстурами

    Как создать уникальный открытый и закрытый ключ через RSA

    Является ли String Literal Pool набор ссылок на объект String или набор объектов

    Как всегда запускать vs.net как администратор

    Как добавить вложение в новое письмо в Lotus Notes из командной строки

    Давайте будем гением компьютера.