- Сборка ffmpeg для windows
- Linux Packages
- Linux Static Builds
- Windows EXE Files
- macOS
- FFmpeg 4.4 «Rao»
- FFmpeg 4.3.2 «4:3»
- FFmpeg 4.2.4 «Ada»
- FFmpeg 4.1.6 «al-Khwarizmi»
- FFmpeg 4.0.6 «Wu»
- FFmpeg 3.4.8 «Cantor»
- FFmpeg 3.2.15 «Hypatia»
- FFmpeg 2.8.17 «Feynman»
- FFmpeg Compilation Guide
- All platforms
- Linux
- macOS
- Windows
- Other Platforms
- Performance Tips
- Как установить ffmpeg на Windows?
- Добавьте FFmpeg в path Windows, используя переменные среды
- Проверьте доступность FFmpeg в командной строке
- FFmpeg и FFserver для Windows — краткая инструкция
- История FFmpeg
- Где скачать FFmpeg и FFserver
- Как установить FFmpeg
- Как пользоваться FFmpeg
- Примеры
- Структура
- Команды
- Почему команд так много?
Сборка ffmpeg для windows
FFmpeg only provides source code. Below are some links that provide it already compiled and ready to go.
Linux Packages
Linux Static Builds
Windows EXE Files
macOS
You can retrieve the source code through Git by using the command:
FFmpeg has always been a very experimental and developer-driven project. It is a key component in many multimedia projects and has new features added constantly. Development branch snapshots work really well 99% of the time so people are not afraid to use them.
Since FFmpeg is developed with Git, multiple repositories from developers and groups of developers are available.
Main FFmpeg Git repository https://git.ffmpeg.org/ffmpeg-web Main ffmpeg.org website repository https://git.ffmpeg.org/fateserver fate.ffmpeg.org server software repository Mirrors Mirror of the website repository Mirror of the FATE server repositoryAll FFmpeg releases are cryptographically signed with our public PGP key and should be verified for authenticity.
To verify a release:
- Import our public key into your local keyring:
- Download a release tarball and its corresponding signature.
- Verify the signature:
Approximately every 6 months the FFmpeg project makes a new major release. Between major releases point releases will appear that add important bug fixes but no new features. Note that these releases are intended for distributors and system integrators. Users that wish to compile from source themselves are strongly encouraged to consider using the development branch (see above), this is the only version on which FFmpeg developers actively work. The release branches only cherry pick selected changes from the development branch, which therefore receives much more and much faster bug fixes such as additional features and security patches.
FFmpeg 4.4 «Rao»
4.4 was released on 2021-04-08. It is the latest stable FFmpeg release from the 4.4 release branch, which was cut from master on 2021-04-08.
It includes the following library versions:
FFmpeg 4.3.2 «4:3»
4.3.2 was released on 2021-02-20. It is the latest stable FFmpeg release from the 4.3 release branch, which was cut from master on 2020-06-08.
It includes the following library versions:
FFmpeg 4.2.4 «Ada»
4.2.4 was released on 2020-07-09. It is the latest stable FFmpeg release from the 4.2 release branch, which was cut from master on 2019-07-21.
It includes the following library versions:
FFmpeg 4.1.6 «al-Khwarizmi»
4.1.6 was released on 2020-07-05. It is the latest stable FFmpeg release from the 4.1 release branch, which was cut from master on 2018-11-02.
It includes the following library versions:
FFmpeg 4.0.6 «Wu»
4.0.6 was released on 2020-07-03. It is the latest stable FFmpeg release from the 4.0 release branch, which was cut from master on 2018-04-16.
It includes the following library versions:
FFmpeg 3.4.8 «Cantor»
3.4.8 was released on 2020-07-04. It is the latest stable FFmpeg release from the 3.4 release branch, which was cut from master on 2017-10-11.
It includes the following library versions:
FFmpeg 3.2.15 «Hypatia»
3.2.15 was released on 2020-07-02. It is the latest stable FFmpeg release from the 3.2 release branch, which was cut from master on 2016-10-26.
It includes the following library versions:
FFmpeg 2.8.17 «Feynman»
2.8.17 was released on 2020-07-07. It is the latest stable FFmpeg release from the 2.8 release branch, which was cut from master on 2015-09-05. Amongst lots of other changes, it includes all changes from ffmpeg-mt, libav master of 2015-08-28, libav 11 as of 2015-08-28.
It includes the following library versions:
FFmpeg Compilation Guide
This page contains a list of resources which describe the necessary steps required for compiling FFmpeg from scratch or with the help of build scripts and/or package managers.
All platforms
Read the Generic compilation guide, regardless of your platform. It provides generic compilation and installation instructions, including the use of configure .
- CompilationGuide/vcpkg – vcpkg also aims to be portable accross all platforms. For windows it uses MinGW/MSYS compilation toolchain.
Linux
Alternative ways to obtain/compile ffmpeg under Linux:
macOS
Windows
- CompilationGuide/MinGW – MinGW Compilation Guide for compiling FFmpeg with Windows/MinGW/MSYS.
- CompilationGuide/CrossCompilingForWindows – Cross compiling for Windows is sometimes easier than using MSYS+MinGW.
- CompilationGuide/WinRT – Compiling FFmpeg for Windows Apps (Windows 10 and Windows 8.1)
- CompilationGuide/MSVC – Compiling FFmpeg using MSYS+MSVC, see also:
- Instructions on the reference web page
- Roxlu’s guide
Using external scripts or tools:
- Media Autobuild Suite – Automatically build FFmpeg under Windows
- Linuxbrew, which can be used with Windows Subsystem for Linux (WSL)
- Chocolatey – a package manager for Windows with an FFmpeg package
Other Platforms
Performance Tips
There are numerous avenues to extract maximum performance out of FFmpeg when it is built from source. The following list describes some of them:
- If using GCC/Clang , consider adding -march=native to —extra-cflags to make slightly better use of your hardware. Alternatively, for a more general solution, examine the —arch and —cpu options. Gains are variable, and usually quite small. However, this is usually even more safe than the above, and is thus listed here.
- Depending on your use case, —enable-hardcoded-tables may be a useful option. It results in an increase of approximately 15% in the size of libavcodec , the main library impacted by this change. It enables savings in table generation time, done once at codec initialization, since by hardcoding the tables, they do not need to be computed at runtime. However, the savings are often negligible (
100k cycles is a typical number) especially when amortized over the entire encoding/decoding operation. By default, this is not enabled. Improvements are being made to the runtime initialization, and so over time, this option will have an impact on fewer and fewer codecs.
- Other options may be found by examining ./configure —help .
Как установить ffmpeg на Windows?
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 в path Windows, используя переменные среды
Чтобы использовать FFmpeg в командной строке, сначала необходимо добавить папку bin, содержащую исполняемый файл FFmpeg, в path Windows.
В меню поиска Windows введите Изменить системные переменные среды и нажмите Enter. Откроется окно свойств системы.
Перейдите к кнопке «Дополнительно» и нажмите «Переменные среды» в нижней части окна.
В окне Переменные среды выберите переменную Path и нажмите «Изменить», чтобы изменить переменную Path.
Нажмите Новый и введите путь к папке FFmpeg «C:\ffmpeg\bin\» и нажмите OK.
Введите каталог пути в соответствии с диском или папкой, в которую вы поместили папку FFmpeg.
После этого путь добавляется к переменным окружения. Нажмите кнопку ОК, чтобы применить изменения.
Проверьте доступность FFmpeg в командной строке
Запустите командную строку, введите команду ffmpeg в терминале командной строки и нажмите Enter.
Если FFmpeg правильно добавлен в путь к Windows, в командной строке отобразятся сведения о FFmpeg, такие как номер версии, конфигурация и т.д.
Если вы не добились успеха, это означает, что ваша командная строка не распознала команду. Перепроверьте, правильно ли вы добавили папку FFmpeg в системный путь.

FFmpeg и FFserver для Windows — краткая инструкция
История 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 вы найдете здесь: http://ffmpeg.zeranoe.com/builds/
На выбор есть 32- и 64-битные версии. Для кодирования видео выбирайте 64-битную Static-версию (ссылка вида «Download FFmpeg git-*** 64-bit Static«).
Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы — программа закрывалась сама по себе. Возможно, потому что FFserver для Windows — 32-битный, есть несовместимость.
FFserver на Windows тоже существует, хотя об этом мало кто знает. Программу трудно скомпилировать, потому что используется много специфичного для Linux кода. Разработчики системы видеонаблюдения Xeoma оказались молодцы, потому что выложили свой FFserver для Windows на своем сайте: http://felenasoft.com/xeoma/ru/ffserver/ Не забудьте скачать cygwin1.dll оттуда же.
Про FFserver в Интернете много инструкций. Они написаны на примере Linux-версии, но прекрасно работают под Windows. Единственное отличие — файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.
Как установить FFmpeg
1. Скачайте по ссылке выше Static-версию. Это архив, для распаковки потребуется программа 7-zip (7-zip.org).
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 время
Указывает, с какого времени нужно кодировать видео/аудио. Формат в виде «чч:мм:сс». Подробнее: 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 — спрашивайте в комментариях. Помогу, чем смогу.