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

17

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

Для моей дневной работы мне нужно часто конвертировать видео из многих случайных форматов (обычно больших AVI , < a href="https://en.wikipedia.org/wiki/M4V"> M4V , а что нет) и конвертировать их и сжать их в эффективные файлы, которые мы можем использовать в Интернете для загрузки. Форматы, которые я должен создать:

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

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

    
задан Garrett 02.10.2013 в 22:19
источник

2 ответа

39

Если вы предпочитаете использовать командную строку, вы можете использовать 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 : filtergraph с помощью scale и формат . Увеличьте до 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 для цикла для выполнения пакетного кодирования

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

$ 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

Также см.

ответ дан LordNeckbeard 03.10.2013 в 18:04
источник
4

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

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

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake
    
ответ дан Mitch 03.10.2013 в 09:33