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.