Конвертируйте «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. Не говоря уже о том, что оба варианта имеют одинаковые параметры в одной программе, но имеют совершенно разные результаты.

0
задан 17 December 2013 в 02:02

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 - худшее качество. Обычно вы используете самое высокое значение, которое все еще дает вам приемлемое качество.

  • Скорость кодирования видео / 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

Также см.

0
ответ дан 17 December 2013 в 02:02

Другие вопросы по тегам:

Похожие вопросы: