Загрузить PDF
Загрузить PDF
Из этой статьи вы узнаете, как установить программу FFmpeg на компьютере под управлением Windows 10. FFmpeg — это программа, которая управляется из командной строки и которая конвертирует видео- и аудио-файлы в разные форматы, а также позволяет создавать аудио- и видео-файлы.
-
1
Откройте сайт, на котором можно скачать программу FFmpeg. Перейдите на страницу https://ffmpeg.zeranoe.com/builds/ в веб-браузере компьютера.
- Установочный файл можно скачать и с официального сайта FFmpeg, но этот файл не поддерживает Windows 10.
-
2
Нажмите Download Build (Скачать сборку). Это синяя кнопка в правой части страницы. Будет скачан архив с программой FFmpeg.
- Возможно, сначала вам придется указать папку для загрузок или подтвердить загрузку.
-
3
Распакуйте скачанный архив. Для этого дважды щелкните по скачанному ZIP-файлу.
-
4
Извлеките папку с программой FFmpeg. Для этого воспользуйтесь встроенным в Windows архиватором:
- перейдите на вкладку «Извлечь» в верхней части окна;
- нажмите «Извлечь все»;
- нажмите «Извлечь» в нижней части окна;
- дождитесь, когда откроется окно.
-
5
Переименуйте извлеченную папку. Переименуйте извлеченную папку «ffmpeg-20180424-d9706f7-win64-static» в «FFmpeg». Для этого:
- щелкните по папке один раз, чтобы выбрать ее;
- перейдите на вкладку «Главная» в верхней части окна;
- нажмите «Переименовать» в разделе «Упорядочить» на панели инструментов;
- введите FFmpeg, а затем нажмите ↵ Enter.
-
6
Скопируйте папку «FFmpeg». Выделите эту папку и нажмите Ctrl+C.
- Чтобы вырезать (а не скопировать) папку, нажмите Ctrl+X.
-
7
Щелкните по Этот компьютер. Эта опция находится на левой панели окна; если вы не видите ее, прокрутите панель вверх. Откроется окно «Этот компьютер».
-
8
Откройте жесткий диск. Для этого дважды щелкните по имени жесткого диска (например, C:) в разделе «Устройства и диски» посередине окна.
- Если в разделе «Устройства и диски» ничего нет, нажмите «Устройства и диски» один раз, чтобы отобразить имена дисков.
-
9
Вставьте папку «FFmpeg». Щелкните по пустому пространству открытого окна с содержимым жесткого диска, а затем нажмите Ctrl+C. Папка «FFmpeg» будет добавлена на жесткий диск компьютера. Теперь можно активировать FFmpeg в командной строке.
Реклама
-
1
Щелкните по Этот компьютер. Эта опция находится на левой панели окна; если вы не видите ее, прокрутите панель вверх. Откроется окно «Этот компьютер».
- Если вы закрыли окно Проводника, нажмите «Пуск»
, введите этот компьютер и нажмите «Этот компьютер» в верхней части меню «Пуск».
- Если вы закрыли окно Проводника, нажмите «Пуск»
-
2
Щелкните по Компьютер. Эта вкладка находится в верхней левой части окна «Этот компьютер».
-
3
Нажмите Параметры. Эту красную галочку на белом фоне вы найдете в верхней левой части окна. Откроется окно «Параметры».
-
4
Щелкните по Дополнительные параметры системы. Эта ссылка находится в верхней левой части окна «Параметры». Откроется новое окно.
-
5
Нажмите Переменные среды. Вы найдете эту кнопку в нижней части окна. Откроется еще одно окно.
- Если вы не видите эту опцию, сначала нажмите на вкладку «Дополнительно» в верхней части окна.
-
6
Дважды щелкните по переменной Path. Вы найдете ее в разделе «Переменные среды пользователя для [имя]» в верхней части окна. Откроется окно переменной «Path».
- Если вы не видите переменную «Path», прокрутить указанный раздел вверх или вниз.
- Если вы хотите активировать FFmpeg для всех пользователей на этом компьютере, дважды щелкните по переменной «Path» в разделе «Системные переменные» в нижней части окна.
-
7
Нажмите Создать. Эта кнопка находится в правой части окна. В окне будет создано новое текстовое поле.
-
8
Введите путь к папке «FFmpeg». Введите C:FFmpegbin в текстовом поле, а затем нажмите «OK».[1]
-
9
Щелкните по OK в обоих открытых окнах. Теперь программа FFmpeg активирована. Если хотите, проверьте, правильно ли установлена программа FFmpeg.
Реклама
-
1
Откройте меню «Пуск»
. Нажмите на логотип Windows в нижнем левом углу экрана.
-
2
Найдите командную строку. Введите command prompt в меню «Пуск». Значок командной строки отобразится в верхней части меню «Пуск».
-
3
Откройте командную строку в качестве администратора. Щелкните правой кнопкой мыши по «Командная строка»
в верхней части меню «Пуск», нажмите «Запуск от имени администратора», а затем нажмите «Да», когда появится запрос.
-
4
Узнайте версию FFmpeg. Введите ffmpeg -version и нажмите ↵ Enter. На экране отобразится информация о FFmpeg.
- Если команда «ffmpeg» не распознается как внутренняя или внешняя команда, открывается исполняемая программа или командный файл, возможно, вы ошиблись, когда вводили путь к папке с программой.
Реклама
Советы
- Те, кто умеет пользоваться командной строкой, с помощью FFmpeg быстро преобразуют проприетарные видеоформаты (например, .WMA) в обычные видеофайлы (например, .MP4).
- В Windows 10 есть и командная строка, и программа PowerShell. Обе программы схожи, но для FFmpeg лучше пользоваться командной строкой.
Реклама
Предупреждения
- Программа FFmpeg работает исключительно из-под командной строки (то есть команды вводятся в командной строке). Это довольно сложно для неопытных пользователей.
- Чтобы установить FFmpeg, войдите в систему как администратор.
Реклама
Об этой статье
Эту страницу просматривали 126 823 раза.
Была ли эта статья полезной?
Информация для тех, кто хотел бы научиться на своём компьютере/ноутбуке редактировать записи вебинаров через специальную программу!
Программа FFMPEG предназначена для конвертирования видео и аудио файлов через специальные команды в командной строке Вашего компьютера/ноутбука, благодаря которым возможно самостоятельно:
1. Изменить формат и качество записи;
2. Изменить разрешение и битрейт для видео и аудио;
3. Нарезать фрагменты записи на отдельные записи;
4. Замедлить и ускорить воспроизведение видео и аудио;
5. Склеить видео и аудио в единый файл;
6. Удалить аудио из видео, а также извлечь аудио из видео.
(Более подробную информацию см. в шаге №5).
С ЧЕГО НАЧАТЬ?
Шаг №1. Скачиваем программу на Windows
Для начала Вам необходимо перейти на официальный сайт разработчиков и скачать файл программы. Ссылка на скачивание программы: https://yadi.sk/d/_ybZxA8VN2pBmQ
Шаг №2. Установка программы
Этот шаг требует особого внимания, так как работа с FFMPEG происходит через командную строку, поэтому разберём по пунктам алгоритм установки FFMPEG:
1. Вы скачали архивный файл и Вам необходимо его открыть;
2. Открываем скачанный архивный файл и находим папку «bin», внутри которой располагается файл-приложение «ffmpeg.exe»;
Примечание! Если у Вас нет архиватора для открытия файла, то можно скачать архиватор WinRar на официальном сайте разработчиков.
Ссылка на скачивание: https://winrar-pro-download.com
3. Извлекаем файл «ffmpeg.exe» в заранее созданную папку «ffmpeg» на корневом диске (как правило, это диск «C»);
4. Далее заходим в проводник (иконка «лупа») и находим «Мой компьютер». Нажимаем на него правой кнопкой мыши и выбираем «свойства», после чего появится следующее окно:
5. Нажимаем на «Дополнительные параметры системы» и заходим в «переменные среды»;
6. Находим в окошке «системные примененные» пункт «Path», нажимаем «изменить»;
7. В появившемся окне нажимаем на кнопку «создать» и указываем путь к файлу ffmpeg. Для этого переходим в папку с ffmpeg и кликаем на строчку, выделенную красным (см. на картинке), после чего нажмите сочетание клавиш Ctrl+C;
8. После того, как нажали клавишу «Создать» (1), вставляем скопированное в строку (2) и нажимаем на «Ок» (3).
Шаг №3. Запускаем программу
1) Если вы используете ОС Windows10, то вам достаточно нажать на значок «поиск»(лупа) и ввести английскими буквами «cmd»:
(Прим. Если же Вы используете более ранние версии Windows (7,8), то Вам нужно зайти в меню «пуск» и строка «поиск» будет в самом низу).
2) Далее, заходим в командную строку и проверяем – работает ли программа. Для этого вводим: ffmpeg, после чего нажимаем кнопку Enter. Если Вы всё сделали правильно, у Вас будет примерно следующий отклик в командной строке:
(Прим. Если же у Вас появляются строки красного цвета, то вероятно – Вы сделали что-то не так. Попробуйте повторить алгоритм по новой).
Шаг №4. Используемые файлы
Для начала работы с видео-файлом необходимо, чтобы файл находился в директории доступных дисков. Например: имеется видео-файл «Testovii File.mp4». Я расположил его прямо на диск D.
Таким же образом разместите остальные файлы, с которыми вы собираетесь работать в ffmpeg.
Либо, если не хотите перетаскивать файл, вам нужно будет скопировать путь к файлу(об этом позже).
(Прим. Рекомендуется использовать английские буквы в названии файлов, с которыми собираетесь работать)
Теперь с файлами можно работать.
Запускаем командную строку. Как правило, по умолчанию в командной строке указан путь к корневой папке, например:
Чтобы начать обрабатывать файл, необходимо указать тот диск, где расположен нужный файл. В нашем случае, это Диск D. Для смены диска, в строке прописываем команду: D:
После чего нажимаем Enter и видим, что теперь у нас отображается Диск D:
Теперь мы можем начать работать с файлами. Любая команда начинается со слова ffmpeg в строке:
Далее будет представлен ряд простых команд, где input.mp4 – название исходного видео-файла; input.mp3 – название исходного аудио-файла; output.format – название полученного файла; а ключ «–i» -это то, что необходимо прописывать перед обрабатываемым файлом (input.mp4/input.mp3).
Шаг №5. Основные команды
1) Для того, чтобы перевести видео в другой видеоформат:
ffmpeg –i Zinput.avi output.mp4
(Прим. – Z — путь к файлу input.avi, пример: выбираем нужный файл в папке (1), кликаем на него, затем кликаем на строку с его расположение (2), и копируем правой кнопкой мышки; также следует помнить, что при попытке форматирования из более легкого файла(Mp4) в более тяжелый(avi) – полученный файл будет в более плохом качестве)
2) Для того, чтобы перевести видео в аудио:
ffmpeg –i Zinput.mp4 output.mp3
(Прим. – Если появляется красная строка при нажатии ENTER, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)
3) Для того, чтобы вырезать фрагмент из видео:
Способ : 1 – обрезать концовку.
ffmpeg -i input.mp4 –t 00:00:00 output.mp4
(Прим. -t 00:00:00 – указывается время продолжительности видео от начала)
Способ : 2 – вырезать кусок из любой точки.
ffmpeg -ss 00:00:00 -i input.mp4 -t 00:00:00 output.mp4
(Прим. –ss 00:00:00 – указывается время начала желаемого куска; -t 00:00:00 – указывается время продолжительности желаемого куска;
Если появляется красная строка, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)
P.S Применимо как к видео, так и к аудио файлам!
4) Команда для склеивания пустого видео файла и аудио файла:
ffmpeg -i input.mp3 -i input.mp4 output.mp4
(Прим. Если вы используете разные по длительности файлы, то у них вседа будет совпадать начало, а длительность конечного файла будет равна самому длинному исходному файлу, пример:
Аудиофайл.mp3 – длительность 00:05:00 + Видеофайл.mp4 – длительность 00:03:00 = финальный файл.mp4 – длительность 00:05:00)
5) Команда для удаления аудио из видео:
ffmpeg -i input.avi -vcodec copy –an output.avi
6) Команда для ускорения/замедления видео:
ffmpeg –i input.avi -vf setpts=X*PTS output.avi
(Прим. X больше 1 – замедление; X меньше 1 — ускорение)
7) Команда для ускорения/замедления аудио:
Ffmpeg –I input.mp3 -filter:a «atempo=X» –vn output.mp3
(Прим. X значение больше нуля – ускорение; X значение меньше нуля (0.5;0.8) – замедление)
Команда для ускорения/замедления файла с аудио и видео:
ffmpeg -i input.mp4 -filter_complex «[0:v]setpts=X*PTS[v];[0:a]atempo=Y[a]» -map «[v]» -map «[a]» output.mp4
(Прим. X больше 1 – замедление; X меньше 1 – ускорение;
Y значение больше нуля – ускорение; Y значение меньше нуля (0.5;0.8) – замедление)
9) Для того, чтобы изменить параметр «качество»:
Для AVI:
ffmpeg -i input.avi -q X output.avi
(Прим. X от 23 до 50, где 50 – минимальное качество; данная опция помогает уменьшить размер файла)
Для Mp4:
ffmpeg -i input.mp4 -crf X output.mp4
(см. Прим. Выше)
10) Для того, чтобы изменить Битрейт:
Для аудио: ffmpeg -i input.mp4 -b:a 128k output.mp4
(Прим. Где 128k– цифра, обозначающая размер битрейта)
Для видео: ffmpeg -i input.mp4″ -b:v 1000k output.mp4
11) Для того, чтобы изменить разрешение видео:
ffmpeg -i input.mp4 -s X output.mp4
(Прим. X – разрешение, например: «-s 800×600»)
Для общего сжатия видео:
13) ffmpeg -i input.mp4 -codec:a copy -vcodec libx264 -preset fast -crf 32 output.mp4
В заключении:
В этой статье были рассмотрены:
— Способ установки ffmpeg для Windows
— Была представлена выжимка из самых распространённых команд, которая позволит использовать программу «ffmpeg» для решения, пусть не самых сложных, но всё-же возникающих задач.
Команды в программе ffmpeg не ограничиваются тем списком, что был представлен в данной статье. Как было сказано выше, в интернете существует более 200 страниц со всевозможными командами, призванными проводить манипуляции с видеоаудио-файлами, которыми, как правило, пользуются продвинутые пользователи.
Мы же предоставили краткий мануал по основным возможностям, и надеемся, что этот материал окажется полезным для наших пользователей!
Последнее обновление Ноя 12, 2021
Чтобы исправить различные проблемы с ПК, мы рекомендуем DriverFix: это программное обеспечение будет поддерживать ваши драйверы в рабочем состоянии, тем самым защищая вас от распространенных компьютерных ошибок и сбоев оборудования. Проверьте все свои драйверы сейчас за 3 простых шага:
- Загрузите DriverFix (проверенный файл загрузки).
- Нажмите «Начать сканирование», чтобы найти все проблемные драйверы.
- Нажмите «Обновить драйверы», чтобы получить новые версии и избежать сбоев в работе системы.
- DriverFix в этом месяце скачали 502 786 читателей.
FFmpeg – популярный инструмент с открытым исходным кодом, который используется для выполнения нескольких операций с аудио и видео файлами. Эти операции включают мультиплексирование, демультиплексирование, кодирование, декодирование, фильтрацию, потоковую передачу и т.д.
Он также используется для масштабирования и поворота видео, извлечения информации о файлах, хранящихся на вашем ПК с Windows.
Однако FFmpeg не имеет графического интерфейса, поэтому пользователи часто сталкиваются с проблемами при установке FFmpeg в своих системах Windows 10.
Следуйте этому руководству по установке, если вам интересно, как установить FFmpeg в Windows 10.
Как установить FFmpeg в Windows 10?
1 Загрузите установочные файлы FFmpeg
- Прежде всего, посетите официальный сайт FFmpeg, чтобы загрузить установочные файлы.
- Найдите версию FFmpeg, которая соответствует требованиям вашего процессора и операционной системы, и щелкните ссылку для загрузки.
- Дождитесь завершения процесса загрузки и распакуйте папку загрузки.
- Теперь щелкните новую папку правой кнопкой мыши, нажмите «Переименовать» и введите FFmpeg, чтобы изменить ее имя по умолчанию.
- Щелкните правой кнопкой мыши папку FFmpeg и нажмите Копировать. Перейдите на диск C и вставьте туда папку FFmpeg. Это позволит вам запускать команды FFmpeg в командной строке.
2 Используйте переменные среды, чтобы добавить FFmpeg в путь к Windows 10
- Чтобы включить FFmpeg в командной строке, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Свойства».
- Перейдите в левую верхнюю часть экрана и нажмите «Дополнительные параметры системы».
- Щелкните вкладку «Дополнительно» и выберите параметр «Переменные среды» в нижней части окна.
- В открывшемся окне «Переменные среды» дважды щелкните переменную «Путь» в разделе «Пользовательские переменные для lamba », чтобы отредактировать ее.
- Нажмите кнопку «Новый», вставьте C: FFmpegbin и нажмите «ОК», чтобы сохранить новый путь.
- Файлы FFmpeg теперь добавляются в системный путь на вашем ПК с Windows 10. Наконец, закройте окно переменных среды, чтобы использовать FFmpeg.
3 Проверьте путь FFmpeg в командной строке
- Теперь вам нужно проверить, запущен ли процесс установки, нажмите клавиши Windows + X и нажмите Командная строка (администратор), чтобы запустить командную строку в режиме администратора.
- Когда на экране откроется командная строка, введите ffmpeg -version и нажмите клавишу Enter. Если FFmpeg установлен в вашей системе Windows 10, вы увидите такие подробности, как конфигурация или номер версии.
- Однако, если установка не удалась, вы увидите следующее сообщение:
‘ffmpeg’ не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
В этом случае проверьте, правильно ли вы выполнили все шаги по добавлению папки FFmpeg в системный путь.
Мы надеемся, что эти инструкции помогли вам установить FFmpeg в вашей системе Windows 10. Если у вас есть какие-либо вопросы, дайте нам знать в разделе комментариев ниже.
Источник записи: windowsreport.com
FFmpeg — это популярное программное обеспечение для обработки, конвертации или обработки видео и аудио файлов. Программа используется для бесконечных вещей, таких как вращение видео, масштабирование видео, извлечение информации о видео и многое другое. Это программа с открытым исходным кодом, которая просто великолепна для масштабирования видео, транскодирования форматов, декодирования, кодирования, демультиплексирования, потоковой передачи, фильтрации, преобразования аудиофайлов, записи живого аудио/видео, обработки видео и других мультимедийных файлов. Этот мультимедийный каркас предназначен для обработки мультимедийных файлов на основе командной строки, и вы можете вносить базовые изменения с помощью однострочных команд.
Хотя программа проста в использовании, доступ к FFmpeg для выполнения команд немного сбивает с толку. Установка и использование FFmpeg может занять много времени, так как вам нужно вручную открыть папку FFmpeg в командной строке или в терминале Power Shell для доступа к исполнительному файлу FFmpeg для выполнения соответствующих команд для базового редактирования. Если вы застряли с установкой и использованием FFmpeg на вашем компьютере, вы находитесь в правильном месте.
Чтобы упростить задачу, все, что вам нужно сделать, это установить FFmpeg и добавить программу FFmpeg в путь Windows 10 с помощью переменных среды. Таким образом, вы можете получить прямой доступ к FFmpeg из командной строки или Power Shell в любом каталоге. В этой статье мы расскажем, как установить FFmpeg в Windows 10, чтобы получить доступ к FFmpeg напрямую из командной строки или PowerShell.
Получить последнюю сборку FFmpeg можно с официального сайта. Вы можете скачать 32-битную или 64-битную версию, подходящую для вашей системы. Нажмите кнопку Download Build , чтобы начать загрузку.
Программа не работает напрямую в Windows 10. Вам необходимо добавить программу в системный путь, используя переменные среды.
Перейдите в загруженную папку, где находится файл FFmpeg.zip. Щелкните правой кнопкой мыши папку Zip и в раскрывающемся меню выберите извлечь.
Выберите папку или диск, куда вы хотите извлечь.
Далее переименуйте извлеченную папку. Чтобы переименовать папку, щелкните правой кнопкой мыши папку и выберите «Переименовать» в раскрывающемся меню с заголовком FFmpeg-20180424-d9706f7-win64-static в FFmpeg.
Скопируйте папку FFmpeg и перейдите на диск C. Вставьте папку в корень диска C.
После этого следующим шагом будет включение FFmpeg с помощью командной строки.
Чтобы использовать FFmpeg в командной строке, сначала необходимо добавить папку bin, содержащую исполняемый файл FFmpeg, в path Windows.
В меню поиска Windows введите Изменить системные переменные среды и нажмите Enter. Откроется окно свойств системы.
Перейдите к кнопке «Дополнительно» и нажмите «Переменные среды» в нижней части окна.
В окне Переменные среды выберите переменную Path и нажмите «Изменить», чтобы изменить переменную Path.
Нажмите Новый и введите путь к папке FFmpeg «C:ffmpegbin» и нажмите OK.
Введите каталог пути в соответствии с диском или папкой, в которую вы поместили папку FFmpeg.
После этого путь добавляется к переменным окружения. Нажмите кнопку ОК, чтобы применить изменения.
Проверьте доступность FFmpeg в командной строке
Запустите командную строку, введите команду ffmpeg
в терминале командной строки и нажмите Enter.
Если FFmpeg правильно добавлен в путь к Windows, в командной строке отобразятся сведения о FFmpeg, такие как номер версии, конфигурация и т.д.
Если вы не добились успеха, это означает, что ваша командная строка не распознала команду. Перепроверьте, правильно ли вы добавили папку FFmpeg в системный путь.
Introduction
FFmpeg is a command-line audio and video converter available for Linux, macOS, and Windows. This open-source tool helps users manipulate multimedia content and offers free access to several audio and video libraries.
Even though FFmpeg doesn’t have a clickable GUI, the installation process is straightforward.
In this guide, you will learn how to install FFmpeg on Windows in four simple steps.
Prerequisites
- A system running Windows (This tutorial uses Windows 10).
- A file archiver (This guide uses 7-Zip).
- Command Prompt or Windows PowerShell access.
- Administrator privileges.
How To Install FFmpeg on Windows
Installing FFmpeg on Windows requires adding the utility to the Windows PATH. Additionally, users can manually navigate to the folder containing the executable and run the program. However, the process is time-consuming and impractical.
A straightforward way to work with FFmpeg is to add it to PATH by editing Windows environment variables. Therefore, Windows knows where to look for the executable. Users can run FFmpeg directly from the command line without typing in the full path to the app’s folder.
Step 1: Download FFmpeg for Windows
Visit the FFmpeg download page. The More downloading options section has FFmpeg packages and executable files for Linux, Windows, and Mac. To get the Windows version:
1. Hover over the Windows logo and click the Windows builds from gyan.dev link. A new page opens.
2. In the git master builds section, look for the latest version of the FFmpeg build. Click the ffmpeg-git-full-7z link to download the full build since that version has the most up-to-date libraries.
3. Choose the download location and save the file if the download does not start automatically.
Note: This guide uses the Windows build from gyan.dev. Other builds are available for download, like the one by BtbN. No official documentation confirms any significant differences between different builds.
Step 2: Extract the Downloaded Files
Once downloaded, extract the contents:
1. Locate the downloaded file. The default location is the Downloads folder.
2. Right-click the file and hover over 7-Zip (or another file archiver of choice).
3. From the archiver submenu, choose Extract here. Wait for a few seconds for the extracting process to complete.
5. Rename the extracted folder to ffmpeg.
6. Move the folder to the root of the C drive or the folder of your choice.
Step 3: Add FFmpeg to PATH
Set Windows environment variables to add FFmpeg to the PATH. Follow these steps:
1. Type system variables into the search bar and click the Edit the system environment variables option.
2. Under the User variables section, select Path and click the Edit button.
3. Choose New from the side menu.
4. Add C:ffmpegbin to the empty field and confirm changes with OK.
The change in the Path variable line confirms the FFmpeg is added to PATH.
Note: If you stored FFmpeg in a folder other than the C drive, use that path accordingly.
Step 4: Verify FFmpeg PATH
To verify the FFmpeg is correctly added to the Windows PATH, open the Command Prompt or PowerShell and run:
ffmpeg
The output confirms the installation:
Conclusion
This article provided an easy step-by-step guide on installing FFmpeg on Windows.
For more tutorials refer to our article and learn how to install FFmpeg on MacOS.
Next, learn how to change or reset the administrator password on the Windows server.
FFmpeg это популярное программное обеспечение для обработки, преобразования или манипулирования видео и аудио файлами. Программа используется для бесконечных вещей, таких как вращение видео, масштабирование видео, извлечение информации о видео и многое другое. Это программа с открытым исходным кодом, которая просто великолепна для масштабирования видео, транскодирования форматов, декодирования, кодирования, демультиплексирования, потоковой передачи, фильтрации, преобразования аудиофайлов, записи живого аудио / видео, обработки видео и других мультимедийных файлов. Этот мультимедийный каркас предназначен для обработки мультимедийных файлов на основе командной строки, и вы можете вносить базовые изменения с помощью однострочных команд.
Хотя программа проста в использовании, доступ к FFmpeg для выполнения команд немного сбивает с толку. Установка и использование FFmpeg может занять много времени, так как вам нужно вручную открыть папку FFmpeg в командной строке или в терминале Power Shell для доступа к исполнительному файлу FFmpeg для выполнения соответствующих команд для базового редактирования. Если вы застряли с установкой и использованием FFmpeg на вашем компьютере, вы находитесь в правильном месте.
Для простоты все, что вам нужно сделать, это установить FFmpeg и добавить программу FFmpeg в Windows 10 путь с использованием переменных среды. Таким образом, вы можете получить прямой доступ к FFmpeg из командной строки или Power Shell в любом каталоге. В этой статье мы расскажем, как установить FFmpeg на Windows 10 для доступа к FFmpeg непосредственно из командной строки или PowerShell
Получить последнюю сборку FFmpeg с официального сайта здесь. Вы можете скачать версию 32-bit или 64-bit, подходящую для вашей системы. Нажмите на Скачать сборку чтобы начать загрузку.
Программа не работает напрямую Windows 10, Вам необходимо добавить программу в системный путь, используя переменные среды.
Перейдите в загруженную папку, где находится файл FFmpeg zip. Щелкните правой кнопкой мыши на папке Zip и выберите извлечение в раскрывающемся меню.
Выберите папку или диск, куда вы хотите извлечь.
Далее переименуйте извлеченную папку. Чтобы переименовать папку, щелкните правой кнопкой мыши папку и выберите «Переименовать» в раскрывающемся меню с заголовком FFmpeg-20180424-d9706f7-win64-static to FFmpeg.
Скопируйте папку FFmpeg и перейдите на диск C. Вставьте папку в корень диска C.
После этого следующим шагом будет включение FFmpeg с помощью командной строки.
Добавить FFmpeg в Windows путь с использованием переменных среды
Чтобы использовать FFmpeg в командной строке, вам необходимо сначала добавить папку bin, содержащую исполняемый файл FFmpeg, в ваш Windows путь
В разделе Windows меню поиска, введите Изменить системные переменные среды и нажмите Enter. Откроется окно свойств системы.
Перейдите в Дополнительно кнопку и нажмите Переменные среды в нижней части окна.
В окне Переменные среды выберите переменную Path и нажмите Edit, чтобы изменить переменную Path.
Нажмите Новинки и введите путь к папке FFmpeg «C: ffmpegbin» и нажмите ОК.
Введите каталог пути в соответствии с диском или папкой, в которую вы поместили папку FFmpeg.
После этого путь добавляется к переменным окружения. Нажмите OK для внесения изменений.
Проверьте путь FFmpeg в командной строке
Презентация Командная строка и введите команду FFmpeg в терминале командной строки и нажмите Enter.
Если FFmpeg правильно добавлен в Windows Путь, в командной строке отобразятся сведения о FFmpeg, такие как номер версии, конфигурация и т. Д.
Если вы не добились успеха, это означает, что ваша командная строка не распознала команды. Перекрестная проверка, чтобы увидеть, правильно ли вы добавили папку FFmpeg в системный путь.
Это все!
Оригинал статьи
В 2000 году программист с ником Gerard Lantau выложил для всеобщего использования исходники проекта FFmpeg. За годы концепция осталась прежней:
- Деление на программы FFmpeg для кодирования видео и FFserver для организации потокового вещания.
- Максимально быстрое кодирование звука и видео.
В то время 500 мегагерц в компьютере считались нормой, требовалась максимальная оптимизация, поэтому в FFmpeg своя реализация видеокодеков, оптимизированная для скорости. Это нужно и сейчас, особенно на серверах видеохостингов, где идёт постоянная борьба за снижение энергопотребления, чтобы процессоры не грелись.
FFmpeg прочно стоит на ногах — почти каждый день вносятся правки в исходный код. Добавляются новые компоненты. Например, плеер FFplay и утилита для получения информации FFprobe.
Где скачать FFmpeg и FFserver
FFmpeg разрабатывается под Linux. Если на сайте видите окошко с трансляцией видео — 9 шансов из 10, что оно работает благодаря FFmpeg и FFserver.
Версия FFmpeg (и FFserver) для Windows тоже существует, но часть функциональности будет недоступна. Впрочем, это не мешает работать видеоконвертеру MediaCoder (www.mediacoderhq.com) и плееру PotPlayer.
Версии для Linux найдете на ffmpeg.org, я же расскажу про FFmpeg для Windows. Она делится на две части: FFmpeg и FFserver.
FFmpeg для Windows вы найдете здесь: https://www.gyan.dev/ffmpeg/builds/
На выбор есть 32- и 64-битные версии. Рекомендую 64-битную (ffmpeg-release-full.7z).
Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы — программа закрывалась сама по себе. Возможно, потому что FFserver для Windows — 32-битный, есть несовместимость.
FFserver для Windows тоже существует, хотя об этом мало кто знает. Программу трудно скомпилировать, потому что используется много специфичного для Linux кода. Разработчики системы видеонаблюдения Xeoma оказались молодцы, потому что выложили свой FFserver для Windows на своем сайте: http://felenasoft.com/xeoma/ru/ffserver/ Не забудьте скачать cygwin1.dll оттуда же. Другой вариант запустить данную софтину — через WSL в Windows 10/11, тогда можно пользоваться самой актуальной версией для Linux.
Про FFserver в Интернете много инструкций. Например, эта: https://trac.ffmpeg.org/wiki/StreamingGuide.Они написаны на примере Linux-версии, но это не существенно, за исключением пары моментов:
- Файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.
- Адреса устройств в Windows другие, придётся самостоятельно с этим разбираться.
Если что, я не специалист в стриминге и ФФсервер упоминаю только потому, что это часть ФФмпега.
[ig_notice style=»notice»]Обновление: ffserver устарел. Используйте альтернативы. Их список вы найдете здесь: github.com/krzemienski/awesome-video#streaming-server-and-storage[/ig_notice]
Как установить FFmpeg
1. Скачайте по ссылке выше Static-версию. Это архив, для распаковки потребуется программа 7-zip (7-zip.org).
2. Создайте на диске C: папку ffmpeg и распакуйте туда архив.
Для установки ffmpeg этого достаточно. Советую выполнить пункт 4 для удобства в будущем.
3. Если нужно настроить трансляцию, в папку c:ffmpegbin распакуйте ffserver и положите файлик cygwin1.dll.
4. Чтобы в командах не писать каждый раз полный путь к программе, можно добавить его в переменную PATH: Панель управления — Система — Дополнительные параметры системы — вкладка Дополнительно — Переменные среды — в конце строки переменной Path добавьте «;c:ffmpegbin» без кавычек. Если там было пусто (что не совсем нормально), то «c:ffmpegbin«, т.е. без точки с запятой в начале.
Потом перезагрузите компьютер, чтобы изменения вступили в силу.
Вы можете пропустить четвертый шаг, но потом вместо команд ffmpeg и ffserver придется писать полный путь «c:ffmpegbinffmpeg.exe» и «c:ffmpegbinffserver.exe».
Как пользоваться FFmpeg
На главной странице FFmpeg красуется надпись:
Человек, не знакомый с командной строкой, будет в ступоре. Куда вводить команду?
FFmpeg хорош для тонких задач, но, если не хотите заморачиваться, воспользуйтесь бесплатной XMedia Recode или платной Movavi Video Converter. .
В папке ffmpegdoc собрано много примеров по использованию компонентов, все команды можно посмотреть там.
Примеры
Имена файлов у вас будут свои. Если есть пробелы или на русском — обрамляйте имена в кавычки.
Отобразить информацию о файле:
ffmpeg -i video.mp4
или ffprobe video.mp4
Пережать видео avi в mp4:
ffmpeg -i video.avi video.mp4
Пережать mov в flv и изменить разрешение:
ffmpeg -i video.mov -s 640x360 -b 1700k -vcodec flv -ar 44100 video.flv
Пережать видео в webm среднего качества, звук формата OGG:
ffmpeg -i video.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis video.webm
Пережать видео кодеком MPEG4, звук — mp3, контейнер — avi:
ffmpeg -i video.mp4 -vcodec mpeg4 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 100 -qscale 3 -acodec libmp3lame -ac 2 -ab 128k -y video.avi
Сохранить звуковую дорожку из видео в отдельный файл:
ffmpeg -i video.mp4 -vn -ar 44100 -ac 2 -ab 192 -f mp3 zvyk.mp3
Добавить звуковую дорожку к видео («-acodec libmp3lame» можно выкинуть, тогда ffmpeg сам решит, как кодировать звук):
ffmpeg -i zvyk.mp3 -i video.mp4 -acodec libmp3lame video_final.mp4
Добавить звуковую дорожку без перекодирования видео (сохраняет качество, работает быстро):
ffmpeg -i zvyk.mp3 -i video.mp4 -acodec libmp3lame -vcodec copy video_final.mp4
Пережать видео в формат
Сохранить кадр на второй секунде как отдельную картинку:
ffmpeg -ss 00:00:02 -i video.mp4 -f image2 -vframes 1 thumb.jpg
Убрать дрожание камеры и сохранить в out.mp4:
ffmpeg -i video.mp4 -vf deshake out.mp4
Структура
Как видно из примеров, команды ffmpeg имеют структуру:
ffmpeg -опции -еще_опции -можно_опции_с_параметрами_например 1 -i "имя файла.расширение" -опции_кодирования -еще опции +опции_кодека "имя_результирующего_файла.расширение"
Если не указывать опции кодирования, для результирующего файла 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 время
Указывает, с какого времени нужно кодировать видео/аудио. Формат в виде «чч:мм:сс». Подробнее: https://trac.ffmpeg.org/wiki/Seeking
-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
Цвет границы в шестнадцатеричном формате (#000000 — черный, #FF0000 — красный и т.д.).
-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.
С помощью команды -map можно указать, что к чему будет подстраиваться. Подробности: https://trac.ffmpeg.org/wiki/Map
-async кадры_в_секунду
Выбор метода синхронизации звука. Чтобы звук и видео совпадали по времени, аудиодорожка может растягиваться и сжиматься. Значение 1 скорректирует звуковую дорожку только в самом начале по принципу «дальше будь что будет».
-copyts
Применяется для принудительного копирования всех временных меток из исходного файла. Полезно в случае, если начало видео — не 00:00, а что-то другое и это нужно сохранить.
-shortest
Когда самый короткий входящий файл закончился, прекращение кодирования.
Еще команд?
Команды для FFmpeg смотрите здесь:
http://help.ubuntu.ru/wiki/ffmpeg (на русском).
https://ffmpeg.org/ffmpeg.html (официальная документация).
Для кодирования кодеком x264 гляньте это:
http://wiki.rosalab.ru/ru/index.php/FFmpeg (на русском, есть примеры).
Почему команд так много?
Они нужны для полного контроля процесса обработки файлов с видео и звуком.
Большинство пользователей конвертируют видео, не понимая, что важен не только кодек для сжатия, но и его параметры. Есть нюансы, которые непросто осознать начинающим пользователям. Например, файл с расширением «mp4» не обязательно содержит в себе видео с кодеком MPEG4.
Если есть какие-то вопросы по FFmpeg — спрашивайте в комментариях. Помогу, чем смогу.
FFmpeg – продвинутый конвертер видео и аудио файлов. У него нет графического интерфейса, управляется командами из консоли, зато функционал программы и качество итогового материала превосходят другие конвертеры.
Базовые возможности FFmpeg:
- конвертация файлов (со сжатием или без потерь качества);
- изменение разрешения;
- кадрирование;
- обрезка и склейка файлов;
- замена, добавление, извлечение аудиодорожек и субтитров;
- наложение водяного знака;
- кодирование или стриминг потокового видео.
FFmpeg выручит и там, где не справятся другие программы. Например, при конвертации видео из устаревшего DV в современный HD формат, FFmpeg преобразует чересстрочное (25i) видео в прогрессивное (50p), повысит частоту кадров, увеличит разрешение с 720×576 до 1920×1080 и при этом сохранит оригинальное качество картинки.
Несмотря на отсутствие графического интерфейса, FFmpeg прост в использовании и будет полезен как профессионалам работающих с видео, так и любителям решившим обработать домашний видеоархив.
Подробности о FFmpeg читайте на Wikipedia или ffmpeg.org, а ниже рассмотрим как установить конвертер, основные команды и примеры использования.
FFmpeg распространяется в исходных кодах, но на официальном сайте есть ссылки на собранные бинарники для MaxOS и Windows.
Как установить FFmpeg в Windows
Скачайте сборку FFmpeg для Windows.
Разархивируйте содержимое скачанного архива, например в Program Files/ffmpeg (или в другую папку, например, где у вас хранятся портативные программы).
В PowerShell выполните следующую команду.
c:"program files"ffmpegbinffmpeg.exe -version
Для cmd немного модифицированная команда.
"C:Program Filesffmpegbinffmpeg.exe" -version
Если в консоли появилось сообщение о версии FFmpeg, значит программа работает.
Чтобы каждый раз не вводить длинный путь к программе C:Program Filesffmpegbinffmpeg.exe рекомендую добавить ее в системную переменную Path, для этого:
- перейдите в параметры Windows, в поиске введите Панель управления
- перейдите в Панель управления – Система и безопасность – Система;
- выберите пункт Дополнительные параметры системы;
- нажмите кнопку Переменные среды;
- в поле Системные переменные выберите значение Path и нажмите кнопку Изменить, чтобы добавить новое значение;
- укажите путь к папке с FFmpeg содержащую ffmpeg.exe;
- перезагрузите компьютер.
Теперь для того, чтобы вызвать FFmpeg используйте в консоли следующую команду.
ffmpeg
Как установить FFmpeg в MacOS
Самый простой способ установить FFmpeg на MacOS, это Homebrew.
brew install ffmpeg
Либо можно поставить FFmpeg вручную. Для этого, скачайте сборку FFmpeg для MacOS.
Перейдите в папку с загрузками, распакуйте скачанный архив, а затем переместите исполняемый файл ffmpeg в папку /usr/local/bin
sudo cp /путь/до/ffmpeg /usr/local/bin
Далее введите пароль и FFmpeg будет скопирован в директорию к остальным бинарникам.
Попробуйте выполнить следующую команду.
ffmpeg -version
Если в консоли появилось сообщение о версии FFmpeg, значит программа работает.
Как установить FFmpeg в Linux
Для Linux можно самостоятельно собрать FFmpeg из исходников, либо установить его, используя менеджер пакетов входящий в состав операционной системы.
Например, для Ubuntu это можно сделать через репозиторий mc3man ppa, поддерживаемый сообществом Ubuntu.
sudo apt-get install -y software-properties-common
add apt-repository ppa:mc3man/trusty-media
apt-get update
apt-get dist-upgrade
apt-get install ffmpeg
В Debian 9 FFmpeg доступен в официальном репозитории, поэтому для установки достаточно одной команды.
apt install ffmpeg
CentOS не предоставляет официальный репозиторий для FFmpeg, поэтому, как и в случае с Ubuntu, его можно установить с помощью стороннего репозитория.
yum install epel-release -y
yum update -y
В CentOS 7 и RHEL 7 используйте следующую команду:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
В CentOS/RHEL 6/5 команда отличается.
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
Далее установите FFmpeg.
yum install ffmpeg ffmpeg-devel -y
После установки попробуйте выполнить следующую команду.
ffmpeg -version
Если в консоли появилось сообщение о версии FFmpeg, значит программа работает.
FFmpeg: быстрый старт
После установки FFmpeg можно творить магию преобразования видео в консоли.
ffmpeg -i input.avi output.mp4
Указанная команда сконвертирует видео из файла input.avi в output.mp4. По умолчанию для файлов mov и mp4 используется кодек H.264. Размер кадра и fps будут взяты из исходного файла.
В примере выше параметры по умолчанию могут не обеспечить желаемые качество или результат. Поэтому параметры можно задавать явно. Однако не обязательно указывать все, в этом случае FFmpeg возьмет их из исходного файла (например частоту кадров) или значение используемое по умолчанию.
Ниже перечислены основные параметры FFmpeg:
- -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, 1920×1080), так и буквенные обозначения (например, qcif, qvga);
Обозначение размеров:
sqcif – 128 × 96
qqvga – 60 × 120
uxvga – 1600 × 1200
qcif – 176 × 144
qvga – 320 × 240
qxga – 2048 × 1536
cif – 352 × 288
vga – 640 × 480
sxga – 1280 × 1024
4cif – 704 × 576
svga – 800 × 600
qsxga – 2560 × 2048
16cif – 1408 × 1152
xvga – 1024 × 768
hsxga – 5120 × 4096
- -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 256K output.mp4
Данная команда перекодирует файл input.avi в output.mp4. В случае если в конечной папке будет содержаться файл output.mp4, он будет перезаписан (опция -y). В качестве кодека будет использован libx264 со среднем соотношением скорость/качество (-preset medium). Конечный битрейт 17000kbps, соотношение сторон картинки 16:9, частота 25 кадров в секунду. В качестве аудиокодека будет использован AAC с битрейтом 256kbps.
А так можно быстро перепаковать файл из одного контейнера в другой без пересжатия и потери качества.
ffmpeg -i input.mkv -vcodec copy -acodec copy output.mov
или аналогичная (сокращенная запись)
ffmpeg -i input.mkv -c copy output.mov
Это может оказаться полезным, когда устройство, на котором вы хотите воспроизвести видео, не поддерживает исходный формат. Или, например программа видеомонтажа не умеет работать с каким либо форматом и не хочет импортировать его в проект (например Adobe Premiere не работает с mkv, хотя внутри – все тот же H.264). С помощью перепаковки проблема решиться.
С полным списком команд FFmpeg можно ознакомиться на странице официальной документации, а ниже разберем полезные примеры их использования.
Полезные команды FFmpeg
Чтобы получить информацию о видеофайле, передайте FFmpeg название файла без дополнительных опций.
ffmpeg -i video.mp4
Каждый раз при запуске ffmpeg, программа показывает информацию о себе. С помощью опции -hide_banner лишнюю информацию можно скрыть.
ffmpeg -i video.mp4 -hide_banner
Чтобы получить информацию о ключах и параметрах FFmpeg.
ffmpeg -help
Исходные и конечные файлы могут быть любого формата, FFmpeg работает почти со всеми из существующих. Список поддерживаемых форматов можно получить следующей командой.
ffmpeg -formats
Список поддерживаемых кодеков.
ffmpeg -codecs
Обрезка видео
ffmpeg -i input.mp4 -ss 00:00:05 -t 00:05:15 -c copy output.mp4
Выше уже был пример с перепаковкой файла, когда исходный поток остается не тронутым. Добавив пару опций, можно без пересжатия и потери качества обрезать или нарезать видео на фрагменты. Опция -ss задаёт начало обрезки, а опция -t продолжительность фрагмента. Время задаётся в формате «часы:минуты:секунды».
Склейка видео
ffmpeg -i "concat:file1.avi|file2.avi" -vcodec copy -acodec copy output.avi
Для склейки используется оператор concat. После двоеточия ему передаются входные файлы, разделённые вертикальной чертой. Соединяемые файлы обязательно должны быть одного формата (видео и аудио), их параметры должны совпадать. Если это не так, то предварительно нужно произвести перекодирование файлов к единому формату.
Файлы mp4 нельзя объединить напрямую с помощью concat, но можно предварительно преобразовать, например, MPEG-TS без перекодирования видео и звука.
ffmpeg -i video1.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts video1.ts ffmpeg -i video2.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts video2.ts
А уже затем объединить в итоговый файл mp4.
ffmpeg -i "concat:video1.ts|video2.ts" -vcodec copy -acodec copy out.mp4
Важно учесть, что, если в одном из фрагментов звуковая дорожка короче по времени чем видеопоток, то звуковые дорожки остальных фрагментов сдвинутся и произойдёт рассинхронизация звука.
Когда входных файлов много, возможно окажется удобным не писать их все в консоль, а создать текстовый файл, как в примере ниже, который затем передать в FFmpeg.
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
Конвертация видео
При конвертации видео контейнер выходного файла определяется его расширением (avi, mkv, mp4, mov и тд). По умолчанию кодек для кодирования, определяется автоматически, в зависимости от выбранного контейнера (например H.264 для mp4 и mkv, MPEG-2 для mpg). Однако вы можете изменить его, исходя из своих требований или стандартов.
Для видео популярные и широко поддерживаемые видеокодеки H.264, H.265, VP9, а самые известные аудио кодеки — это AAC и MP3.
Кодек и его параметры задаются опциями -c:v для видео, и -c:a для аудио. Для некоторых форматов (MPEG и DV) вместо указанных, используется опция -target.
Пример конвертации h.264 в h.265 без изменения аудиодорожки.
ffmpeg -i input.mp4 -c:v libx265 -vtag hvc1 -c:a copy output.mp4
Пример использования libx265 для видео и aac для аудио.
ffmpeg -i input.avi -c:v libx265 -c:a aac -b:v 15000k -b:a 320k output.mp4
Пример использования libx264 для видео и aac для аудио.
ffmpeg -i input.avi -c:v libx264 -c:a aac -b:v 15000k -b:a 320k output.mp4
Пример использования vp9 для видео и mp3 для аудио.
ffmpeg -i input.avi -c:v vp9 -c:a libmp3lame -b:v 7000k -b:a 256k output.mp4
Вслед за кодеком указывается битрейт для видео и аудио потоков (опции -b:v и -b:a). Чем выше битрейт, тем выше качество, однако и больше размер файла.
Вместо битрейта можно указать опцию -crf (кофициент качества).
ffmpeg -i input.avi -c:v libx264 -preset medium -c:a aac -crf 15 output.mp4
Изменяется в пределах от 0 до 51. Чем ниже значение -crf, тем выше качество будет у выходного файла, однако, как и в случае с высоким битрейтом, увеличится его размер. При значениях 14-17 результат визуально почти неотличим от оригинала. Значение -crf равное 0, будет означать кодирование без потери качества.
У каждого кодека могут быть свои специфические параметры. Например, у H.264 и H.265 часто используется опция -preset влияющая на соотношение скорость кодирования/качество. Значения -preset могут быть: ultrafast, superfast, veryfast, faster, fast, medium (по умолчанию), slow, slower, veryslow. Для чернового варианта можно использовать «быстрые настройки» из категории fast, а для продакшена рекомендуется не ниже slow.
Для VP9 кодирование без потери качества задается опцией -lossless 1.
ffmpeg -i input.mp4 -c:v vp9 -lossless 1 output.webm
Подробнее с настройками кодеков H.264, H.265 и VP9 и можно ознакомится в документации.
Аппаратное ускорение
Владельцы видеокарт NVIDIA могут повысить скорость кодирования в H.264 за счет ресурсов GPU. Для этого попробуйте использовать кодек h264_nvenc.
ffmpeg -i input.mp4 -c:v h264_nvenc -c:a copy output.mp4
Сборка FFMpeg должна поддерживать кодек h264_nvenc и быть совместима с драйвером видеокарты.
Двухпроходное кодирование
При двухпроходном кодировании, на первом проходе кодек анализирует видео и пишет log-файл, а на втором сжимает видеозапись, используя полученную на первом проходе информацию. На простые (статические) сцены выделяется минимальное количество битрейта, а на сложные (динамические) — максимальное. Такой подход дает оптимальное распределение битрейта и соответственно лучшее качество картинки в сравнении с однопроходным кодированием.
Чтобы выполнить первый проход используйте следующую команду (с опцией -pass 1).
ffmpeg -y -i input.avi -c:v libx264 -b:v 17000K -pass 1 -f mp4 /dev/null
На первом проходе файл не создается, поэтому вместо него указанно /dev/null (или NULL если работаете в Windows).
На втором проходе (-pass 2), пример команды будет иметь следующий вид.
ffmpeg -y -i input.avi -c:v libx264 -b:v 17000K -pass 2 -f mp4 -c:a aac -b:a 256K output.mp4
Двухпроходное кодирование удобно выполнять, используя скрипт. Примеры скриптов приведены в конце заметки, в разделе Пакетная обработка FFmpeg.
Конвертация для MPEG-совместимых устройств
Для устройств, работающих с форматом MPEG, параметры выходного файла рекомендуется задавать опцией -target. Значения могут быть следующими: vcd, svcd, pal-vcd, ntsc-svcd и должны иметь префикс pal-, ntsc- или film-. В этом случае битрейт, кодек и размер кадра будут подобраны автоматически в соответствии с указанным стандартом. При необходимости можно указать соотношение сторон экрана (опция -aspect), как правило 16:9 или 4:3.
Пример для DVD плееров.
ffmpeg -i input.avi -target pal-dvd -ps 2000000000 -aspect 16:9 output.mpeg
Опция -ps 2000000000 задает здесь максимальный размер конечного файла.
Пример для VCD (pal и ntsc).
ffmpeg -i input.avi -target pal-vcd output.mpg ffmpeg -i input.avi -target ntsc-vcd output.mpg
Пример для SVCD (pal и ntsc).
ffmpeg -i input.avi -target pal-svcd output.mpg ffmpeg -i input.avi -target ntsc-svcd output.mpg
Конвертация AVI в DV
Как и в случае с форматом MPEG, параметры для DV файла рекомендуется задавать опцией -target. Значения могут быть следующими: dv, dv50 и должны иметь префикс pal-, ntsc- или film-. В этом случае битрейт, кодек и размер кадра будут подобраны автоматически в соответствии со стандартом.
ffmpeg -i input.avi -target pal-dv output.dv
Однако параметры можно указать и явно.
ffmpeg -i input.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 output.dv
Конвертация в MJPEG
Если при монтаже привыкли использовать формат MJPEG, то следующая команда преобразует в него исходное видео. Опция -qscale 1 означает, что видео будет закодировано с максимальным качеством.
ffmpeg -i input.mp4 -vcodec mjpeg -qscale 1 -an output.avi
Конвертация AVI в DivX
Пример для некогда популярного формата DivX (mpeg4v2). Может пригодиться владельцам старых устройств.
ffmpeg -i input.avi -s 320x240 -vcodec msmpeg4v2 output.avi
Конвертация видео в формат PSP
ffmpeg -i input.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac output.mp4
Изменение разрешения и кадрирование
Чтобы изменить разрешение конечного видео можно воспользоваться опцией -s.
ffmpeg -i input.mp4 -s 1280x720 output.mp4
Однако использование фильтра scale даст более качественный результат.
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
Преобразовать 4K в 1080:
ffmpeg -i input4kvid.mp4 -vf scale=1920:1080 -c:a copy output1080vid.mp4
Для кадрирования изображения предназначен фильтр 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).
Но мне привычна, другая запись.
ffmpeg -i input.mp4 -vf crop=in_w-2*2:in_h-2*4 output.mp4
В данном примере видео будет обрезано на 4 пикселя сверху и снизу, а так же на 2 пикселя слева и справа.
Фильтры можно комбинировать.
ffmpeg -i input.mp4 -vf crop=in_w-2*2:in_h-2*4,scale=1280:720 output.mp4
Соотношение сторон
Соотношение сторон устанавливаются опцией -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
Деинтерлейсинг
Для деинтерлейсинга в FFmpeg есть фильтр yadif (yet another deinterlacing filter).
ffmpeg -i input.mp4 -vf yadif output.mp4
По умолчанию, фильтр преобразует чересстрочное видео в прогрессивное, создавая полные кадры из соседних полукадров. Дает хороший результат, однако при таком преобразовании частота кадров снижается вдвое. Это заметно при воспроизведении видео, поэтому я предпочитаю способ, описанный ниже.
Преобразование 25i в 50p
Чтобы не терять кадры при деинтерлейсинге и чересстрочное видео осталось таким же плавным как в оригинале, рекомендуется способ, при котором частота кадров удваивается, а недостающие строки в каждом поле восстанавливаются при помощи интерполяции. Видео 25i фактически будет преобразовано в 50p (30i в 60p соответственно).
Для преобразования используется уже знакомый фильтр yadif.
ffmpeg -i input.avi -vf yadif=1:-1:0 -r 50 output.mp4
Параметры 1:-1:0 переданные yadif выполнят деинтерлейсинг по методу описанному выше.
Полностью команда для преобразования чересстрочного широкоэкранного DV видео 25i в прогрессивное HD 50p будет выглядеть следующим образом.
ffmpeg -i input.dv -c:v libx264 -preset slow -b:v 20000K -aspect 16:9 -vf yadif=1:-1:0,crop=in_w-2*0:in_h-2*4,scale=1920:1080 -r 50 -c:a aac -b:a 256K output.mp4
Небольшое пояснение: crop я здесь использую, потому что во многих моих исходниках на DV видео есть артефакт в виде полоски внизу, от которой я избавляюсь, обрезая видео на 4 пикселя снизу и сверху.
Потоки
Для обращения к потокам (видео, аудио, субтитрам) используется опция -map.
Количество и идентификаторы потоков можно увидеть, запросив информацию о файле.
ffmpeg -i video.mp4
Среди прочей информации о файле будет выдано примерно следующее:
Stream #0:0(und): Video … Stream #0:1(ger): Audio … Stream #0:2(eng): Audio … Stream #0:3(rus): Subtitle …
Потоки обозначаются двойным номером, через двоеточие — 0:0, 0:1, 1:0, 2:1 и т.д. Цифра до двоеточия — номер по порядку каждого выходного файла, нумерация ведется с нуля. А номер после двоеточия обозначает номер потока внутри файла.
В примере выше, 0 перед двоеточием означает, что это первый по порядку файл — video.mp4. А номера после двоеточия означают номера внутренних потоков этого файла. 0:0 — видео дорожка, 0:1 — первая аудиодорожка на немецком языке, 0:2 — вторая аудиодорожка на английском языке, 0:3 — дорожка с русскими субтитрами.
Конвертация аудиодорожек
Если аудиодорожка одна, изменить ее формат (битрейт/качество аудио по желанию), без перекодирования видео можно следующей командой:
ffmpeg -i input.mkv -c:v copy -c:a ac3 -b:a 320k output.mkv
Если аудиодорожек несколько, хочется оставить их без изменений, но сконвертировать только одну. Пример команды ниже, сконвертирует только третью аудиодорожку, первые две и видео останутся оригинальными.
ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v:0 copy -c:a:0 copy -c:a:1 copy -c:a:2 ac3 -b:a 320k output.mkv
Пояснение: в примере -map 0:0 это видеодорожка, к ней будет применена опция -c:v:0 copy, что означает, что видео не будет перекодироваться. -map 0:1 -map 0:2 -map 0:3 это 3 аудиодорожки. К первым двум будут применены -c:a:0 copy -c:a:1 copy, что означает, что дорожки останутся в оригинальном формате. А к 3 дорожке будет применена опция -c:a:2 ac3 -b:a 320k, что означает, что она будет сконвертирована в формат AC3 с битрейтом 320k.
Если какие-то дорожки не нужны, просто не указывайте к ним обращение. Например, чтобы убрать аужиодорожки с 4 по 6 из 7 доступных, воспользуйтесь примером ниже.
ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:7 -c:v:0 copy -c:a:0 ac3 -c:a:1 ac3 -b:a 320k -c:a:2 ac3 -b:a 320k -c:a:3 ac3 -b:a 320k -c:a:7 ac3 -b:a 320k output.mkv
Добавление, извлечение и удаление и аудио
Чтобы добавить звуковую дорожку в видеофайл используйте опцию -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). В новых версиях FFmpeg эти две опции можно не указывать, FFmpeg разберется сам.
Если звуковых дорожек несколько, чтобы сохранить отдельную звуковую дорожку из видеофайла (демультиплексация) воспользуйтесь опцией -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 -i video.avi -i audio1.mp3 -i audio2.mp3 -map 0 -map 1 -map 2 output.mkv
Изменение громкости
Для изменения громкости в 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 -i input.wav -ar 44100 -ac 2 -ab 192K -f mp3 output.mp3
Изменение скорости воспроизведения
Скорость воспроизведения видео и аудио изменяется раздельно.
Чтобы увеличить или уменьшить скорость видео, используется видеофильтр «setpts».
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
Команда выше удвоит скорость видео.
Не очевидно, но чтобы замедлить видео, нужно использовать множитель больше 1. Команда ниже замедлит исходное видео в 4 раза.
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4
Чтобы увеличить или уменьшить скорость аудио, используется аудиофильтр «atempo». Следующая команда удвоит скорость звука.
ffmpeg -i input.mp4 -af "atempo=2.0" -vn output.mp4
Допустимы значения от 0.5 до 2.0.
Чтобы одновременно удвоить скорость воспроизведения для видео и аудио придется скомбинировать оба фильтра.
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4
Добавление субтитров
Ниже приведен пример добавления субтитров для файла формата MKV.
ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s copy output.mkv
В примере, к исходному видеофайлу video.mp4 будут добавлены субтитры из файла subtitles.srt. Опция -c copy означает, что видео и аудио потоки из video.mp4 будут скопированы как есть (без пересжатия), опция -c:s copy, означает, что титры будут вставлены без изменений.
Если нужно вставить несколько дорожек субтитров команда может выглядеть так.
ffmpeg -i input.mp4 -i ru_subtitles.srt -i en_subtitles.srt -map 0:0 -map 1:0 -map 2:0 -c:v copy -c:a copy -c:s copy output.mkv
Формат MKV, может использовать субтитры форматов srt, subrip, ssa или ass, за исключением mov_text.
ffmpeg -i input.mp4 -i subtitles.ass -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s copy output.mkv
В свою очередь MP4 поддерживает только один формат субтитров — mov_text. Прочие форматы можно использовать в качестве исходных, но обязательно укажите кодек для субтитров, чтобы на выходе сконвертировать их в mov_text (-c:s mov_text).
ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4
Пример для нескольких потоков субтитров.
ffmpeg -i input.mp4 -i ru_subtitles.srt -i en_subtitles.srt -map 0:0 -map 1:0 -map 2:0 -c copy -c:s mov_text output.mp4
FFmpeg умеет конвертировать субтитры из одного формата в другой.
ffmpeg -i subtitles.srt subtitles.ass
Чтобы извлечь субтитры из видеофайла можно использовать следующую команду.
ffmpeg -i input.avi -txt_format text output.srt
А если необходимо удалить субтитры используйте опцию -sn.
ffmpeg -i input.mkv -c copy -sn output.mkv
Разбить видео на кадры
Следующая команда разобьет видео на кадры с именами image1.jpg, image2.jpg, image3.jpg и т.д.
ffmpeg -i video.mp4 image%d.jpg
В некоторых случаях, рекомендуют явно указывать выходной формат, опция -f image2 для изображений. В качестве конечного формата можно использовать jpg, jpeg, png и другие.
ffmpeg -i video.mp4 -f image2 image%d.jpg
После выполнения в конечной папке окажется огромное количество файлов изображений. Чтобы уменьшить их можно, понизить частоту кадров (опция -r).
ffmpeg -i video.mp4 -r 1 image%d.png
Собрать видео из изображений
Операция обратная предыдущей. В некоторых случаях, рекомендуют явно указывать входной формат (опция -f image2 для изображений).
ffmpeg -r 12 -f image2 -i image%d.jpg output.mpg
Создание превью
Следующая команда создаст графический файл в формате JPEG, взяв один кадр на 30 секунде.
ffmpeg -i video.mp4 -an -ss 30 -vframes 1 -s 340x180 -y -f mjpeg screenshot.jpg
А ниже приведен пример создания анимированного превью в формате GIF.
ffmpeg -i input.avi -an -pix_fmt rgb24 -ss 30 -vframes 64 -s 340x180 -loop_output 0 -f gif screenshot.gif
Опция -loop_output задает количество повторов, по умолчанию равен 1. Если указать 0, то анимация будет бесконечной.
Конвертировать FLV в видео (и наоборот)
Чтобы конвертировать флеш-ролик в видео, воспользуйтесь следующей командой.
ffmpeg -i video.flv video.mpg
Конвертацию можно выполнить и в обратную сторону.
ffmpeg -i video.mpg video.flv
Параметры можно указать явно.
ffmpeg -i video.mpg -ab 26k -f flv video.flv
Или более конкретно.
ffmpeg -i video.mpg -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video.flv
Преобразовать видео в GIF
Чтобы сконвертировать видео в гифку (без сжатия).
ffmpeg -i input.avi output.gif
Флеш-ролики тоже можно конвертировать.
ffmpeg -i input.flv output.gif
Оптимизация для WEB
Для потоковой передачи видео, может оказаться полезным перенести moov-атомы в начало файла. Это позволит при передачи по сети декодировать видео частями, и начать показ ролика, не заставляя пользователя ждать, пока он скачается целиком.
ffmpeg -i input.avi -c:v libx264 -c:a aac -movflags +faststart output.mp4
Пакетная обработка FFmpeg
Если необходимо сконвертировать не один, а несколько десятков файлов, очевидным неудобством станет то, что придется множество раз вводить одну и ту же команду и прежде, чем поставить кодироваться следующий файл, нужно будет дождаться завершения предыдущего.
Написание скриптов, тема для отдельной статьи, здесь же приведу примеры для Windows и MacOS, с помощью которых за раз можно сконвертировать всю папку с файлами.
Примеры скриптов FFmpeg для Windows
Создайте текстовый файл, с расширением .bat, поместите в него содержимое указанное ниже и скорректируйте по своему усмотрению.
Чтобы воспользоваться скриптом, потребуется указать путь до папки с файлами, которые хотите сконвертировать, расширение исходных файлов, выходной формат и расширение (контейнер) выходных файлов.
@Echo off
Pushd "C:folder"
for %%f in (*.avi) do (
ffmpeg -y -i "%%~f" -c:v libx264 -b:v 17000K -pass 1 -f mp4 NULL
ffmpeg -y -i "%%~f" -c:v libx264 -b:v 17000K -pass 2 -f mp4 -c:a aac -b:a 256K "%%~nf.mp4"
)
PopD
Pause
Скрипт из примера возьмет все файлы из папки ( C:folder ) с расширением .avi и сконвертирует их (используя двухпроходное кодирование) в формат mp4, расширение выходных файлов так же будет mp4. Выходные файлы будут помещены в ту же папку, что и исходные.
Ниже приведен аналогичный пример для конвертации аудио. Cкрипт конвертирует файлы с расширением .wav в .mp3.
@Echo off
Pushd "C:folder"
for %%f in (*.wav) do (
ffmpeg -y -i "%%~f" -ar 44100 -ac 2 -ab 320K -f mp3 "%%~nf.mp3"
)
PopD
Pause
Примеры скриптов FFmpeg для MacOS
Создайте текстовый файл, с расширением .sh, поместите в него содержимое указанное ниже и скорректируйте по своему усмотрению.
Чтобы воспользоваться скриптом, потребуется указать расширение исходных файлов, расширение (контейнер) выходных файлов, выходной формат, а также путь до папки с файлами, которые хотите сконвертировать.
#!/bin/bash
input=avi
output=mp4
format=mp4
cd ~/Desktop/folder/
for i in *."$input";
do
ffmpeg -y -i "$i" -c:v libx264 -b:v 17000K -pass 1 -f $format /dev/null;
ffmpeg -y -i "$i" -c:v libx264 -b:v 17000K -pass 2 -f $format -c:a aac -b:a 256K "${i%.*}.$output";
done
Не забудьте сделать скрипт исполняемым.
chmod 755 YourScript.sh
Скрипт из примера возьмет все файлы из папки ( ~/Desktop/folder/ ) с расширением .avi и сконвертирует их (используя двухпроходное кодирование) в формат mp4, расширение выходных файлов так же будет mp4. Выходные файлы будут помещены в ту же папку, что и исходные.
Ниже приведен аналогичный пример для конвертации аудио. Cкрипт конвертирует файлы с расширением .wav в .mp3.
#!/bin/bash
input=wav
output=mp3
format=mp3
cd ~/Desktop/folder/
for i in *."$input";
do
ffmpeg -y -i "$i" -ar 44100 -ac 2 -ab 320K -f $format "${i%.*}.$output";
done
Полезные ссылки
Официальный сайт FFmpeg
Документация FFmpeg
Документация по командам FFmpeg
Документация по фильтрам
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.