Ffmpeg команды для windows
В этой статье я расскажу вам о том, как можно вырезать фрагмент из видео, склеить видео из фрагментов (частей), извлечь звук из видеозаписи и всё это делается буквально одной строчкой кода. Для этого мы будем использовать "программу" FFmpeg. И да - всё это очень просто и бесплатно. Ссылки на программу и рабочий пример будут в конце статьи.
Почему такая длинная статья и зачем всё это надо
Статья длинная потому что все объяснено очень подробно. Можно читать быстро и "между строк". Можно даже и не читать, а просто скачать пример и если возникнут вопросы смотреть статью.
Зачем это надо. Я показал основные операции с видео - это уже полезная информация.
Я показал операции в "цикле". Мы разрезаем видеофайл на фрагменты, разбиваем фрагмент покадрово, вырезаем звук. А потом всё обратно собираем. И вуаля - исходное видео.
Зачем мы это делаем? Дело в том, что теперь мы можем работать с изображениями. И некоторые нейросети это тоже могут. Итого после разбивки видео на кадры мы можем их изменить, обработать нейросетью, а потом заново собрать и получить интересный результат. И в следующей статье я это покажу. Итого: полезная и подробная информация о работе с FFmpeg и интересное применение данной программы.
Сразу к делу
Сначала я хотел написать вводную часть с кратким пояснением, что такое FFmpeg, преимущества данной программы и недостатки. Но кому это надо, когда есть Википедия? Поэтому скажу кратко и по существу - FFmpeg это программа, которая позволяет делать с видео почти что угодно. Программа не имеет графического интерфейса - работа идет из командной строки. Но намного удобнее создать cmd файлы, что мы и будем делать.
Итого наш краткий план действий.
2) Создать cmd файл с 1-2 строчками кода.
3) Запустить cmd файл и получить результат. Всё.
А можно ничего и не делать. Ведь я уже всё сделал за вас. Качаем мой архив "Пример", распаковываем (ссылка есть внизу статьи). Там всё уже есть. И FFmpeg и cmd файлы. А статью читаем в качестве пояснения. Для новичка так будет проще. Обратите внимание, мой пример работает для Windows x64.
Скачиваем FFmpeg
Первое, что нам нужно - это скачать FFmpeg. Ссылка есть в конце статьи (а можно и загуглить). Идем на официальный сайт, выбираем (если вдруг не выбралось автоматически) версию (Version - для начала можно любую), архитектуру (скорее всего у вас Windows x64), выбираем компоновку (Linking - Static) и нажимаем Download Build.
В 2000 году программист с ником Gerard Lantau выложил для всеобщего использования исходники проекта FFmpeg. За годы концепция осталась прежней:
- Деление на программы FFmpeg для кодирования видео и FFserver для организации потокового вещания.
- Максимально быстрое кодирование звука и видео.
В то время 500 мегагерц в компьютере считались нормой, требовалась максимальная оптимизация, поэтому в FFmpeg своя реализация видеокодеков, оптимизированная для скорости. Это нужно и сейчас, особенно на серверах видеохостингов, где идёт постоянная борьба за снижение энергопотребления, чтобы процессоры не грелись.
FFmpeg прочно стоит на ногах – почти каждый день вносятся правки в исходный код. Добавляются новые компоненты. Например, плеер FFplay и утилита для получения информации FFprobe.
Где скачать FFmpeg и FFserver
FFmpeg разрабатывается под Linux. Если на сайте видите окошко с трансляцией видео – 9 шансов из 10, что оно работает благодаря FFmpeg и FFserver.
На выбор есть 32- и 64-битные версии. Для кодирования видео выбирайте 64-битную Static-версию (ссылка вида “Download FFmpeg git-*** 64-bit Static“).
Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы – программа закрывалась сама по себе. Возможно, потому что FFserver для Windows – 32-битный, есть несовместимость.
Про FFserver в Интернете много инструкций. Они написаны на примере Linux-версии, но прекрасно работают под Windows. Единственное отличие – файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.
Как установить FFmpeg
2. Создайте на диске C: папку ffmpeg и распакуйте туда архив.
Для установки ffmpeg этого достаточно. Советую выполнить пункт 4 для удобства в будущем.
3. Если нужно настроить трансляцию, в папку c:\ffmpeg\bin распакуйте ffserver и положите файлик cygwin1.dll.
4. Чтобы в командах не писать каждый раз полный путь к программе, можно добавить его в переменную PATH: Панель управления – Система – Дополнительные параметры системы – вкладка Дополнительно – Переменные среды – в конце строки переменной Path добавьте “;c:\ffmpeg\bin” без кавычек. Если там было пусто (что не совсем нормально), то “c:\ffmpeg\bin“, т.е. без точки с запятой в начале.
Потом перезагрузите компьютер, чтобы изменения вступили в силу.
Вы можете пропустить четвертый шаг, но потом вместо команд ffmpeg и ffserver придется писать полный путь “c:\ffmpeg\bin\ffmpeg.exe” и “c:\ffmpeg\bin\ffserver.exe”.
Как пользоваться FFmpeg
На главной странице FFmpeg красуется надпись:
Converting video and audio has never been so easy (Перевод: Никогда конвертирование видео и звука не было таким простым)
Человек, не знакомый с командной строкой, будет в ступоре. Куда вводить команду?
FFmpeg хорош для тонких задач, но, если не хотите заморачиваться, воспользуйтесь бесплатной XMedia Recode или платной Movavi Video Converter. .
В папке ffmpeg\doc собрано много примеров по использованию компонентов, все команды можно посмотреть там.
Примеры
Имена файлов у вас будут свои. Если есть пробелы или на русском – обрамляйте имена в кавычки.
Отобразить информацию о файле:
или ffprobe video.mp4
Пережать видео avi в mp4:
Пережать mov в flv и изменить разрешение:
Пережать видео в webm среднего качества, звук формата OGG:
Пережать видео кодеком MPEG4, звук – mp3, контейнер – avi:
Сохранить звуковую дорожку из видео в отдельный файл:
Добавить звуковую дорожку к видео (“-acodec libmp3lame” можно выкинуть, тогда ffmpeg сам решит, как кодировать звук):
Добавить звуковую дорожку без перекодирования видео (сохраняет качество, работает быстро):
Пережать видео в формат
Сохранить кадр на второй секунде как отдельную картинку:
Убрать дрожание камеры и сохранить в out.mp4:
Структура
Как видно из примеров, команды ffmpeg имеют структуру:
Если не указывать опции кодирования, для результирующего файла ffmpeg будет пытаться использовать параметры исходного, чтобы сохранить максимум качества.
Команды
Информационные (чтобы узнать возможности установленной версии)
-L
Показать текст лицензии.
-h, -?, -help, –help
Список доступных команд.
-version
Узнать версию ffmpeg.
-formats
Показать список доступных форматов контейнеров (не кодеков!).
В Windows не хватит строк в командной строке для показа всего списка, для исправления откройте свойства окна и на вкладке “Расположение” поставьте высоту буфера экрана в 500. В списке буквы D и E означают поддержку декодирования и кодирования.
-codecs
Список доступных кодеков. Кроме интуитивно понятных D и E (Decoder для “чтения” и Encoder для кодирования), видны следующие обозначения:
V – кодек для видео, A – для звуковых дорожек, S – субтитров, I – только для кодирования I-фреймов, L – кодек сжимает с потерями данных (большинство), S – без потери данных (сохраняет качество, сжимает слабо).
-bsfs
Показать поддерживаемые bitstream filters (фильтр потока данных), которые нужны в ряде случаев для правильной обработки потока данных.
-protocols
Показать доступные протоколы. Из выдаваемого списка понятно, что в качестве входных данных может использоваться RTMP поток (видеотрансляция) и многое другое, не только файлы. Как выходные – тоже.
-filters
Доступные фильтры видео и аудио. В FFmpeg их громадное количество. Кроме банальных поворота и настроек яркости, в FFmpeg есть расширение стереобазы, генерирование фракталов и прочее, прочее. Подробные инструкции – в doc/ffmpeg-filters.html.
-pix_fmts
Доступные цветовые форматы. FFmpeg понимает громадное количество цветовых пространств. Полезно для тех, у кого оборудование выдает странные цвета.
Основные опции
-loglevel значение или -v значение
Уровень логгирования. От минимума – quiet до максимально подробного debug. Полный список: quiet, panic, fatal, error, warning, info, verbose, debug. Полезно, если в процессе кодирования видео происходят ошибки и нужно узнать подробности.
-f значение (mp4, avi, mkv, gif и т.д.)
Указать определенный формат (контейнер) файла. Обычно FFmpeg выбирает по расширению выходного файла, но можно переназначить.
-i путь_до_файла
Команда для указания входящего файла или потока (например, rtmp://адрес для захвата потокового видео).
-y
Перезаписывать уже существующий выходной файл без запроса.
-ss время
-t время
Указать, до какого времени нужно кодировать видео/аудио. Вместе с предыдущей командой удобно использовать для вырезания отрезка видео.
-fs размер
Лимит выходного файла. Например, при -fs 10M кодирование останавливается, как только выходной файл станет 10 Мб размером. Поддерживаются K, M, G (килобайты, мегабайты и гигабайты).
Опции кодирования видео
-b значение
Устанавливает битрейт видео. Выше битрейт – лучше качество и больше размер файла. Указывайте в конце цифры K или M, чтобы программа понимала, в килобитах/сек или мегабитах/сек значение.
-vframes значение
Количество кадров, которые нужно кодировать.
-r значение
Указание частоты кадров.
-s размер
Указание, в каком разрешении кодировать видео. Например, 1920×1080 для FullHD видео на выходе. FFmpeg понимает буквенные сокращения (vga, hd480, hd720, hd1080 и другие).
-aspect соотношение_сторон
Указать соотношение сторон видео (4:3, 16:9 or 1.3333, 1.7777 и т.д.). Как известно профессионалам, в видео пиксели могут быть прямоугольными.
-croptop значение, -cropbottom значение, -cropleft значение, -cropright значение
Обрезка количества пикселей видео сверху, снизу, слева или справа.
-padtop значение, -padbottom значение, -padleft значение, -padright значение
Добавление границы видео сверху, снизу, слева или справа.
-padcolor hex_color
-vn
Не кодировать видео.
-bt значение
Значение задает максимальное отклонение от указанного битрейта. Может не работать, в зависимости от кодека.
-maxrate битрейт
Указывает максимальное значение битрейта. Требует указания размера буфера через -bufsize.
-minrate битрейт
Минимальный битрейт у видео. Часто используется для принудительного задания определенного битрейта:
ffmpeg -i video.avi -b 4000K -minrate 4000K -maxrate 4000K -bufsize 1835k video-out.mp4
-bufsize размер
Устанавливает размер буфера видео. Упрощенно говоря, это кусок видео, который FFmpeg анализирует и выбирает – какие битрейты выбрать в его пределах. В первую очередь нужно для потокового вещания: чем больше буфер, тем больше стабильности при кодировании.
-vcodec кодек
Выбор кодека (см. команду -codecs для списка кодеков). Можно указать copy, тогда FFmpeg будет копировать видеопоток без перекодирования.
-sameq
Сохранять качество исходной картинки/звука. Это не то же самое, что -vcodec copy. Сохраняется качество видео, кодек может быть любым, видеодорожка перекодируется.
-pass n
Для многопроходного кодирования видео. Указывает, какой делать проход (1 или 2). Префикс имени файла со статистикой указывается командой -passlogfile значение.
Можно отключить обработку звука при первом проходе, чтобы экономить время и ресурсы:
ffmpeg -i video.mp4 -vcodec libxvid -pass 1 -an -f rawvideo -y NUL
Опции звука
-aframes количество
Сколько фреймов звука (да, у звука есть кадры!) нужно кодировать.
-ar частота
Указание частоты звука (по умолчанию 44100 Гц).
-ab битрейт
Битрейт (по умолчанию = 64K).
-aq значение
Указание качества (зависит от кодека, применяется при переменном битрейте).
-ac число
Количество аудиоканалов (по умолчанию 1).
-an
Не кодировать звук.
-acodec кодек
Указание кодека для звука. Значение copy позволяет копировать звуковую дорожку без перекодирования
-newaudio
Добавление еще одной звуковой дорожки. Ее параметры указываются до команды -newaudio:
ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio
Субтитры
-scodec кодек
Кодек для субтитров (copy – для прямого копирования).
-newsubtitle
Добавление еще одних субтитров.
-slang код
Указание языка субтитров в стандарте ISO 639 (3 буквы).
-sn
Другие команды
-threads количество
Количество потоков для кодирования видео. Опцию следует применять только на многоядерных ПК и то с оглядкой, читая документацию к выбранному кодеку.
-vsync значение
Синхронизация кадров. Значения:
0 – каждый кадр передается из входного в результирующий файл с той меткой времени, которая у него была.
1 – кадры будут дублироваться или удаляться, чтобы сохранить требуемую частоту кадров.
2 – кадры будут пропускаться или удаляться, чтобы сохранить требуемую частоту кадров.
-1 – значение по умолчанию. FFmpeg выбирает сам между методами 1 и 2.
-async кадры_в_секунду
Выбор метода синхронизации звука. Чтобы звук и видео совпадали по времени, аудиодорожка может растягиваться и сжиматься. Значение 1 скорректирует звуковую дорожку только в самом начале по принципу “дальше будь что будет”.
-copyts
Применяется для принудительного копирования всех временных меток из исходного файла. Полезно в случае, если начало видео – не 00:00, а что-то другое и это нужно сохранить.
-shortest
Когда самый короткий входящий файл закончился, прекращение кодирования.
Еще команд?
Команды для FFmpeg смотрите здесь:
Для кодирования кодеком x264, который сейчас приобрел популярность, гляньте это:
Почему команд так много?
Они нужны для полного контроля процесса обработки файлов с видео и звуком.
Большинство пользователей конвертируют видео, не понимая, что важен не только кодек для сжатия, но и его параметры. Есть нюансы, которые непросто осознать начинающим пользователям. Например, файл с расширением “mp4” не обязательно содержит в себе видео с кодеком MPEG4.
Если есть какие-то вопросы по FFmpeg – спрашивайте в комментариях. Помогу, чем смогу.
В прошлом посте я рассказал как установить FFmpeg на CentOS 6.4.
Для понимания, более простых конструкций, например такой:
чуть ниже я перечислю наиболее часто используемые опции.
Рассмотрим некоторые полезные опции (в скобках примеры). Если какие-то из опций не будут указаны, то FFmpeg подставит их из значений по умолчанию:
Наиболее часто используемые конструкции:
1. Получение информации о видеофайле
2. Превратить набор картинок в видео
Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
здесь задаётся frame rate (12) для видео, формат «image_%010d.jpg» означает, что картинки будут искаться в виде image_0000000001.jpg, image_0000000002.jpg и тд, то есть, в формате printf)
3. Порезать видео на картинки
Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
4. Конвертировать видео в формат iPod/iPhone
- Источник: source_video.avi
- Аудио кодек: aac
- Битрейт аудио: 128kb/s
- Видео кодек: mpeg4
- Битрейт видео: 1200kb/s
- Размер видео: 320 на 180 пикселей
- Полученное видео: final_video.mp4
5. Конвертировать видео в формат PSP
- Источник: source_video.avi
- Аудио кодек: aac
- Битрейт аудио: 32kb/s
- Видео кодек: xvid
- Битрейт видео: 1200kb/s
- Размер видео: 320 на 180 пикселей
- Полученное видео: final_video.mp4
6. Извлечь звуковую дорожку из видео и сохранить в mp3
- Источник: source_video.avi
- Битрейт аудио: 192kb/s
- Выходной формат: mp3
- Полученный аудиофайл: sound.mp3
7. Конвертировать wav в mp3
8. Конвертировать .avi в .mpg
9. Конвертировать .mpg в .avi
10. Конвертировать .avi в .jpg (без сжатия)
11. Добавить звук к видео
12. Конвертировать .avi в .flv
13. Конвертировать .avi в .dv
14. Конвертировать .avi в mpeg для DVD-плееров
- Выходной формат: pal-dvd
- Максимальный размер для выходного файла: 2000000000 (2 Gb)
- Широкоэкранный формат: 16:9
15. Сжать .avi в DivX
16. Сжать OGG Theora в mpeg DVD
17. Сжать .avi в SVCD mpeg2
Формат NTSC:
18. Сжать .avi в VCD mpeg2
Формат NTSC:
19. Многопроходное кодирование с помощью ffmpeg
Ссылки по теме:
У многих пользователей Windows и без того полно приложений, чтобы скачивать, устанавливать, активировать ещё одно для работы с видео. Обойдёмся без этих трудностей!
FFmpeg – функциональный видео- и аудио- конвертер. У него нет графического интерфейса, поэтому выполнять операции необходимо из консоли. При этом функционал программы и качество работы её превосходит тот, что показывают привычные конвертеры.
Базовые возможности FFmpeg:
- конвертация файлов;
- изменение разрешения;
- кадрирование;
- обрезка и склейка файлов;
- замена, добавление, извлечение аудиодорожек и субтитров;
- наложение водяного знака;
- кодирование или стриминг потокового видео.
FFmpeg на самом деле прост в использовании и будет полезен как профессионалам, работающим с видео, так и любителям, решившим обработать домашний видеоархив.
Установка FFmpeg.
Разархивируйте содержимое скачанного архива, например в Program Files или Windows или Windows\System32 (или в другую папку, где у вас могут храниться портативные программы).
- Имя файла: ffmpeg.zip (прямая ссылка)
- Версия: 4.3.2
- Размер файла: 39,3 МБайт
- Требование: OS Windows
- MD5: 5183ac5b1886fe4df4f32d5939ce0df9
Чтобы каждый раз не прописывать длинный путь к программе, например: C:\Program Files\ffmpeg\bin\ffmpeg.exe рекомендую добавить её в системную переменную Path, для этого перейдите:
Пуск → Параметры → Система → О программе → Дополнительные параметры системы → Переменные среды
Запустите "Выполнить" нажатием win+R и выполните sysdm.cpl, затем перейдите во вкладку "Дополнительно", а там уже "Переменные среды".
Переменная среда Path
Теперь для того, чтобы вызвать FFmpeg используйте в консоли (PowerShell или CMD) следующую команду:
FFmpeg: конвертация видео.
После установки FFmpeg можно заниматься работой с медиа файлами, например, конвертируем видео в консоли.
Эта команда сконвертирует видео из файла input.avi в output.mp4. По умолчанию для файлов mov и mp4 используется кодек H.264. Размер кадра и fps будут взяты из исходного файла.
В примере выше параметры по умолчанию могут отличаться от желаемых вами настроек, поэтому параметры можно задавать явно.
- -i имя исходного файла, который предстоит сконвертировать, если файлов несколько перед каждым из них нужно указать -i;
- -y ответит Да (yes) на все вопросы от FFmpeg, если они возникнут в процессе кодирования, например при для перезаписи файла, если тот уже существует;
- -vcodec или кратко c:v – параметры видеокодека, либо copy (если перекодирование не требуется), либо пустой параметр (по умолчанию);
- -f – формат контейнера;
- -b:v (-vb, -b) – битрейт видео в килобитах или мегабитах в секунду задаётся буквой K или M;
- -aspect – соотношение сторон картинки (4:3, 16:9, 1.3333, 1.7777);
- -r – частота кадров;
- -s — разрешение, поддерживаются как числовые значения (640×480) и буквенные обозначения (например, qcif, qvga);
- -vf (или -filter:v) — опция со списком фильтров, которые будут применены к видео;
- -c:a (или -acodec) – параметры аудиокодека, либо copy (если аудио дорожку нужно оставить как есть), либо пустой параметр (по умолчанию);
- -f – формат аудио;
- -af (или -filter:a) — опция со списком фильтров, которые будут применены к аудио;
- -ab (или -b:a) – битрейт аудио;
- -ar – частота дискредитации;
- -ac – количество каналов.
Для примера рассмотрим следующую команду:
ffmpeg -y -i input.avi -c:v libx264 -preset medium -b:v 17000K -aspect 16:9 -r 25 -c:a aac -b:a 128K output.mp4
Данная команда перекодирует файл input.avi в output.mp4. В случае если в конечной папке будет содержаться файл output.mp4, он будет перезаписан (опция -y). В качестве кодека будет использован libx264 со среднем соотношением скорость/качество (-preset medium). Конечный битрейт 17000 kbps, соотношение сторон картинки 16:9, частота 25 кадров в секунду. В качестве аудиокодека будет использован AAC с битрейтом 128kbps.
FFmpeg: Полезные команды.
Чтобы получить информацию о видеофайле выполните: ffmpeg -i video.mp4
Чтобы получить информацию о ключах и параметрах: ffmpeg -help
Исходные и конечные файлы могут быть любого формата, FFmpeg работает почти со всеми из существующих. Список поддерживаемых форматов ffmpeg -formats
Список поддерживаемых кодеков: ffmpeg -codecs
Обрезка видео.
ffmpeg -i input.mp4 -ss 00:00:05 -t 00:05:15 -c copy output.mp4
Склейка видео.
ffmpeg -i "concat:file1.avi|file2.avi" -vcodec copy -acodec copy output.avi
Для склейки используется оператор concat. После двоеточия ему передаются входные файлы, разделённые вертикальной чертой. Соединяемые файлы обязательно должны быть одного формата (видео и аудио), их параметры должны совпадать.
Конвертация аудио.
ffmpeg -i input.wav -ar 44100 -ac 2 -ab 192K -f mp3 output.mp3
Аудио файлы можно конвертировать независимо от видео.
Изменение разрешения и кадрирование.
ffmpeg -i input.mp4 -s 1280x720 output.mp4
Чтобы изменить разрешение конечного видео можно воспользоваться опцией -s.
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
Однако использование фильтра scale даст более качественный результат.
Для кадрирования изображения предназначен фильтр crop. Его параметры имеют следующий вид crop=w:h:x:y, где w — ширина прямоугольника, который нужно вырезать из исходного видео, h — высота прямоугольника, x и y — x координаты точки начала обрезки.
ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
Команда выше вырежет из кадра прямоугольник шириной 640 и высотой 480 пикселей, начиная с позиции (200,150).
Соотношение сторон.
Соотношение сторон устанавливаются опцией -aspect.
ffmpeg -i input.mp4 -aspect 16:9 output.mp4
Ещё пример: ffmpeg -i input.mp4 -aspect 16:9 -vf scale=1280:720 output.mp4
Самые популярные соотношения сторон: 16:9 | 4:3 | 16:10 | 5:4 | 2:21:1 | 2:35:1 | 2:39:1.
Добавление, извлечение и удаление и аудио.
Чтобы добавить звуковую дорожку в видеофайл используйте опцию -i, в которой укажите путь к аудиофайлу.
ffmpeg -i noaudio.mpg -i audio.acc -vcodec copy -acodec copy output.mpg
Удалить из видеофайла звуковую дорожку можно с помощью опции -an (audio not).
ffmpeg -i input.mpg -vcodec copy -an noaudio.mpg
Сохранить аудиодорожку из видеофайла.
ffmpeg -i input.mpg audio.wav
Если требуется сохранить дорожку в определённый формат, укажите параметры явно:
ffmpeg -i input.avi -vn -ar 44100 -ac 2 -ab 192K -f mp3 audio.mp3
Опция -ar указывает частоту дискретизации, -ac — количество каналов, -ab — битрейт. Опция -vn означает, что видео информация будет отброшена, а опция -f указывает формат полученного файла (в примере — это mp3).
Если звуковых дорожек несколько, чтобы сохранить отдельную звуковую дорожку из видеофайла (демультиплексация) воспользуйтесь опцией -map и укажите её идентификатор потока.
ffmpeg -i input.avi -map 0:2 audio.wav
В примере ниже показано, как добавить несколько звуковых дорожек в видеофайл (мультиплексация).
ffmpeg -i video.avi -i audio1.mp3 -i audio2.mp3 -map 0:0 -map 0:1 -map 0:2 output.mkv
Так как в примере выше только один выходной файл, 0 перед двоеточием можно опустить.
Изменение громкости.
Для изменения громкости в FFmpeg существует аудиофильтр volume.
Следующая команда в половину уменьшит громкость:
ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3
Аналогично, громкость можно увеличить (в примере ниже в полтора раза):
ffmpeg -i input.mp4 -c:v copy -af 'volume=1.5' output.mp4
Возможности FFmpeg на этом не ограничиваются, поэтому подробнее можно ознакомиться с командами и фильтрами на официальном сайте.
Читайте также: