Если вы предпочитаете командную строку, вы можете использовать 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
Также см