Кодировать с помощью ffmpeg, используя avi в mp4

27

Какие командные строки использовать для преобразования из avi в mp4, но без разрушения размера фрейма и уменьшения размера файла по сравнению с исходным или чуть большим, и то же самое с mp4 в avi? Всякий раз, когда я пытался конвертировать это становилось как 2 ГБ

дол
источник

Ответы:

33

В зависимости от того, как был закодирован ваш исходный файл, возможно, не удастся сохранить размер файла.

ffmpeg -i infile.avi youroutput.mp4

должны сохранять размеры и частоту кадров при создании файла mp4.

ffmpeg -i infile.avi

предоставит вам информацию о вашем входном файле - размер кадра, используемые кодеки, битрейт и т. д.

Вы также можете играть с acodecи vcodecвариантами , когда вы создаете свой выход. Помните также, что в файлах mp4 и avi могут использоваться различные кодеки, а пробег зависит от выбранного кодека.

rbanffy
источник
6
Я думаю, что лучше использовать ffprobe -i infile.aviвместо ffmpeg -i infile.aviполучения информации, так как последнее приводит к ошибке «По крайней мере, один выходной файл должен быть указан».
Франческо Турко
Спасибо, Франческо. Ваш подход более элегантный, чем мой ;-)
rbanffy
6

Мне было очень интересно конвертировать AVI файлы в MP4. Читая ваш пост, я вспомнил эту команду ffmpeg:

ffmpeg -i input.avi -strict -2 output.mp4

Команда -strict -2необходима для кодека AAC, который является экспериментальным, но работает (libaac), если вы добавите эти два параметра. Выходной файл высокого качества по умолчанию.

Robis54
источник
2

Насколько я понимаю, необходимо заменить avi-контейнер на mp4 (формально - базовый формат медиафайлов ISO / IEC 14496-12).

если вы выполните следующую команду:

ffmpeg -i input.avi -y output.mp4

В таком случае ffmpeg перекодирует элементарные потоки в файле input.avi (для контейнеров и повторного кодирования используется режим по умолчанию для ffmpeg ). Стоит отметить, что перекодирование может ухудшить визуальное и / или качество слуха.

Поэтому рекомендуется отключить перекодирование с помощью параметров кодека " c: v copy c: a copy ":

ffmpeg -i input.avi -c:v copy -c:a copy -y output.mp4

В приведенном выше случае ffmpeg просто меняет оболочки (контейнеры)

Шевач Рябцев
источник
0

Я нашел этот :: Libav в Linux.

Установка: запустить команду

sudo apt-get install libav-tools

Команда преобразования видео:

Перейдите в папку с видео и запустите в терминале

avconv -i oldvideo.mp4 -ar 22050 convertedvideo.webm
Вишал
источник