Я знаю, что здесь много вопросов о видеокодерах, но мой вопрос больше о рабочем процессе / эффективности.
Для своей повседневной работы мне нужно конвертировать видео, часто, из многих случайных форматов (обычно больших AVI , M4V и других), конвертировать их и сжимать их в эффективные файлы, которые мы можем использовать в Интернете для загрузки. Форматы, которые я должен создать:
Мне нужно создать общие шаблоны для пары вариантов использования (преобразовать в один и тот же источник, [ 116] 1080p или 720p ) и возможность обрабатывать их быстро и в очереди.
Есть какие-нибудь идеи о том, как лучше всего выполнить этот процесс в Ubuntu?
Если вы предпочитаете командную строку, вы можете использовать ffmpeg
(или handbrake-cli
).
Предполагается, что вы используете последнюю версию 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 и MP4, вероятно, содержат одинаковые форматы видео и аудио, вы можете кодировать MP4 и создавать MOV путем повторного мультиплексирования (с потоковой копией mode) вместо перекодирования:
ffmpeg -i input.mp4 -codec copy output.mov
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
Вы можете скачать сборку Linux для ffmpeg [ 1120] или следуйте пошаговому руководству по компиляции ffmpeg для настройки вашей сборки.
Для кодирования всех видео в каталоге:
$ 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
Попробуйте HandBrake .
HandBrake - это инструмент для преобразования видео практически из любого формата в набор современных, широко поддерживаемых кодеков. Для установки просто нажмите Ctrl kbd> + Alt kbd> + T kbd> на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake