ffmpeg - h264 для xvid создает большой файл

Я пытаюсь использовать ffmpeg для преобразования видеофайла h264/aac в файл xvid/mp3, чтобы воспроизвести его в своем ультра-дешевом медиаплеере.

На данный момент конвертированный видеофайл ДВАЖДЫ размер оригинального mp4. Есть ли способ получить меньший размер файла без потери качества? Даже падение до -qmin 1 довольно ужасно!

Команда, которую я использую,

ffmpeg -i input.mp4 -vcodec libxvid -sameq -acodec libmp3lame -ab 128k -ac 2 output.avi

И вывод ffmpeg

  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4'
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
  Duration: 01:34:27.69, start: 0.000000, bitrate: 1520 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 1387 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s
Output #0, avi, to 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0(und): Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0.1(und): Audio: libmp3lame, 48000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

2 ответа

В зависимости от того, что может обрабатывать ваш медиаплеер, вы можете уменьшить размер кадра, например, если он начинается с 1280x720, уменьшить до 640x360. Это позволило бы снизить битрейт видео на 3/4 без изменения качества, а меньшие видеоплееры в любом случае отображают ширину всего 640 пикселей.

Как было сказано ранее в комментариях, h.264 является лучшим (как и в случае сжатия) кодеком, чем xvid, поэтому при прочих равных условиях (качество, размер кадра, частота кадров и т. Д.) Xvid всегда будет создавать файлы большего размера. плюс xvid в том, что он менее загружен процессором, чем h.264, поэтому его могут использовать дешевые медиаплееры.

Например, XBMC на исходном xbox (с процессором PIII с архитектурой 733 МГц) можно было принудительно воспроизводить в формате 720p HD, но только в том случае, если кодек был достаточно легким и с очень специфическими флагами. как правило, это было xvid, так как h.264 даже в разрешениях SD обычно было слишком много для бедного старого PIII. при разрешении SD типичное приемлемое телешоу Q 45 мин весит около 350 Мб, но в h.264 будет примерно вдвое меньше.

для лучшей ставки перекодируйте видео в том же разрешении, что и на устройстве (но сохраняя качество), чтобы не тратить пропускную способность на изображение, которое в любом случае будет уменьшено только во время воспроизведения. - вдвое разрешение в любом направлении (скажем, 1280x720 -> 640x360, как упомянуто выше) уменьшит требуемую полосу пропускания (и получающийся в результате размер файла) до 1/4.

Другие вопросы по тегам