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

3288
fatnic

Я пытаюсь использовать 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
xvid не так хорош в сжатии, как h264. Что ты ожидал? phogg 13 лет назад 5
попробуйте использовать параметр два прохода RobotHumans 13 лет назад 0

2 ответа на вопрос

1
CarlF

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

0
geocoin

Как уже было сказано ранее в комментариях, 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.

Похожие вопросы