Конвертируйте видео в формате "H264 MP4 AVC (часть 10) (avc1)"/"MPEG AAC 48 кГц" в формате 1080p 23,976000 кадров в секунду в 720p с максимально возможным качеством
file
говорит, что все файлы ISO Media, MPEG v4 system, version 2
и информация о названии взята из VLC 2.0.9. IMO 1080p не нужен, тем более что другие видео более ранних версий - 720p, и они вполне хороши; Я не знаю и не уверен, но я думаю, что все эти видео HD, что объясняет их размер. Остальная информация, предоставленная VLC во время воспроизведения, для полноты:
Decoded format: Planar 4:2:0 YUV
Я нашел не один ответ, и все они используют ffmpeg
но avconv
является преемником; Я знаю, это одно и то же, по крайней мере, по большей части. Я знаю по опыту avconv
не принимает некоторые параметры, предназначенные для ffmpeg
, Не говоря уже о том, что оба варианта имеют одинаковые параметры в одной программе, но имеют совершенно разные результаты.
1 ответ
1. Получить ffmpeg
Всегда полезно использовать последнюю сборку при кодировании с ffmpeg
, Разработка очень активна, и использование последних сборок позволит вам избежать исправленных ошибок, предоставляя вам доступ к последним функциям.
Есть два основных способа получить ffmpeg
и ни один не будет мешать пакетам из репозитория, включая так называемый пакет "ffmpeg":
Использование статической сборки
Это просто бинарный файл, который кто-то скомпилировал. Все, что вам нужно сделать, это загрузить, распаковать и запустить его (обратите внимание на ./
до ffmpeg
):
wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.$(date +"%F").tar.gz
tar xzvf ffmpeg.static.32bit.$(date +"%F").tar.gz
./ffmpeg -i input.mp4 <your options> output.mkv
составление ffmpeg
При компиляции вы контролируете, как именно ffmpeg
настроен, а также позволяет использовать определенные кодеры, такие как libfdk_aac
, которые недоступны в статических сборках.
Просто следуйте пошаговому руководству: Как скомпилировать FFmpeg в Ubuntu. Если вы можете скопировать и вставить, вы можете скомпилировать ffmpeg
,
2. Кодировать
ffmpeg -i in.avi -vf scale=-1:720 -c:v libx264 -crf 18 -preset fast -c:a copy out.mkv
В этом примере:
scale
фильтр, чтобы изменить размер видео. Сscale
Вы можете просто объявить одно измерение, высоту в этом случае и использовать-1
в другом.ffmpeg
Затем автоматически рассчитает правильное значение, сохраняя соотношение сторон.Кодировщик
libx264
будет производить видео H.264. Качество контролируется с-crf
, Диапазон представляет собой логарифмическую шкалу от 0 до 51. 0 - без потерь (файлы, вероятно, будут огромными), 18 часто считается "визуально без потерь", 23 - по умолчанию, а 51 - худшее качество. Как правило, вы используете самое высокое значение, которое все еще дает вам приемлемое качество.Скорость кодирования видео / эффективность сжатия для этого кодера контролируется с помощью
-preset
, Это: сверхбыстрый, сверхбыстрый, очень быстрый, быстрый, быстрый, средний, медленный, медленный, очень низкий. По умолчанию "средний". Обычно вы используете самый медленный пресет, к которому у вас есть терпение.Для набора видео используйте тот же
-crf
а также-preset
для всех них.Аудио будет скопировано с входа на выход. Думайте об этом как о копировании и вставке.
Будет использован выходной контейнер Matroska. Он поддерживает больше форматов, но не так широко поддерживается плеерами и устройствами, как, например, MP4.
Кодирование всех видео
Вы можете использовать bash "for loop" для кодирования всех видео в каталоге:
mkdir encoded
for f in *.avi; do ./ffmpeg -i "$f" -vf scale=-1:720 -c:v libx264 -crf 18 -preset fast -c:a copy encoded/"${f%.avi}.mkv"; done