В последнее время часто пользуюсь утилитой ffmpeg для конвертирования видео. Но не настолько часто, чтобы помнить все команды ее наизусть, поэтому сделаю заметку здесь в блоге и буду поддерживать ее в актуальном для себя состоянии.
Цель заметки — не собрать полное руководство по пользованию утилитой, для этого есть официальная документация, а только необходимые для себя функции.
Вся магия происходит в командной строке. В большинстве случаев, чтобы переконвертировать видео с помощью ffmpeg из одного формата в другой или просто изменить разрешение видеофайла достаточно строчки:
где:
-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 способа.
Первый — в случае, когда помимо вырезания фрагмента из видео, необходимо менять его параметры:
здесь -ss 00:00:10 — начало фрагмента через 10 секунд
-t 00:05:00 — продолжительность фрагмента 5 минут
Второй способ используется, когда параметры фрамента остаются такими же, как и файл-источник.