У меня есть несколько видео, снятых несколько лет назад, в различных форматах, таких как avi, mpg, wmv, rm, rmvb, .... Их размеры огромны (более 500 МБ, а иногда > 1 ГБ).
- Учитывая, что в области сжатия данных, вероятно, уже достигнут определенный прогресс, мне бы хотелось узнать, какие форматы файлов и методы сжатия рекомендуются в настоящее время, чтобы не потерять очевидные данные и при этом добиться значительного уменьшения размера.
- Как мне выполнить преобразование формата файла и сжатие данных в Ubuntu 12.04? Командная строка и пакетный режим были бы наиболее удобными, хотя графические интерфейсы также приветствуются.
Спасибо и привет!
решение1
Ubuntu и его встроенный FFmpeg
Итак, вы столкнулись с проблемой, что FFmpeg больше не поставляется с Ubuntu, но вы попытались установить его через apt-get
.
Эта программа больше не разрабатывается и предоставляется только для совместимости.
Это просто ложь. FFmpeg активно разрабатывается, но пакеты Ubuntu устарели и они перешли на либав. Смотрите здесь дляотчет об ошибке, в котором обсуждается формулировкасообщения.
Установка из исходного кода или использование статической сборки
Если вы не хотите компилировать самостоятельно, вы можете просто взять статическую сборку отсюдастраница загрузки.
Если вы хотите оставаться в курсе событий и самостоятельно настраивать инструмент, вам необходимоскомпилировать его из исходного кода. Проверятьруководство по компиляции 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, а более высокие значения дадут вам худшее качество, и наоборот. Вам не нужно точно знать, что это делает, но если вам интересно, посмотрите этоРуководство по ИРК.
Как выполняется конвертация?
После установки и запуска FFmpeg вы можете просто конвертировать видео в x264 / MP4 со звуком AAC с фиксированным битрейтом 192 кбит/с:
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -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 -b:a 192k ${file%%.avi}-converted.mp4
done < <(find . -iname "*.avi" -print0)
Вы можете изменить .avi
суффикс в этой команде и запустить ее снова для других файлов.
Обратите внимание, что кодирование видео — это трудоемкая задача, и поиск идеальных настроек для исходных файлов займет некоторое время.
решение2
Еще один универсальный (и с очень практичным графическим интерфейсом) инструмент —Авидемюкс.
Вот подробная информация о том, как работает пакетная обработка:Avidemux DocuWiki — Пакетная обработка