Полезные команды ffmpeg

Если вы часто работаете с видео в операционной системе Linux, то наверное, слышали об утилите и наборе библиотек ffmpeg. Это мощная кроссплатформенная библиотека, которая позволяет делать почти любые действия с видео. Вы можете склеивать, кодировать, изменять, обрезать видео, но все это через терминал.

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

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

Что такое ffmpeg?

ffmpeg — это один из лучших мультимедийных фреймворков, который содержит различные инструменты, для решения разных задач. Например, ffplay — портативный медиа плеер, утилита ffmpeg может использоваться для обработки и инвертирования файлов, ffserver — для потоковой передачи данных, а ffprobe может анализировать мультимедийный поток.

В набор ffmpeg, кроме утилит, входят такие библиотеки: libavutil libavcodec libavformat libavdevice libavfilter libavresample libswscale libswresample libpostproc. Из-за своей архитектуры, этот набор инструментов очень безопасный, и с помощью него вы можете сделать почти все что угодно с видео или аудио. В этой статье мы будем рассматривать в основном утилиту ffmpeg. Давайте рассмотрим ее синтаксис:

$ ffmpeg [опции источника] -i [источник] [основные опции] [кодеки] [преемник]

  • Опции источника — указывают параметры чтения файла, настройки и так далее;
  • Источник — опция -i задает источник, откуда будет читаться файл, источников может быть несколько и это может быть не только файл, но и устройство;
  • Основные опции — задают параметры работы всей утилиты;
  • Кодеки — кодек, который будет использоваться для сохранения видео и аудио;
  • Преемник — файл или устройство, куда будут записаны данные.

Сейчас мы не будем подробно рассматривать опции, рассмотрим их потом, уже в самих командах.

Полезные команды ffmpeg

Как я уже сказал, утилита ffmpeg поддерживает большинство аудио и видео форматов. Чтобы проверить какие форматы поддерживаются вы можете выполнить:

ffmpeg -formats

Если вы новичок в использовании этого инструмента, то вот некоторые команды, которые могут вам очень сильно помочь. Дальше вы узнаете как пользоваться ffmpeg.

1. Получить информацию о видео

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

ffmpeg -i video.mp4 -hide_banner

ffmpeg

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

ffmpeg -i video.mp4

ffmpeg2

2. Разбить видео на кадры

Чтобы разбить видео на изображения подойдет такая команда:

ffmpeg -i video.mp4 image%d.jpg

ffmpeg1

Утилита сгенерирует изображения с именами image1.jpg, image2.jpg, image3.jpg и так далее. После завершения вы найдете очень большое количество изображений в папке с видео.

3. Собрать видео из изображений

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

ffmpeg -f image2 -i image%d.jpg imagestovideo.mpg

ffmpeg7

 

Опция -f задает формат входного файла, вы можете использовать jpeg, png, jpg и другие картинки. И вы уже знаете как посмотреть поддерживаемые форматы ffmpeg.

4. Вытянуть звук из видео

Чтобы конвертировать видео в mp3 выполните команду:

ffmpeg -i video.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 audio.mp3

ffmpeg3Вот описание новых опций:

  • -vn — не обрабатывать видео, вся видео информация будет отброшена;
  • -ar — частота дискретизации, измеряется в герцах, чем больше, тем лучше качество звука;
  • -ab — устанавливает битрейт аудио;
  • -ac — устанавливает количество каналов;
  • -f — указывает формат полученного файла.

5. Конвертировать flv в mpg

Для конвертирования flv в mpg выполните:

ffmpeg -i video.flv video.mpg

6. Преобразовать видео в gif

Таким же самым образом можно переделать видео в анимированную gif картинку:

ffmpeg -i video.flv animated.gif

ffmpeg4

 

Мы не указываем кодеки ffmpeg и формат, потому что программа может их сама определить по расширению.

7. Преобразовать mpg в flv

Чтобы конвертировать видео mpg в flv выполните:

ffmpeg -i video.mpg -ab 26k -f flv video1.flv

Здесь мы уже задали битрейт и формат.

8. Преобразовать avi в mpeg

Для этого выполните команду:

ffmpeg -i video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 video.mpeg

Использованные опции:

  • -target pal-dvd — формат исходящего файла;
  • -ps 2000000000 — максимальный размер полученного файла;
  • -aspect 16:9 — соотношение сторон экрана.

9. Конвертировать видео в CD или DVD формат

Чтобы выполнить конвертирование ffmpeg видео в формат DVD, нужно задать ваш формат с помощью опции -target. Доступны такие форматы: vcd, svcd, dvd, dv, pal-vcd или ntsc-svcd. Чтобы создать VCD выполните:

ffmpeg -i video.mpg -target vcd vcd_video.mpg

10. Склеить аудио и видео вместе

Вы можете собрать видео и звуковой файл в одну дорожку с помощью команды:

ffmpeg -i audio.mp3 -i video.avi video_audio_mix.mpg

11. Увеличить/уменьшить скорость видео

Чтобы увеличить скорость воспроизведения видео мы будем использовать фильтры, с помощью опции -vf. За скорость отвечает фильтр setpts. Например:

ffmpeg -i video.mpg -vf "setpts=4*PTS" highspeed.mpg

А так можно уменьшить скорость:

ffmpeg -i video.mpg -vf "setpts=0.5*PTS" lowerspeed.mpg -hide_banner

12. Вырезать прямоугольник из видео

Для того чтобы вырезать определенный участок кадра из видео тоже используются фильтры. На этот раз фильтр crop:

ffmpeg -i in.mp4 -vf "crop=out_w:out_h:x:y" out.mp4

  • out_w — ширина нужного прямоугольника;
  • out_h — высота нужного прямоугольника;
  • x,y — задают координаты прямоугольника от начала видео.

Например, обрежем прямоугольник размером 80х60 от позиции 100х200:

ffmpeg -i in.mp4 -vf "crop=80:60:200:100" video.mp4

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

13. Обрезать видео

Тут уже фильтры нам не помогут, но зато мы можем указать опциями из какого момента нужно начать и где завершить, например:

ffmpeg -i video.mp4 -ss 00:01:00 -t 00:01:00 -c copy video_clip.mp4

Начинаем от минуты и пишем еще минуту:

  • -ss задает время на видео, из которого стоит начать запись;
  • -t задает время когда запись нужно завершить относительно ss;
  • задает кодеки для аудио и видео, в нашем случае просто копировать файлы, ничего не перекодируя.

14. Склеить два видео

Чтобы склеить два видео используйте команду:

ffmpeg -i concat:"video1.mpg|video2.mpg" -c copy video.mpg

15. Проиграть видео

Вы можете быстро проиграть видео, чтобы оценить его качество, для этого есть команда:

ffplay video.mp4

ffmpeg5

Программа открывает и видео, и аудио.

16. Фото-баннер для аудио

Вы можете добавить фото баннер к вашей аудио записи с помощью следующей команды:

ffmpeg -loop 1 -i image.jpg -i Bryan\ Adams\ -\ Heaven.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Рассмотрим опции:

  • -loop — задает, что нужно всегда повторять оду и ту же картинку;
  • -i — задают входящие файлы, картинку и аудиофайл;
  • -с:v — задает видеокодек, эквивалентно -vc;
  • -c:a — задает аудиокодек, эквивалентно -ac;
  • -b:a — задает битрейт аудио, эквивалентно -ab;
  • -strict experimental — кодек aac для ffmpeg экспериментальный, поэтому чтобы его использовать нужна эта опция.

17. Добавить субтитры к видео

Если у вас есть отдельный файл субтитров, например с именем subtutle.srt, вы можете использовать такую команду, чтобы добавить его к видео:

ffmpeg -i video.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast video-output.mkv

Выводы

Это все полезные команды ffmpeg, которые сегодня были рассмотрены. Но вы можете найти еще больше команд и еще больше возможностей просмотрев официальную документацию утилиты. Если вы знаете другие очень интересные и полезные команды ffmpeg, напишите в комментариях!

На десерт видео по теме, что такое видеокодеки, кодеры, а также описание основных форматов видео:

10 комментариев

  1. PutNick Сентябрь 7, 2016 Ответить
  2. Artem Сентябрь 7, 2016 Ответить
  3. wigust Сентябрь 7, 2016 Ответить
    • wigust Сентябрь 7, 2016 Ответить
      • wigust Сентябрь 8, 2016 Ответить
  4. Сергей Июнь 5, 2018 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: