Конвертируйте видео в формате "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