ffmpeg действительно мощный видеокодер/декодер. Он работает в командной строке, а не в графическом интерфейсе. Командная строка - это то черное окно, которое вы найдете, щелкнув и набрав cmd , затем нажмите enter. Это также называется «командной строки». После настройки вы вводите команды ffmpeg в одном из этих окон, чтобы использовать его.

Вот основные шаги, чтобы «установить» и использовать его:

Установка

ffmpeg теперь «установлен». Командная строка теперь распознает команды ffmpeg и попытается запустить их.

Обновление FFmpeg

Чтобы обновить FFmpeg, просто вернуться на страницу загрузки в шаге 1 и загрузите файл почтового индекса. Распакуйте файлы и скопируйте их поверх старых файлов в папке, созданной на шаге 2.

Использование FFmpeg

Использование FFmpeg требует, чтобы вы открыть окно командной строки, а затем введите FFmpeg определенные команды. Вот типичная команда FFmpeg:

Ffmpeg -i video.mp4 -vn -ar 44100 -ac 1 -b:a 32k -f mp3 audio.mp3

Эта команда состоит из четырех частей:

  1. ffmpeg - Эта команда сообщает CMD, что мы хотим запустить FFmpeg команды. cmd сначала ищет ffmpeg.exe в одной из папок с шага 6 в разделе «Установка». Если он найден, он попытается выполнить команду.
  2. -i video.mp4 - Это входной файл. Мы будем работать над этим файлом.
  3. -vn -ar 44100 -ac 1 -b:a 32k -f mp3 - Это «аргументы». Эти символы похожи на мини-команды, которые точно определяют, что мы хотим делать. В этом случае говорится, что нужно создать mp3-файл из источника ввода.
    • -vn - Оставьте из видеопотока
    • -ar 44100 - Определяет аудио разрешение в герцах.
    • -ac 1 - Аудиоканалы, только 1. Это эффективно «сделать моно».
    • -b:a 32k - Битрейт аудио, установлен на 32 кбит/с.
    • -f mp3 - Принудительное преобразование MP3. Без этой команды ffmpeg пытается интерпретировать то, что вы хотите, на основе расширения, которое вы используете в имени выходного файла.
  4. audio.mp3 - Это выходной файл.

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

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

  1. Нажмите клавишу Windows + R.
  2. Тип cmd затем введите.
  3. Изменить путь к файлу, над которым вы хотите работать. Тип cd . Он должен выглядеть примерно как cd C:\Users\name\Desktop\ .
  4. Теперь введите команду ffmpeg с именем вашего входного файла. Команда будет работать с некоторой обратной связью. Когда это будет сделано, cmd будет доступен для большего количества команд.

Это основной способ использования ffmpeg. Команды могут быть намного сложнее, но это только потому, что у программы столько энергии. Используя the ffmpeg documentation , вы можете узнать все команды и создать очень мощные скрипты. После этого вы можете сохранить эти сценарии в файл.bat, чтобы вам просто нужно дважды щелкнуть файл, а не набирать всю команду каждый раз. Например, this answer contains a script that will create MP3"s from all the MP4"s in a folder . Затем мы будем комбинировать мощность ffmpeg с мощностью cmd, и это приятное место, когда вам нужно делать профессиональное видео/аудио кодирование в горных файлах.

Если вы раньше использовали Windows или даже сейчас используете двойную загрузку Windows с Linux, то наверное, вы пользовались программой для Windows - FormatFactory, для преобразования и конвертирования ваших аудио и видео файлов, а также для копирования DVD дисков и создания ISO образов.

FormatFactory - это отличный инструмент, но если вы используете больше Linux чем Windows, то здесь есть хорошие альтернативы Format Factory linux, делающие ту же работу нехудшим, а иногда даже лучшим образом.

В этой статье мы рассмотрим 4 альтернативы Format Factory для Linux.

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

Mencoder - это программа с открытым исходным кодом, для конвертирования видео. Поддерживается только работа в командной строке. Mencoder - это часть MPlayer, а это значит, что программа может обрабатывать все форматы поддерживаемые MPlayer. Возможно, это не самый лучший аналог format factory для linux, но дальше мы рассмотрим и другие программы, в том числе с графическим интерфейсом.

Mencoder позволяет кадрировать, масштабировать видео, поворачивать кадр горизонтально и вертикально, отражать, изменять контрастность, преобразовывать цветовое пространство, цветовой тон, насыщенность, выполнять гамма коррекцию, применять различные эффекты и фильтры для уменьшения видимости артефактов сжатия или просто выполнять конвертирование видео в linux. Также поддерживается автоматическая коррекция яркости, усиление контраста, резкость, размытие, шумоподавление.

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

Установка Mencoder

Для установки программы в Ubuntu выполните:

sudo apt-get install mencoder lame

Программа будет нормально работать, только если в системе есть библиотека libavcodec5x. Это часть libav или ffmpeg и она содержит большое количество кодеков для поддержки различных форматов:

sudo apt-get install libavcodec54

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

DivX Converter можно скачать из официального сайта . Программа очень легко устанавливается с помощью установщика приложений или dpkg в Ubuntu.

Преобразовать файл с помощью DivX Converter очень просто. Сначала добавьте нужный файл, потом выберите формат, в который его нужно преобразовать. Здесь есть некоторые предопределенные форматы, так что вы можете посмотреть полный список и выбрать то что нужно. Далее, вам нужно выбрать каталог, куда сохранить файл. На вкладах видео и аудио можно указать дополнительные опции. Когда завершите, нажмите кнопку Конвертировать:

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

2. Arista

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

Официально Arista основана на Gnome. Она поддерживает длинный список форматов для различных устройств: IPod, IPhone, PSP, Playstation 3, Nokia, DVD и многие другие. Она также поддерживает mp4, WebM, matroska, avi, ogg, flv, кодеки для видео: h.264, vp8, mpeg4/divX, mpeg2, theora, Flash Video, Аудио: aac, vorbis, mp3, flac, speex,wav.

Поддерживаются следующие функции:

  • Готовые настройки для IPod, PC, DVD, PSP, Playstation 3 и т д
  • Живой просмотр для оценки качества видео
  • Автоматическое обнаружение доступных DVD носителей и цифровых устройств
  • Rip из v4l устройств
  • Rip из DVD устройств, с помощью libdvdcss
  • Простая утилита командной строки для сценариев
  • Автоматическая установка обновлений

Установка Arista

Программа доступна в стандартных репозиториях многих дистрибутивов. Но если это не так то ее можно установить из PPA webupd8:

sudo add-apt-repository ppa:webupd8team/arista
$ sudo apt-get update
$ sudo apt-get install arista

Как пользоваться Arista

Когда программа будет установлена, запустите ее из меню приложений. Вы увидите во такое окно:

Нажмите + чтобы добавить несколько видео или аудиофайлов которые вы хотите конвертировать:

Здесь есть три варианта импорта файлов: непосредственно с DVD, импорт папки целиком или выбор одного или нескольких файлов. Затем выберите каталог куда нужно сохранить обработанные файлы.

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

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

3. Handbrake

Handbrake - это лучший свободный, многопоточный инструмент с открытым исходным кодом и доступных на данный момент, если рассматривать другие аналоги format factory для linux, то этот самый лучший. Он был разработан в 2003 году Эриком Петитом. За это время программа сильно изменилась, теперь она поддерживает все основные платформы, включая Windows и Mac. Также официально поддерживается Ubuntu Linux, но также есть версии для других дистрибутивов. Handbrake использует такие сторонние библиотеки: x264, libav и faac.

Для Linux доступен как интерфейс командной строки, так и графический интерфейс.

Установка Handbrake

Установить Handbrake в Ubuntu очень просто, для этого нужно подключить PPA:

sudo add-apt-repository ppa:stebbins/handbrake-releases
$ sudo apt-get update
$ sudo apt-get install handbrake

Графический интерфейс на основе GTK устанавливается командой:

sudo apt-get install handbrake-gtk

А клиент командной строки:

sudo apt-get install handbrake-cli

Как использовать Handbrake

Когда программа будет установлена, запустите ее из главного меню. Графический интерфейс Handbrake выглядит вот так:

Сейчас не все опции программы доступны. Сначала нужно импортировать файлы, которые вы хотите сжать или конвертировать. Нажмите Source, чтобы выбрать файлы.

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

Если вы собираетесь загружать видео в Youtube, отметьте галочку Web-optimized. Этот выбор удаляет меню устройств, зато теперь вы можете вручную настроить параметры видео:

Вы можете изменять любые опции, какие вам нужно. Как видите, по умолчанию видеодекодер установлен H.264, но вы можете выбирать другие параметры. Когда завершите настройку, нажмите кнопку Старт:

4. FFmpeg

FFmpeg это комплексное кроссплатформенное решение для записи, конвертирования, сжатия аудио/видео, потокового аудио и видео файлов. Отличный аналог format factory для linux или даже windows. Проект FFmpeg основан в 2000 году Фабрисом Белларом и поддерживался до 2003 Майком Нидермаером с 2004. Программа содержит в себе кодеки большинства известных форматов. FFmpeg может перекодировать, декодировать и изменять буквально все что было создано до сих пор. Проект разработан для Linux но может использоваться в других операционных системах, например, Windows.

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

Установка FFmpeg

Для установки самой свежей версии программы в Ubuntu лучше использовать PPA:

sudo apt-add-repository ppa:mc3man/trusty-media
$ sudo apt-get update
$ sudo apt-get install ffmpeg

WinFF это графический интерфейс для FFmpeg. Программа может работать со всеми видами файлов, с которыми работает ffmpeg. Можно обрабатывать несколько файлов и несколько форматов одновременно. Например, преобразовать MPEG, FLV и MOV, в AVI. Программа поддерживает не только Linux, но и Windows, а тажке переведена на множество языков, в том числе и русский.

WinFF доступна в официальных репозиториях Ubuntu, но самую свежую версию можно установить из PPA:

Sudo add-apt-repository ppa:paul-climbing/ppa

$ sudo apt-get update
$ sudo apt-get install winff

Когда установка будет завершена, запустите WinFF из главного меню. Перед вами откроется очень простой интерфейс с небольшим количеством функций:

FFmpeg - это набор библиотек для обработки видео и аудио файлов. FFmpeg сконвертирует mov в mp4, наложит водяной знак, склеит несколько видео файлов в один, поменяет разрешение, перекодирует потоковое видео, создаст поток сам. FFmpeg полезен для тех, кто профессионально работает с видео, разрабатывает медиа приложения или просто обрабатывает домашние записи.

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

Сегодня мы пройдем путь от получения информации о файле до применения нескольких фильтров одновременно, решая задачи, с которыми часто сталкиваешься при работе с видео. Установим ffmpeg и вперед!

Получаем информацию о файле

ffmpeg -i file.mp4

Тут все просто, вводим путь к файлу, получаем информацию о нем: кодеки, количество дорожек, разрешение, битрейт и фреймрейт. Мы указываем пути к файлам флагом -i (input):

I file1.mp4 -i file2.mp4 .

Конвертируем в mp4

Допустим у нас есть сайт, на котором видео проигрывалось через Flash плеер. Мы хотим поменять его на HTML5 Video. Для этого конвертируем видео файлы на сервере из flv формата в mp4.

  • output.mp4 - путь к сконвертированному файлу.
  • -vcodec libx264 - указываем какой видео кодек хотим получить. В нашем случае это H264, который поддерживается большинством браузеров .
  • -acodec libvo_aacenc - аудио кодек AAC .

Список поддерживаемых вашим ffmpeg кодеков можно получить через ffmpeg -codecs .

Вместо -vcodec встречается запись -codec:v и -c:v . Если не указать кодеки для конвертации ffmpeg -i flashvideo.flv output.mp4 , то ffmpeg установит дефолтные кодеки для формата файла на выходе .

При конвертации задают не только кодеки. Увеличим число настроек:

Ffmpeg -i flashvideo.flv -b:v 700k -r 25 -pix_fmt yuv420p -vcodec libx264 \ -b:a 128k -ar 44100 -acodec libvo_aacenc -y output.mp4

Мы установили битрейт для видео -b:v и аудио -b:a в 700 и 128 кб/c. Битрейт можно обозначить другими флагами: -vb и -b для видео или -ab для аудио.

Оставшиеся три параметра - это фреймрейт -r 25 в кадрах в секунду, цветовая модель YUV равная обычному значению yuv420p и частота дискретизации звука 44100 Гц. Флаг -y нужен для перезаписи файла, если он уже существует.

Вырезаем фрагмент видео

ffmpeg -ss 10 -t 20 -i source_video.mp4 -vcodec copy -acodec copy result.mp4

Флагом -ss указываем с какого момента исходного видео обрезаем, -t - продолжительность. На выходе мы получим двадцати секундное видео, которое начнется с десятой секунды исходного. Запись -ss 00:00:10.250 -t 00:00:20.120 пригодится для указания более точного промежутка времени. До версии 2.1 FFmpeg в обоих случаях обрезал видео по ближайшему ключевому кадру . В новых версиях итоговое видео максимально близко к указанному интервалу.

Мы добавили -vcodec copy -acodec copy , чтобы сохранить кодеки исходного видео. Иначе ffmpeg перекодировал бы их в кодеки по умолчанию. Сейчас видео не перекодируется и команда выполнится быстро. Дальше упростим эту запись флагом -c copy .

Если расположить флаги -ss и -t после входящего видео, то итоговое видео будет таким же, но команда будет выполняться дольше. Флаги будут относиться к итоговому видео и FFmpeg будет декодировать фрагмент видео до -ss . В первом случае эта часть будет проигнорирована.

Флаг -t можно заменить на -to , указав вместо продолжительности конечную точку. Этот флаг нельзя применить к входящему видео:

Ffmpeg -ss 10 -i source_video.mp4 -to 30 -c copy result.mp4

Команда дала нам другой результат: тридцати секундное видео с десятой секунды исходного. Это произошло, потому что -to использовал временную шкалу result.mp4 , тридцатая секунда на котором равна сороковой секунде source_video.mp4 . Чтобы использовать исходную шкалу добавим флаг -copyts . Так мы получим такое же видео, как от первой команды:

Ffmpeg -ss 10 -i source_video.mp4 -to 30 -copyts -c copy result.mp4

Фильтры. Меняем разрешение

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

Ffmpeg -i source_video.avi -vf scale=640:480 source_preview.avi

Мы использовали флаг -vf , указав фильтр scale и разрешение 640:480 . Этот фильтр может сохранять пропорции и вычислять разрешение динамически .

Объединение фильтров. Ускоряем воспроизведение

ffmpeg -i source_video.mp4 \ -filter_complex "setpts=0.5*PTS;atempo=2.0" accelerated.mp4

Мы объединили несколько фильтров в один флагом filter_complex и получили ускоренный в два раза файл. Чтобы разобраться применим фильтры по одиночке.

Ffmpeg -i source_video.mp4 -vf setpts=0.5*PTS accelerated_video.mp4

Мы ускорили воспроизведение видео дорожки фильтром setpts . Однако аудиодорожка не изменилась, и файл получится той же продолжительности что и был: видео проиграется в 2 раза быстрее, а последний кадр будет висеть всю вторую половину файла. Если убрать аудио дорожку флагом -an , то длительность итогового файла будет определяться по видео дорожке и будет в два раза меньше исходной.

Наоборот, если нужна только ускоренное аудио без видео, воспользуемся фильтром atempo , а флагом vn уберем видео дорожку.

Ffmpeg -i source_video.mp4 -af atempo=2.0 -vn accelerated_audio.mp3

Добавив filter_complex и применив оба фильтра, мы ускорили файл целиком.

Выполним ту же операцию другим методом:

Ffmpeg -f concat -i list.txt -c copy output.mp4

В FFmpeg есть элементы, которые читают или записывают медиа в определенных форматах. Они называются демультиплексор и мультиплексор . -f concat - это демультиплексор, который принимает текстовый файл, со списком медиа файлов и склеивает их в один. Посмотреть другие элементы можно командой ffmpeg -formats .

Содержимое list.txt:

File "input1.mp4" file "input2.mp4"

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

Но первый метод применяется чаще. Во-первых, он может принять на вход видео с разными кодеками. Во-вторых, дает большую гибкость. Например, если нужна только часть первого видео, мы можем воспользоваться флагами -ss и -t . Обратите внимание, эти флаги действуют только на первый файл input1.mp4 .

Ffmpeg -ss 5 -t 2 -i input1.mp4 -i input2.mp4 \ -filter_complex " concat=n=2:v=1:a=1 [v] [a]" \ -map "[v]" -map "[a]" -y result.mp4

Водяной знак

Последний пример, который мы рассмотрим - это наложение водяного знака. Фильтр overlay принимает на вход координаты расположения водяного знака на итоговом видео.

Расположим водяной знак по центру. Зная размер исходного видео и png картинки, можно вычислить координаты самим. Например при видео 1280×720 и водяном знаке 200×200, положение по горизонтали x = (1280 - 200) / 2 = 540 и по вертикали y = (720 - 200) / 2 = 260 . Соответственно значение фильтра "overlay=540:260" . Однако удобнее написать универсальную команду, чтобы ffmpeg посчитал все за нас. Размер видео получим из параметров main_w и main_h , а водяного знака из overlay_w и overlay_h . Далее ту формулу, по которой мы вычисляли координаты запишем в значение фильтра "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" . Готово, мы получили команду для наложения водяного знака по центру:

Ffmpeg -i source_video.mp4 -i watermark.png \ -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" \ -codec:a copy video_protected.mp4

Твитнуть

В данной статье попробуем «на пальцах» объяснить, что такое FFmpeg для начинающих пользователей Linux (да и Windows тоже). FFmpeg популярный набор программ и библиотек среди multimedia и web разработчиков. На базе FFmpeg сделано множество программ по конвертированию видео из одного формата в другой. Популярность этой программы крайне высока. Почему он так популярен? Для чего его чаще используют? Как установить и как запустить?

Итак, основные фишки FFmpeg, которые могут привлечь внимание неискушенного Linux пользователя, только-только начавшего изучать Ubuntu:

  • FFMpeg — бесплатный.
  • Есть во всех Linux дистрибутивах.
  • Можно просмотреть любой фильм.
  • Работает со всевозможными видеоформатами.
  • Позволяет сконвертировать видео из одного формата в другой.
  • Поддерживает параллельное кодирование на нескольких процессорах.
  • Ускорения кодирования на NVidia картах.
  • Можете использовать FFmpeg в своих программах, а потом продавать их.

FFmpeg доступен на Linux, Windows, Mac Os. И везде работает одинаково. Так что, если вы научились работать с FFmpeg под Windows, то точно так же его надо запускать и в Linux и наоборот.

FFmpeg абсолютно самодостаточен . Для того чтобы посмотреть фильм нет необходимости искать в сети, скачивать и устанавливать кодеки. Достаточно всего лишь одного файла (ffplay.exe), все кодеки содержатся внутри этого файла.

FFmpeg — бесплатный софт (лицензии GPL 2.0 и LGPL 2.1) и вы можете использовать его код в своих проектах, как в коммерческих, так и в свободно-распространяемых.

Как было уже сказано, FFmpeg — это набор программ. Что значит “набор программ”? Нужно все программы качать или можно по отдельности? Что там внутри? На эти вопросы мы сейчас и постараемся ответить.

Но для начала определимся с термином FF mpeg — это сокращенное от F ast F orward Mpeg. Когда говорим о FFmpeg, как о наборе программ, то первые две буквы «F» должны быть большие (FF).

Итак, FFmpeg состоит из следующих инструментов (tools): ffmpeg, ffplay, ffserver, ffprobe (заметьте, все с маленькой буквы). Для Windows это обычные exe файлы. Причем размер у них очень внушительный. Все дело в том, что все видео и аудио кодеки уже находятся внутри них. Если вам нужно посмотреть фильм, то просто скачайте из сети ffplay.exe, больше ничего не потребуется. Никаких инсталляторов, никаких кодеков, права Administrator не нужны. Скачали, разархивировали, можете приступать к просмотру фильма.

FFmpeg в Windows, размер каждого файла 38-39Mb, все кодеки скомпилированы и прилинкованы «внутрь» исполняемого файла.

ffmpeg

С помощью этой программы можно конвертировать видео из одного формата в другой. Склеивать несколько видеороликов в один. Разбирать видео на отдельные кадры (изображения), а потом склеивать обратно. Ускорять/замедлять, масштабировать, добавлять субтитры и несколько звуковых дорожек. И еще 100500 полезных действий.

Список доступных опций этой команды занимает 203 страницы:

Впечатляет, не так ли?

ffplay


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

ffserver


Если вам вдруг захотелось создать свой видео хостинг похожий на YouTube, то используйте ffserver.

ffprobe


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

Помимо четырех программ в пакет FFmpeg входит еще и набор свободно-распространяемых библиотек (из которых вышеприведенные программы и собраны):

  • libavutil — набор вспомогательных функций;
  • libavcodec — аудио/видео кодеки;
  • libavformat — библиотека по работе с контейнерами;
  • libavdevice — работа с устройствами поставляющими медиа контент;
  • libavfilter — различные фильтры;
  • libswscale — библиотека масштабирования, работа с цветовыми пространствами;
  • libswresample — библиотека обработки звука.

В принципе, из-за этих библиотек весь проект FFmpeg и затевался, а программы уже так, бонусом пошли 🙂

Используя эти библиотеки вы можете создавать свои приложения по работе с мультимедиа контентом и даже потом продавать их. Написать свой видеоплеер или видеоконвертер не составит труда. В сети полно руководств и инструкций по использованию библиотек FFmpeg.

История

История развития FFmpeg так же богата, как и его содержимое. Начавшись в 2000 году она претерпела сильное потрясение в 2011, когда часть разработчиков решила создать свою собственную библиотеку по работе с медиа контентом, назвали они ее — Libav. Свое желание уйти из проекта они объяснили недовольством организацией проекта FFmpeg, где по сути вся власть находилась в руках одного человека и все решения принимал только он сам.

Сейчас Libav идет своим путем и никого не слушает. Код обновляется не так часто, как FFmpeg. Каждое обновление тщательно проверяется.

FFmpeg в долгу не остался и исправно, каждые два дня, забирает к себе в норку изменения в коде, сделанные командой Libav:-)

В настоящее время FFmpeg продолжает активно развиваться, как доказательство скриншот репозитария исходных кодов:

Установка

Пакет FFmpeg настолько популярен, что включен во многие дистрибутивы Linux по умолчанию. Если вы по какой-то причине не установили его сразу, то это можно сделать потом с помощью менеджера пакетов. Установка FFmpeg для начинающих не должна вызвать особых проблем. В зависимости от дистрибутива Linux, нужно будет выполнить ряд стандартных команд.

Sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg

Yum -y install ffmpeg ffmpeg-devel

openSuSe

Zypper install ffmpeg

Самые свежие версии FFmpeg для Windows можно скачать с:

https://ffmpeg.zeranoe.com/builds/

Два типа FFmpeg

Есть два вида в которых FFmpeg приходит на ваш компьютер:

1) static-build — в этом случае все кодеки, фильтры и утилиты вкомпилированы «внутрь» ffmpeg.exe (ffprobe.exe, ffplay.exe) и вам достаточно скачать только один из этих файлов, чтобы начать смотреть киношку (ffplay.exe). В этом случае размер исполняемого модуля сильно раздувается (до 39Mb). Зато очень удобно.

2) shared-build — здесь кодеки, фильтры и другие вспомогательные программки являются самостоятельными отдельными файлами, которые FFmpeg находит и по мере надобности подгружает. В этом случае размер исполняемого модуля всего 190Kb.

Если вы устанавливаете FFmpeg в Linux, то с вероятностью 99.9% будет установлен shared-build.

Лично я, предпочитаю static-build (не надо думать о других библиотеках). Чтобы получить static-build под Linux нужно собрать FFmpeg самому из исходников. Для начинающих пользователей Linux это может оказаться сложно.

А как смотреть кино?

Все понятно, но как фильмы-то смотреть? Как говорилось выше, ffplay (ffplay.exe — под Windows) является консольной программой, то есть у нее нет графического интерфейса. Для просмотра видео необходимо выполнить в командной строке:

Ffmpeg.exe film.avi

после чего сразу начинает воспроизводиться фильм:

Для начинающего пользователя такой способ запуска фильма может показаться необычным. Но в этом-то вся и мощь ffplay. У него такое же огромное количество опций, как и у ffmpeg, которы помогут настроить картинку для самых взыскательных ценителей кино.

Если вы чувствуете себя неуверенно при работе с командной строкой Windows, то можете воспользоваться следующим способом. Захватите фильм мышкой и перетащите его на ffplay.exe, кино сразу же станет воспроизводиться.

Контроль за воспроизведением (краткий список команд):

q, ESC — выход,
f — полный экран (двойной клик левой кнопкой мыши),
p — поставить на паузу,
m — звук вкл/выкл,
9, 0 — звук прибавить/убавить,
t — переключение субтитров,
c — cycle program
s — покадровое перемещение по фильму,
стрелка влево/вправо — перемещение на 10 сек назад/вперед,
стрелка вниз/вверх — перемещение на 1 мин назад/вперед,
page down/page up — перемещение на 10 мин назад/вперед.

Графический интерфейс проигрывателя ffplay выглядит довольно аскетичным, вернее сказать его вообще нет. Отсутствуют привычные ползунки, кнопочки, менюшки присущие media player’ам с графическим интерфейсом. При работе с ffplay вы видите только сам фильм и какие-то непонятные цифры и слова мелькающие в окне терминала, как в фильме «Матрица». На самом деле управлять фильмом с клавиатуры просто и понятно, через несколько просмотров пальцы сами запомнят какие кнопки нужно нажимать.

Несколько примеров запуска ffplay с различными опциями:

Уменьшить изображение в 4 раза по ширине

Ffplay -vf scale=iw/4:-1 video.avi

Почистить видео от шума

Ffplay -vf hqdn3d=4:3:6:4.5 video.avi

Ускорение в 2 раза

Ffplay -vf setpts=0.5*PTS video.avi

А как перекодировать?

Перевести mpg в avi

Ffmpeg -i video.mpg video.avi

Извлечь звук из видео и записать в формате MP3

Ffmpeg -i video.mp4 -vn -ab 128 audio.mp3

Склеить звук и видео

Ffmpeg -i audio.wav -i video.avi final_video.mpg

Извлечь видеодорожку (без звука)

Ffmpeg -i video.mp4 -an video_bez_zvuka.mp4

Изменить размер видео

Ffmpeg -i video.mp4 -s 640x480 -c:a copy video640480.mp4

Выбросить первые 45 секунд видео и оставить участок длительностью 40 секунд

Перекодировать WAV в MP3

Ffmpeg -i audio.wav -b:a 192k audio.mp3

Разложить видео на кадры (изображения)

Ffmpeg -i video.webm thumb%04d.jpg

Сделать видео из набора изображений

Ffmpeg -i frame-%03d.png video.avi

Заключение

Данная статья имеет целью познакомить читателя с мощнейшим набором программ FFmpeg. Дается краткое описание пакета FFmpeg. Приводятся примеры его использования для просмотра видео и для обработки (ковертиования) аудио и видео материалов.

Перечислена только малая часть возможностей пакета FFmpeg. Для первого ознакомления я думаю достаточно. Остались за кадром такие FFmpeg фичи, как многопроходное кодирование, фильтры и цепочки фильтров, связка с Avisynth, сборка FFmpeg со сторонними кодеками.

Задачей данной статьи было показать, что FFmpeg для начинающих пользователей Linux должен быть незаменимым инструментом при работе с media контентом. Не нужно бояться отсутствия GUI. Работа с аудио и видео из консоли тоже может быть очень эффективной.

P.S. Так как FFmpeg приходится пользоваться часто, то я решил собрать все популярные приемчики использования в одной книге .