Поиск по сайту:

20+ команд FFmpeg для начинающих

Учебное пособие по FFmpeg с примерами

В этом руководстве я объясню, как использовать мультимедийную платформу FFmpeg для выполнения различных операций перекодирования и преобразования аудио, видео, на примерах. Я собрал более 20 наиболее часто используемых команд FFmpeg для начинающих.

Я буду продолжать обновлять это руководство, время от времени добавляя новые примеры. Пожалуйста, добавьте это руководство в закладки и вернитесь через некоторое время, чтобы проверить наличие обновлений. Давайте начнем, ладно?

Установите FFmpeg в Linux

Если вы еще не установили FFmpeg в своей системе Linux, обратитесь к следующему руководству.

  • Установить FFmpeg в Linux

Команды FFmpeg с примерами

Типичный синтаксис команды FFmpeg:

ffmpeg [global_options] {[input_file_options] -i input_url} ...
 {[output_file_options] output_url} ...

Теперь мы рассмотрим некоторые важные и полезные команды FFmpeg.

1. Получение информации об аудио/видео файле

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

ffmpeg -i video.mp4

Пример вывода:

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
At least one output file must be specified

Как вы видите в приведенном выше выводе, FFmpeg отображает информацию о медиафайле вместе с деталями FFmpeg, такими как версия, сведения о конфигурации, уведомление об авторских правах, параметры сборки и библиотеки и т. д.

Если вы не хотите видеть баннер FFmpeg и другие сведения, а только информацию о медиафайле, используйте флаг -hide_banner, как показано ниже.

ffmpeg -i video.mp4 -hide_banner

Пример вывода:

Просмотр информации об аудио- и видеофайлах с помощью FFmpeg

Видеть? Теперь он отображает только сведения о медиафайле.

Рекомендуется прочитать:

  • Отображение информации о медиафайлах в Linux с помощью MediaInfo

2. Преобразование видеофайлов в разные форматы

Поскольку FFmpeg — это многофункциональный и мощный конвертер аудио и видео, можно конвертировать медиафайлы в разные форматы. Скажем, чтобы преобразовать файл mp4 в файл avi, выполните:

ffmpeg -i video.mp4 video.avi

Точно так же вы можете конвертировать медиафайлы в любой формат по вашему выбору.

Например, чтобы преобразовать видео YouTube в формате flv в формат mpeg, выполните:

ffmpeg -i video.flv video.mpeg

Если вы хотите сохранить качество исходного видеофайла, используйте параметр '-qscale 0':

ffmpeg -i input.webm -qscale 0 output.mp4

Чтобы проверить список поддерживаемых форматов FFmpeg, запустите:

ffmpeg -formats

3. Преобразование видеофайлов в аудиофайлы

Чтобы преобразовать видеофайл в аудиофайл, просто укажите выходной формат: .mp3 или .ogg или любой другой аудиоформат.

Приведенная выше команда преобразует видеофайл input.mp4 в аудиофайл output.mp3.

ffmpeg -i input.mp4 -vn output.mp3

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

ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

Здесь,

  • -vn — указывает, что мы отключили запись видео в выходном файле.
  • -ar — установите частоту звука выходного файла. Обычно используются следующие значения: 22050, 44100, 48000 Гц.
  • -ac   – установите количество аудиоканалов.
  • -ab — указывает битрейт аудио.
  • -f  – формат выходного файла. В нашем случае это формат mp3 .

Приведенная выше команда отобразит предупреждающее сообщение, как показано ниже.

[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k
The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s

Это связано с тем, что мы указали 320 бит/секунду в качестве битрейта, который очень низок. Это создаст выходной файл меньшего размера. Для получения наилучшего качества используйте значение битрейта 320k вместо просто 320.

4. Изменить громкость аудиофайлов

FFmpeg позволяет нам изменять громкость аудиофайла с помощью опции "фильтр громкости".

Например, следующая команда уменьшит громкость вдвое.

ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3

Аналогичным образом мы можем увеличить громкость, как показано ниже:

ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3

5. Изменить разрешение видеофайлов

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

ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

Или,

ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

Приведенная выше команда установит разрешение данного видеофайла на 1280x720.

Аналогично, чтобы преобразовать указанный выше файл в размер 640x480, запустите:

ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4

Или,

ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4

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

6. Сжатие видеофайлов

Всегда полезно уменьшить размер медиафайлов до меньшего размера, чтобы сэкономить место на диске.

Следующая команда сожмет и уменьшит размер выходного файла.

ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

Обратите внимание, что вы потеряете качество, если попытаетесь уменьшить размер видеофайла. Вы можете снизить значение crf до 23 или ниже, если 24 слишком агрессивен.

Вы также можете немного перекодировать звук и сделать его стерео, чтобы уменьшить размер, включив следующие параметры.

-ac 2 -c:a aac -strict -2 -b:a 128k

7. Сжатие аудиофайлов

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

Допустим, у вас есть аудиофайл с битрейтом 320 кбит/с. Вы хотите сжать его, изменив битрейт на любое более низкое значение, как показано ниже.

ffmpeg -i input.mp3 -ab 128 output.mp3

Список различных доступных аудиобитрейтов:

  1. 96 кбит/с
  2. 112 кбит/с
  3. 128 кбит/с
  4. 160 кбит/с
  5. 192 кбит/с
  6. 256 кбит/с
  7. 320 кбит/с

8. Удаление аудиопотока из видеофайла

Если вам не нужен звук из видеофайла, используйте флаг -an.

ffmpeg -i input.mp4 -an output.mp4

Здесь 'an' указывает на отсутствие аудиозаписи. Другими словами, эта опция отключит звук.

Приведенная выше команда отменит все флаги, связанные со звуком.

9. Удаление видеопотока из медиафайла

Аналогично, если вам не нужен видеопоток, вы можете легко удалить его из медиафайла, используя флаг 'vn'. vn означает отсутствие записи видео. Другими словами, эта команда преобразует данный медиафайл в аудиофайл.

Следующая команда удалит видео из данного медиафайла.

ffmpeg -i input.mp4 -vn output.mp3

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

ffmpeg -i input.mp4 -vn -ab 320 output.mp3

10. Извлечение изображений из видео

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

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

ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

Здесь,

  • -r — установить частоту кадров. То есть количество кадров, которые необходимо извлечь в изображения в секунду. Значение по умолчанию — 25.
  • -f — указывает выходной формат, то есть в нашем случае формат изображения.
  • image-%2d.png — указывает, как мы хотим назвать извлеченные изображения. В этом случае имена должны начинаться так: image-01.png, image-02.png, image-03.png и т. д. . Если вы используете %3d, то имена изображений будут начинаться так: image-001.png, image-002.png и так далее.

11. Обрезка видео

FFMpeg позволяет обрезать медиафайл в любом размере по вашему выбору.

Синтаксис обрезки видеофайла приведен ниже:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Здесь,

  • input.mp4 — исходный видеофайл.
  • -filter:v — указывает видеофильтр.
  • обрезка – указывает фильтр обрезки.
  • w — ширина прямоугольника, который мы хотим обрезать из исходного видео.
  • h — высота прямоугольника.
  • x – x координата прямоугольника, который мы хотим обрезать из исходного видео.
  • y — координата y прямоугольника.

Допустим, вам нужно видео с шириной 640 пикселей и высотой 480 пикселей, из позиция (200,150), команда будет такой:

ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

Обратите внимание, что обрезка видео повлияет на качество. Не делайте этого, если в этом нет необходимости.

12. Конвертируйте определенную часть видео

Иногда вам может потребоваться преобразовать в другой формат только определенную часть (длительность) видеофайла. Скажем, например, следующая команда преобразует первые 10 секунд данного файла video.mp4 в формат video.avi.

ffmpeg -i input.mp4 -t 10 output.avi

Здесь мы указываем время в секундах. Также можно указать время в формате чч.мм.сс.

13. Установите соотношение сторон для видео

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

ffmpeg -i input.mp4 -aspect 16:9 output.mp4

Обычно используемые соотношения сторон:

  • 16:9
  • 4:3
  • 16:10
  • 5:4
  • 2:21:1
  • 2:35:1
  • 2:39:1

14. Добавление изображения постера в медиафайлы

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

ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

15. Обрезать медиафайл, используя время начала и остановки

Чтобы обрезать видео до меньшего размера, используя время начала и остановки, мы можем использовать следующую команду.

ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

Здесь,

  • --s — указывает время начала видеоклипа. В нашем примере время начала – 50-я секунда.
  • -t — указывает общую продолжительность времени.

Это очень полезно, если вы хотите вырезать часть аудио- или видеофайла, используя время начала и окончания.

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

ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

16. Разделите аудио/видео файлы на несколько частей.

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

ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4

Здесь -t 00:00:30 указывает часть, созданную с начала видео до 30-й секунды видео. -ss 00:00:30 показывает отметку времени начала следующей части видео. Это значит, что вторая часть начнется с 30-й секунды и будет продолжаться до конца исходного видеофайла.

Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"

17. Объедините аудио и видео файлы

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

ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c:v copy -c:a aac output.mp4

Приведенная выше команда объединит файл inputvideo.mp4 с inputaudio.mp3 в output.mp4. Он также перекодирует аудиофайл.

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

Если ваш аудио- или видеопоток длиннее, вы можете добавить параметр -shortest, чтобы ffmpeg прекратил кодирование после завершения одного файла.

Если входное видео уже содержит звук и вы хотите его заменить, вам нужно указать ffmpeg, какой аудиопоток использовать, как показано ниже:

ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4

Опция -map заставляет ffmpeg использовать для выходного файла только первый видеопоток с первого входа и первый аудиопоток со второго входа.

Если вы хотите объединить аудиофайл с видеофайлом. без перекодирования звука просто скопируйте оба файла, как показано ниже:

ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c copy output.mkv

18. Объединение или слияние нескольких аудио/видео частей в одну

FFmpeg также объединит несколько частей видео и создаст один видеофайл.

Создайте файл join.txt, содержащий точные пути к файлам, к которым вы хотите присоединиться. Все файлы должны быть одного формата (того же кодека). Путь ко всем файлам должен быть указан один за другим, как показано ниже.

file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4

Теперь объедините все файлы с помощью команды:

ffmpeg -f concat -i join.txt -c copy output.mp4

Если вы получите сообщение об ошибке, подобное приведенному ниже;

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted

Добавьте "-safe 0":

ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4

Приведенная выше команда объединит файлы part1.mp4, part2.mp4, part3.mp4 и part4.mp4. в один файл с именем "output.mp4".

Альтернативно вы можете использовать следующую однострочную команду для объединения всех файлов в каталоге. Перейдите в каталог, в котором находятся файлы, и выполните следующую команду, чтобы объединить файлы с именами audio1.mp3, audio2,mp3 и audio3.mp3 в output.mp3.

ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3

19. Добавьте субтитры в видеофайл

Мы также можем добавить субтитры к видеофайлу с помощью FFmpeg. Загрузите правильный субтитр для своего видео и добавьте его в свое видео, как показано ниже.

fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

20. Предварительный просмотр или тестирование видео или аудио файлов

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

ffplay video.mp4

Воспроизведение видеофайлов с помощью ffplay

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

ffplay audio.mp3

Воспроизведение аудиофайлов с помощью ffplay

21. Увеличение/уменьшение скорости воспроизведения видео.

FFmpeg позволяет регулировать скорость воспроизведения видео.

Чтобы увеличить скорость воспроизведения видео, запустите:

ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

Команда удвоит скорость видео.

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

ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

22. Увеличение/уменьшение скорости воспроизведения звука.

Чтобы увеличить или уменьшить скорость воспроизведения звука, используйте аудиофильтр "atempo". Следующая команда удвоит скорость звука.

ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4

Для аудио можно использовать любое значение от 0,5 до 2,0.

23. Создать анимированный GIF

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

В следующем руководстве объясняется, как создать анимированный файл GIF с помощью FFmpeg и ImageMagick в Linux и Unix-подобных системах.

  • Как создать анимированный GIF-файл в Linux

Рекомендуется прочитать:

  • Gifski – кроссплатформенный высококачественный кодировщик GIF

24. Создание видео из PDF-файлов

За прошедшие годы я собрал множество PDF-файлов, в основном учебных пособий по Linux, и сохранил их на своем планшетном ПК. Иногда мне лень читать их с планшета.

Итак, я решил создать видео из файлов PDF и посмотреть его на устройствах с большим экраном, таких как телевизор или компьютер. Если вы когда-нибудь задавались вопросом, как создать файл фильма из коллекции PDF-файлов, вам поможет следующее руководство.

  • Как создать видео из PDF-файлов в Linux

25. Поворот видео

Если у вас есть видеофайлы с разной ориентацией (книжная или альбомная), вы можете повернуть их, как описано в следующем руководстве.

  • Как повернуть видео с помощью FFMpeg из командной строки

26. Конвертируйте видео в формат видео WhatsApp.

WhatsApp не поддерживает некоторые видео. Вы не можете поделиться ими со своими контактами или установить для них статус WhatsApp. Не беспокойся! Мы можем легко конвертировать видео в формат видео, поддерживаемый WhatsApp, с помощью FFmpeg, как описано по следующей ссылке.

  • Конвертируйте видео в формат видео WhatsApp с помощью FFmpeg

27. Увеличение и уменьшение масштаба видео

FFmpeg имеет множество полезных фильтров для выполнения конкретной задачи. Один из них — зумпан. Используя фильтр масштабирования, мы можем легко периодически увеличивать и уменьшать масштаб каждые X секунд.

Для получения более подробной информации перейдите по следующей ссылке:

  • Как увеличивать и уменьшать масштаб видео с помощью FFmpeg

28. Получение помощи

В этом руководстве я рассмотрел наиболее часто используемые команды FFmpeg. У него гораздо больше возможностей для выполнения различных расширенных функций. Чтобы узнать больше об этом, обратитесь к странице руководства.

man ffmpeg

Связанное чтение:

  • Руководство по YouTube-dl с примерами для начинающих

Заключение

В этом руководстве мы обсудили, что такое FFmpeg, как установить FFmpeg в различных дистрибутивах Linux. Затем мы предоставили вам список часто используемых команд FFmpeg с примерами для начала работы с FFmpeg.

Ресурс:

  • Документация FFmpeg

Статьи по данной тематике

Все права защищены. © Linux-Terminal.com • 2023-2024