6

У меня есть несколько видео несколько лет назад, в различных форматах, таких как avi, mpg, wmv, rm, rmvb, .... Их размеры огромны (более 500 МБ, а иногда и> 1 ГБ).

  1. Учитывая, что может быть некоторое улучшение в сжатии данных, я хотел бы знать, какие форматы файлов и методы сжатия рекомендуются в наши дни, по стандарту, без потери очевидных данных при достижении значительного уменьшения размера.
  2. Как я могу выполнить преобразование формата файла и сжатие данных в Ubuntu 12.04? Командная строка и пакетные способы были бы наиболее удобными, хотя способы GUI также приветствуются.

Спасибо и всего наилучшего!

2 ответа2

5

Ubuntu и его FFmpeg в комплекте

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

Эта программа больше не разрабатывается и предназначена только для совместимости.

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

Установка из исходного кода или использование статической сборки

Если вы не хотите компилировать себя, вы можете просто получить статическую сборку со страницы загрузки.

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

Что мне нужно, чтобы уменьшить размер?

Ты спрашиваешь …

какие форматы файлов и методы сжатия рекомендуются в наши дни

На самом деле, есть только один метод сжатия ("кодек"), который каждый порекомендует. Это стандарт 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 aac -strict experimental -b:a 192k output.mp4

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

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

Дополнительные настройки см. В руководстве по кодированию H.264.

Пакетная обработка

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

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

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

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

3

Еще одним универсальным (и с очень практичным графическим интерфейсом) инструментом является Avidemux.

Вот некоторая подробная информация о том, как работает пакетная обработка: Avidemux DocuWiki - Пакетная обработка

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .