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
. Не говоря уже о том, что оба варианта имеют одинаковые параметры в одной программе, но имеют совершенно разные результаты.
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
.
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 - худшее качество. Обычно вы используете самое высокое значение, которое все еще дает вам приемлемое качество.
Скорость кодирования видео / 1126] / эффективность сжатия для этого кодера контролируется с помощью -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