it-roy-ru.com

Самый быстрый способ конвертировать видео (пакетное или одиночное)?

Я знаю, что здесь много вопросов о видеокодерах, но мой вопрос больше о рабочем процессе/эффективности.

Для моей повседневной работы мне нужно конвертировать видео, часто, из множества случайных форматов (обычно больших AVI , M4V , а что нет), конвертировать их и сжимать их вплоть до эффективных файлов, которые мы можем использовать для загрузки через Интернет. Форматы, которые я должен произвести:

Мне нужно создать общие шаблоны для пары вариантов использования (преобразовать в один и тот же источник, 1080p или 720p ) и иметь возможность быстро обрабатывать их и ставить в очередь ,.

Любые идеи о том, как лучше всего пройти этот процесс в Ubuntu?

26
Garrett

Если вы предпочитаете командную строку, вы можете использовать ffmpeg (или handbrake-cli).

MP4

Предполагая, что вы используете последнюю версию ffmpeg:

ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
  • -crf: качество. Диапазон логарифмический от 0 (без потерь) до 51 (худшее качество). По умолчанию 23. Субъективный вменяемый диапазон составляет ~ 18-28 или около того. Используйте самое высокое значение, которое все еще дает вам приемлемое качество. Если вы перекодируете непрактично большие входные данные для загрузки на YouTube или подобное, попробуйте значение 17 или 18, так как эти видеоуслуги все равно перекодируют.

  • -preset: скорость кодирования. Более медленный пресет обеспечивает лучшее сжатие (качество на размер файла), но медленнее. Используйте самое медленное, к которому у вас есть терпение: сверхбыстрое, сверхбыстрое, очень быстрое, быстрое, быстрое, среднее (по умолчанию), медленное, медленное, очень низкое.

  • -movflags +faststart: позволяет воспроизводить видео до его полной загрузки в случае просмотра с прогрессивной загрузкой. Полезно, если вы размещаете видео, иначе излишне, если вы загружаете видео на сервис, такой как YouTube.

  • -vf scale=-2:720,format=yuv420p: A filtergraph с использованием масштаб и формат видеофильтры. Увеличьте до 720 пикселей по высоте и автоматически выберите ширину, которая сохранит аспект, а затем убедитесь, что формат пикселей совместим с немыми плеерами.

  • -b:a 128k: аудио битрейт. Если ваше ffmpeg устарело, вам нужно добавить -strict experimental, чтобы использовать -c:a aac.

MOV

Поскольку ваши файлы MOV и MP4, вероятно, содержат одинаковые форматы видео и аудио, вы можете кодировать MP4 и создавать MOV путем повторного мультиплексирования (с режимом stream copy ) вместо перекодирования:

ffmpeg -i input.mp4 -codec copy output.mov

WMV

FFmpeg поддерживает только WMV 7 и 8. Я не знаю кодировщик с открытым исходным кодом для версии 9.

$ ffmpeg -encoders | grep -i windows
[...]
 V..... = Video
 A..... = Audio
 ------
 V..... wmv1                 Windows Media Video 7
 V..... wmv2                 Windows Media Video 8
 A..... wmav1                Windows Media Audio 1
 A..... wmav2                Windows Media Audio 2

Поскольку я не знаком с этими кодировщиками, я могу привести только непроверенный пример:

ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv

Получение ffmpeg

Вы можете скачать сборка Linux ffmpeg или следовать пошаговой инструкции руководство по компиляции ffmpeg , чтобы настроить свою сборку.

Использование bash "for loop" для выполнения пакетного кодирования

Чтобы закодировать все видео в каталоге:

$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
  -c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
  "encoded/${f%.avi}.mp4"; done

Также см

52
llogan

Попробуйте HandBrake .

HandBrake - это инструмент для преобразования видео практически из любого формата в набор современных, широко поддерживаемых кодеков. Для установки просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

Sudo add-apt-repository ppa:stebbins/handbrake-releases
Sudo apt-get update
Sudo apt-get install handbrake
5
Mitch