Полезные команды 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, напишите в комментариях!

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

Creative Commons License
Статья Полезные команды ffmpeg распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (13 оценок, среднее: 5,00 из 5)
Загрузка...

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

  1. PutNick Сентябрь 7, 2016 Ответить
  2. Artem Сентябрь 7, 2016 Ответить
  3. wigust Сентябрь 7, 2016 Ответить
    • wigust Сентябрь 7, 2016 Ответить
      • wigust Сентябрь 8, 2016 Ответить

Ответить

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

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