Сборка видеоклипа с помощью ffmpeg

Версия для печатиВерсия для печати

ffmpegFFmpeg является кодировщиком и конвертером аудио и видео с интерфейсом командной строки, то есть работает из консоли. Поддерживает огромное количества входных и выходных форматов. Обработка видео всегда была достаточно затратной операцией и требует мощного аппаратного обеспечения, но для выполнения ffmpeg гектары железа не нужны.

Иногда требуется собрать маленький видеофайл с презентацией, чтобы прокрутить его на компьютере, телефоне или на сайте. С ffmpeg потребуется минимум усилий и времени, чтобы выполнить такую задачу. Учитывая, что программа работает в консоли, можно возложить на нее ряд автоматических операций.

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

Готовим звуковое сопровождение, например в формате mp3 и также сохраняем его в виде файла. Длительность видеофайла и звукового сопровождения должна быть одинаковой. После того, как все готово, выполняем микширование видео и звука с выходом в отдельный файл.

Перечень возможностей и количество опций описывать в одной статье затруднительно, поэтому приведу набор функций, которые бывают часто востребованы.

Обрезка видео (Crop)

-vf crop=width:height:x:y

-vf crop=200:200 - обрезка изображения от центра до размера 200х200.

-vf crop=in_w-2*10:in_h-2*20 - обрезка по 10 пикселей слева и справа и по 20 пикселей сверху и снизу, исходя из размера исходного изображения.

-vf crop=2/3*in_w:2/3*in_h - обрезка от центра до 2/3 от исходного изображения.

-vf crop=800:600:0:0 - вырежет окошко размером 800х600 не из центра, а точно от левого верхнего угла.

Просмотр доступных форматов:

ffmpeg -formats

Просмотр доступных кодеков:

ffmpeg -codecs

Просмотр доступных фильтров:

ffmpeg -filters

Получение информации о мультимедийном файле:

ffmpeg -i input.avi

Конвертирование из одного формата в другой:

ffmpeg -i input.mov output.avi

Сохранение звуковой дорожки:

ffmpeg -i input.avi -vn -ab 128k output_audio.mp3

Желательно указывать битрейт, потому что 64кб/с по умолчанию это маловато.

Вырезаем нужный фрагмент видео без перекодирования видео и звуковой дорожки:

ffmpeg -i input.avi -ss 00:7:00 -t 00:04:00 -vcodec copy -acodec copy cut.avi

Мы вырезали 4-х минутный фрагмент, начиная с 7-й минуты видео.

Микшируем видеодорожку со звуковой:

ffmpeg -i video.avi -vcodec copy -i audio.mp3 -acodec copy output.avi

Делаем скриншот с видео:

ffmpeg -i input.vob -an -ss 00:02:00 -r 1 -vframes 1 -s 720x480 -f image2 screenshot.jpg

Будет получен скриншот второй минуты видео, с разрешением 720х480

Собственно, для создания клипа со встроенной сторонней звуковой дорожкой, эффектами переходов и кодирования файла в определенный формат будет достаточно сего перечня программ