FFMPEG

29 ноября, 2017

В последнее время часто пользуюсь утилитой ffmpeg для конвертирования видео. Но не настолько часто, чтобы помнить все команды ее наизусть, поэтому сделаю заметку здесь в блоге и буду поддерживать ее в актуальном для себя состоянии.

Цель заметки — не собрать полное руководство по пользованию утилитой, для этого есть официальная документация, а только необходимые для себя функции.

Вся магия происходит в командной строке. В большинстве случаев, чтобы переконвертировать видео с помощью ffmpeg из одного формата в другой или просто изменить разрешение видеофайла достаточно строчки:

ffmpeg -i input.avi -vcodec h264 -b:v 2000k -r 25 -s 852×480 -b:a 192k -acodec aac output.mp4

где:
-i input.avi — файл источник
-vcodec h264 — кодек, которым планируем кодировать
-b:v 2000k — битрейт видео
-r 25 — количество кадров в секунду, fps
-s 852×480 — разрешение
-b:a 192k — битрейт аудио
-acodec aac — кодек аудио
output.mp4 — выходной файл

Список поддерживаемых утилитой форматов и кодеков.

Основные разрешения 16:9, которыми пользуюсь: 2560×1140, 1920×1080, 1366×768, 1280×720, 960×540, 864×486, 640×360.

Основные разрешения 4:3: 1920×1440, 1280×960, 960×720, 750×540, 480×360.

Оптимальные параметры битрейта в зависимости от разрешения при частоте кадров 24, 25, 30 (источник: этотвашютьюб):
1080p — 8000-10000 кбит/с
720p — 4400-5500 кбит/с
480p — 1500-2200 кбит/с
360p — 800-1100 кбит/с
240p — 500-600 кбит/с

Как вырезать кусок видео с помощью ffmpeg

Для этого использую 2 способа.

Первый — в случае, когда помимо вырезания фрагмента из видео, необходимо менять его параметры:

ffmpeg -ss 00:00:10 -t 00:05:00 [дальше необходимые параметры по стандартной]

здесь -ss 00:00:10 — начало фрагмента через 10 секунд
-t 00:05:00 — продолжительность фрагмента 5 минут

Второй способ используется, когда параметры фрамента остаются такими же, как и файл-источник.

ffmpeg -ss 00:00:10 -t 00:05:00 -i input.mp4 -sameq output.mp4

Как объединить аудио и видео с помощью ffmpeg

ffmpeg -i video.mp4 -i audio.mp3 -shortest output.mp4