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

26

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

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

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

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

Garrett
источник
Я знаю , что есть Avanti в Windows, и я думаю , что ближе вы можете получить в Linux является либо avconv командной строки или интерфейс , как WinFF или ConvertMe ... может быть , в крайнем случае можно попытаться Avanti в вине.
Ричард

Ответы:

52

Если вы предпочитаете командную строку, вы можете использовать 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: Фильтр с использованием масштабирования и форматирования видеофильтров. Увеличьте до 720 пикселей по высоте и автоматически выберите ширину, которая сохранит аспект, а затем убедитесь, что формат пикселей совместим с немыми плеерами.

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

MOV

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

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

Вы можете загрузить сборку ffmpeg для Linux или следовать пошаговой инструкции по сборке 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

Также см

llogan
источник
5

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

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

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake
Митч
источник