Команда / приложение для преобразования видеофайлов [дубликат]

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

0
задан 18 January 2014 в 20:51

2 ответа

Источник: Stack Exchange Ubuntu и его комплектный FFmpeg

Ну, вы столкнулись с проблемой, что FFmpeg больше не поставляется с Ubuntu, но вы пытались установить его через apt-get.

This program is not developed anymore and is only provided for compatibility

Это просто ложь. FFmpeg активно развивается, но пакеты Ubuntu устарели и перешли на libav. Смотрите здесь для сообщения об ошибке, которая обсуждает формулировку сообщения. Установка из исходного кода или использование статической сборки

Если вы не хотите компилировать себя, вы можете просто получить статическую сборку из Burek или Relaxed. Извлеките папку и используйте двоичный файл ffmpeg, который там находится.

Если вы хотите быть в курсе последних событий и самостоятельно настроить инструмент, вам нужно будет скомпилировать его из исходного кода. Обратитесь к руководству по компиляции Ubuntu для получения подробных инструкций по установке. Следуя этим шагам, вы получите новейшую версию FFmpeg (инструмент кодирования) и x264 (определенный видеокодер). Что мне нужно, чтобы уменьшить размер?

Вы спрашиваете…

which file formats and compression methods are recommended these days

Фактически, есть только один метод сжатия («кодек»), который каждый порекомендует. Это стандарт h.264 или MPEG-4 Part 10 / AVC, который определяет метод сжатия для видео с низкой пропускной способностью. h.264 также достигает отличных результатов для более высокой пропускной способности. Очень распространенный кодер для него называется «x264», тот, который мы установили выше.

Он заменяет MPEG-4 Part 2, стандарт видеокодеков, который сделал кодеры DivX и XviD известными. Это тоже хорошо, но им нужно больше пропускной способности, чтобы сохранить то же качество.

Фактический формат файла не имеет значения. Видео h.264 может находиться практически в любом контейнере, от AVI до MP4, MOV и MKV. Важно знать разницу между видеокодеком как таковым и контейнером, который просто инкапсулирует его. См. Здесь для получения дополнительной информации: что такое кодек (например, DivX?) И чем он отличается от формата файла (например, MPG)? Я бы выбрал MP4 или MKV в качестве выходного контейнера в эти дни. AVI слишком стар и не позволяет вам много делать с видео, а для вышеупомянутых контейнеров есть лучшие инструменты для ремультиплексирования.

Если вы хотите уменьшить размер, вы хотите уменьшить средний битрейт видео. В простейшем случае это означало бы принуждение кодера, скажем, к постоянной скорости передачи 1,5 Мбит / с. Это работает, но у него есть несколько недостатков. Вместо кодирования с фиксированной скоростью передачи данных позвольте кодировщику выбирать, сколько он хочет потратить. В результате получается средний битрейт, адаптированный к содержанию видео. Сделайте это с помощью параметра «Коэффициент постоянной скорости».

Для x264 это означает установку значения где-то между 18 и 26 для этого CRF. По умолчанию установлено значение 23, а более высокие значения приведут к ухудшению качества, и наоборот. Вам не нужно точно знать, что он делает, но если вам интересно, посмотрите это руководство по CRF. Как вы выполняете преобразование?

После того, как вы запустите FFmpeg, вы можете просто конвертировать видео в x264 / MP4 со звуком AAC со скоростью 192 кбит / с с фиксированным битрейтом:

ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a libfaac -b:a 192k output.mp4

Вот и все. Вы можете варьировать выходной размер и качество, регулируя значение CRF. Чем ниже, тем лучше качество и больший размер. Чем выше, тем хуже качество и меньше размер. Как я уже сказал, вменяемые значения находятся где-то между 18 и 26, может быть, больше. Если вы действительно хотите уменьшить размер входного видео, выберите значение CRF, которое по-прежнему обеспечивает приемлемое качество видео при уменьшении размера файла.

Чтобы проверить, как будет выглядеть ваше видео, вы можете нажать Q в любой момент во время преобразования. Это оставит усеченный файл, который все еще должен воспроизводиться. Вы также можете указать опцию -t, где указывает, как долго вы хотите кодировать (например, только первые 30 секунд). Пакетная обработка

Если у вас есть пакет AVI-файлов, которые вы хотите конвертировать, вы можете сделать что-то вроде этого:

while IFS= read -d '' -r file; do ffmpeg -i "$file" -c:v libx264 -crf 23 -c:a libfaac -b:a 192k ${file%%.avi}-converted.mp4 done < <(find . -iname "*.avi" -print0)

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

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

0
ответ дан 18 January 2014 в 20:51
0
ответ дан 18 January 2014 в 20:51

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

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