Как установить ffmpeg ubuntu
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Руководство по использованию ffmpeg в Linux
Работаем с медиафайлами
В этом подробном руководстве показано, как установить ffmpeg в Ubuntu и других дистрибутивах Linux. Он также демонстрирует некоторые полезные команды ffmpeg для практического использования.
В этом руководстве мы расскажем, как установить ffmpeg, и как использовать его базовые и продвинутые функции.
Установка ffmpeg в Linux
Установка ffmpeg в Ubuntu
Готово! Чтобы проверить установку выполните:
Вы должны увидеть вывод, описывающий вашу конфигурацию ffmpeg, включая версию.
Существует неофициальный PPA, который вы можете использовать для установки последней версии ffmpeg. Просто используйте эти команды:
Установка ffmpeg в дистрибутивах на основе Arch
Чтобы установить ffmpeg в дистрибутивах на основе Arch, используйте следующую команду:
Установка ffmpeg в дистрибутивах на основе Fedora
Чтобы установить ffmpeg в дистрибутивы Linux на основе Fedora, вы можете использовать эту команду:
Установка ffmpeg в CentOS/RHEL
FFmpeg недоступен в репозиториях CentOS 8 по умолчанию. Вы можете собрать инструменты ffmpeg из исходного кода или установить его с помощью утилиты dnf из репозитория Negativo17.
Репозиторий Negativo17 зависит от репозиториев EPEL (Extra Packages for Enterprise Linux) и PowerTools. Для их включения используйте:
После включения этих репозиториев уже можно установить сам ffmpeg:
Установка ffmpeg в Debian
Как использовать ffmpeg: Основы
С установленным ffmpeg перейдем к основным командам, чтобы вы начали использовать этот мощный инструмент.
Основные строительные блоки ffmpeg:
Процесс транскодирования в ffmpeg для может быть описан следующей схемой:
0. Команды ffmpeg
Основная форма команды ffmpeg:
Вы должны иметь в виду, что все параметры файла применяются только к файлу, который следует за ними (и вы должны будете записать их снова для следующего файла).
Вы не должны смешивать входы и выходы: сначала укажите входные файлы, затем укажите выходные файлы.
1. Получить информацию медиа файла
Это работает для аудио и видео файлов:
Как вы можете видеть, команда теперь выводит только информацию, касающуюся указанного вами медиа-файла (кодировщик, потоки и так далее).
2. Конвертировать медиа файлы
Вот некоторые примеры:
Вы даже можете указать больше выходных файлов:
Это преобразует входные файлы во все указанные форматы.
Чтобы увидеть список всех поддерживаемых форматов, используйте:
3. Извлечение аудио из видео
4. Отключение звука в видео
5. Извлечение изображений из видео
Допустим, у вас есть серия изображений (например, слайд-шоу), и вы хотите получить все изображения из этого. Просто введите:
6. Изменение разрешения видео или соотношения сторон
7. Добавить изображение обложки в аудио
Это отличный способ превратить аудио в видео, используя одну фотографию (например, обложку альбома) для аудио. Это очень полезная функция, когда вы хотите загружать аудиофайлы на сайты, на которых не разрешено ничего, кроме видео и изображений (YouTube и Facebook являются примерами таких сайтов).
8. Добавить субтитры к видео
С ffmpeg просто добавить субтитры к видео. Введите следующее:
Конечно, вы можете указать любые кодеки, которые вы хотите (и любые другие дополнительные параметры, связанные с аудио и видео).
9. Сжатие медиа-файлов
Сжатие файлов значительно уменьшает размер файла, экономя вам много места. Это может быть важно для передачи файлов. С ffmpeg есть несколько способов уменьшить размер файла.
Примечание: Слишком большое сжатие файлов заметно ухудшит качество получаемого файла.
CRF от 20 до 30 распространен, но можно выставлять и другие значения.
Снижение частоты кадров (фреймрейта) может работать в некоторых случаях (хотя это может очень легко сделать видео медленным):
-r указывает частоту кадров (в данном случае 24).
Вы также можете попробовать уменьшить разрешение видео (смотри выше как это сделать). Дополнительным советом является сжатие звука, делая его стереофоническим и снижая скорость передачи данных. Например:
10. Обрезать медиа файлы
Как использовать ffmpeg: Расширенное использование
Теперь мы расскажем о чуть более продвинутых функциях, таких как запись экрана, использование устройств и другие.
1. Обрезка медиа-файлов
Чтобы разделить файл на несколько частей, нужно указать несколько разделений (указать время начала, время окончания или продолжительность перед каждым выходным файлом).
Посмотрите на этот пример:
Это можно сделать для любого количества частей. Имейте в виду, что это работает со звуком тоже.
2. Склейка медиа-файлов
ffmpeg также может выполнить противоположный процесс: собрать несколько частей вместе.
Теперь отредактируем его в vim
Здесь введите полные пути ко всем файлам, которые вы хотите присоединить (они будут объединены в том порядке, в котором вы их здесь пишете), по одному на строку. Убедитесь, что они имеют одинаковое расширение (например, mp4). Вот пример:
Сохраните файл, который вы только что отредактировали. Этот метод работает для любых аудио или видео файлов.
Теперь введите следующее:
3. Соедините изображения в видео
Таким образом вы можете создать слайдшоу или что-то подобное.
Если вы воспроизводите этот файл, вы можете подумать, что в слайд-шоу были добавлены только некоторые изображения. На самом деле все ваши фотографии были добавлены, но ffmpeg проходит по ним их как можно быстрее. Это означает 1 кадр на фотографию, ffmpeg по умолчанию работает со скоростью около 23 кадров в секунду.
В нашем примере мы устанавливаем частоту кадров равную 1, что означает, что каждый кадр (что также означает каждое изображение) появляется в течение 1 секунды.
4. Запись экрана
Нажмите q или CTRL + C в любое время, чтобы остановить запись.
Вы можете сделать размер выходного файла полноэкранным, введя следующее для размера (вместо 1920?1080 или любого другого установленного разрешения):
5. Запишите свою веб-камеру
6. Запишите ваше аудио
Linux обрабатывает аудио в основном через ALSA и pulseaudio. ffmpeg может записывать оба, но мы рассмотрим pulseaudio, так как дистрибутивы на основе Debian включают его по умолчанию. Синтаксис немного отличается для двух методов.
В настройках звука у дистрибутива убедитесь, что записывающим устройством по умолчанию является то устройство, которое вы хотите записать.
Вместо записи звука вы можете так же легко добавить аудиофайл в качестве звука поверх для записи экрана или веб-камеры:
Записи в ffmpeg мелкими, поэтому очень маленькая запись может не сохраниться. Мы рекомендуем сделать запись немного дольше и затем обрезать ее (если вам нужно всего несколько секунд), просто чтобы убедиться, что файл действительно будет записан на ваш диск.
Основное использование фильтров в ffmpeg
Фильтры являются невероятно мощной функцией ffmpeg. Вам доступно огромное количество фильтров, что делает ffmpeg полностью способным обрабатывать любые потребности редактирования.
Основная структура для использования фильтра:
Общая форма фильтра:
Различные настройки фильтра и их значения разделены двоеточиями. Вы также можете выполнять математические операции в качестве значений для различных настроек.
Более подробное описание различных констант, используемых в выражениях, и различных настроек можно найти в официальной документации фильтра ffmpeg.
1. Масштабирование видео
Это очень простой фильтр. Единственными настройками являются ширина w и высота h :
Как мы уже упоминали, вы можете использовать математические операции для значений:
2. Обрезка видео
Вот пример, который использует математические выражения в качестве значений:
3. Поворот видео
Вы также можете повернуть видео по часовой стрелке на определенную величину в радианах. Чтобы упростить задачу, вы можете указать значение в градусах и преобразовать его в радианы, умножив это значение на PI/180 :
Первая команда повернет видео по часовой стрелке на 90 градусов. Вторая команда перевернет видео вверх ногами (PI рад = 180 градусов).
4. Преобразование аудиоканала
Это может быть полезно, если вы каким-то образом получаете звук только в правом ухе или что-то подобное. Вы можете сделать звук слышимым из обоих ушей (в данном конкретном случае) следующим образом:
Это мапит правый 1 аудиоканал на левый 0 и правый 1 аудиоканалы (левое число представляет собой вход, правое число представляет собой выход).
5. Увеличение громкости звука
Вы можете умножить громкость звука на любое действительное число. Вам нужно только указать множитель:
Первая команда увеличивает громкость в 1,5 раза. Вторая команда делает звук в 1/4 (0,25) раза тише.
6. Настройка скорости воспроизведения
Первая команда удваивает скорость воспроизведения, а вторая команда замедляет видео до 1/2 скорости.
Первая команда замедляет звук на 1/4 от первоначальной скорости. Вторая команда ускоряет звук в 4 раза (2*2)
Чтобы изменить скорость воспроизведения видео и аудио с помощью одной и той же команды, вам нужно использовать filtergraphs
7. Добавить водяной знак
Завершение
В этом руководстве мы рассмотрели установку, базовое использование, расширенное использование и основы фильтров ffmpeg.
Мы надеемся, что это может быть полезно для всех, кто хочет попробовать ffmpeg, для кого-то, кто хочет использовать ffmpeg для нескольких задач, или даже просто для того, кто хочет больше узнать о широких возможностях этой удивительной утилиты.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Установка последних версий FFmpeg и x264 (на примере Ubuntu)
Данная инструкция подразумевает, что у вас Ubuntu LTS (10.04) или 10.10.
Подготовительный этап
Для начала потребуется удалить некоторые установленные пакеты и установить необходимые зависимости.
Первым делом удаляем x264, libx264-dev и ffmpeg, если таковые установлены:
Затем, устанавливаем необходимые для последующей сборки зависимости. Репозитарии universe и multiverse должны быть подключены!
Установка x264
Создаём в домашней директории каталог src :
И выполняем следующее:
После этих действий будет собран и установлен пакет x264, который можно будет удалить/обновить в будущем.
Установка FFmpeg
Примеры использования FFmpeg и x264
Кодирование в один проход:
Перекодирование для iPod (640×480):
Обновление FFmpeg и x264
Удаляем ранее установленные пакеты:
Обновляем x264:
Обновляем FFmpeg:
В обоих случаях повторяем процедуру установки FFmpeg и x264, как было описано ранее, только с места «./configure ля-ля-ля. «
Отмена всех изменений, проделанных по данной инструкции
Хотя мне эта тема не нужна на данный момент, и я не пробовал в деле вашу инструкцию. Я говорю вам спасибо, и если бы мог поставил кучу пятёрок как оценки пятибалльной шкалы, то я бы их поставил бы. Статья написано очень достойно, очень хорошо. Особенно радует в конце пункт: «Отмена всех изменений, проделанных по данной инструкции» Ибо мало кто включает такой нужный пункт в статью.
Автор вы молодец, продолжайте в том же духе.
Я конечно надеюсь и принял на веру, что в инструкции этой нет ошибок.
Большое спасибо, очень помогло.
при загрузке исходников по указанным ссылкам возникли проблемы.
Так же, на Ubuntu Server 11.04 на первом же шаге, не найден пакет lib1g-dev
Выше не находилось libx264 (как такое могло произойти, я не знаю). Вы же пишете про lib1g-dev. А это совсем не одно и тоже.
В конфиге все стандартно.
Ну, как-то сложно что-то понять с двух слов.
Всё делали по инструкции? Пакет libx264-dev точно установлен?
Да, делал точно по инструкции. Ubuntu 10.04
Мне помогла эта ссылка
по ней сделал и все установилось
Это и есть перевод той самой ссылки. Всё проверенно, всё собирается и ставится. Ну не могло оно не находить libx264, если бы был установлен пакет libx264-dev
При выполнении команды:
hash x264 ffmpeg ffplay
dpkg-deb: ошибка: parsing file ‘/var/tmp/tmp.K5VBSaIYSt/package/DEBIAN/control’ near line 7 package ‘ffmpeg’:
ошибка в строке Version «4:SVN-r26402-1»: номер версии начинается не с цифры
Как с этим бороться.
Ну а что непонятно? Номер версии начинается не с цифры. Значит надо сделать так, чтобы он начинатся с цифры.
Номер версии задаётся тут:
Соответственно, надо указать правильный номер версии. Попробуйте выполнить:
в директории с исходными текстами. Что оно выдаст? И вообще попробуйте просто удалить «SVN-r»:
И так мы видим, что у нас x264 будет собираться с поддержкой всего, что только можно, но ffmpeg сним работать не будет. Теперь что необходимо сделать, что бы обеспечить работу ffmpeg непосредственно именно с собраным нами кодеком. Для этого необходимо конфигурировать x264 со следующими ключами:
Вот, что мы получим при конфигурации кодека с данными ключами:
в принципе вот вам ее содержание:
Да еще одно замечание: Перед сборкой и установкой кодека x264 с динамической библиотекой кодирования libx264.so.*** необходимо снести страрую библиотеку (удалить из системы пакет libx264) иначе команда checkinstall выдаст ошибку и откажется заменять данную билиотеку.
Install and Use FFmpeg on Ubuntu 20.04
This guide will show you how to install and use FFmpeg in Ubuntu 20.04.
Installing FFmpeg in Ubuntu
There are two official ways of installing FFmpeg on Ubuntu: from the Ubuntu repo (v7.x) and from the snap (v4.x). Depending on your needs, you should choose the most appropriate method for you.
It is also possible to compile and install FFmpeg from the source. However, this method is a bit complex and it is recommended not to follow this method unless you have a specific reason to do so.
Installing FFmpeg from Ubuntu Repo
This is the default method for installing FFmpeg. All you have to do is tell APT to grab and install the program from the default Ubuntu software repo.
Fire up a terminal, update the APT cache, and install FFmpeg.
Let us verify whether the installation was successful. First, test the FFmpeg version via the following command:
Do not forget to check the available encoders and decoders. Do so by entering the following command:
Installing FFmpeg from snap
FFmpeg is also available as a snap package. If you do not have snap configured, then you can install it right away by issuing the following command:
Now, your system should be ready to grab and install snap packages from the Snapcraft store. Check out FFmpeg on Snapcraft.
Test out the installation of FFmpeg by entering the following command:
Installing FFmpeg from the Source Code
FFmpeg is an open-source tool. It is therefore possible to manually build this program from the source code. This method is only recommended if you are willing to create a custom build, want to try out the latest version, or wish to test out a bug. For general use, follow the other methods instead to install this program. Check out the official FFmpeg compilation guide for Ubuntu.
Building FFmpeg from the source requires several dependencies. Enter the following commands to download the dependencies:
Now, prepare a dedicated directory for storing the source code and the compiled binary files.
It is now time to prepare some third-party libraries. These are the most common ones used with FFmpeg. If you do not need one or more of these libraries, then skip the relevant part and ignore the associated ./configure option.
You are now ready to start building FFmpeg from the source. Grab the source code by issuing the following:
Update the PATH environment variable and run the configuration script.
During this process, you may encounter the error “gnutls not found using pkg-config.” To solve this problem, a certain package must be present in the system. You can install the relevant package and fix this error by issuing the following command:
Now, run the configuration script again.
Run the make command to start compiling FFmpeg. Use the “-j” flag to run parallel compilation to speed up the process.
You can now install the FFmpeg version that you just built from the source via the following command:
Reload the bash shell to recognize the new FFmpeg binary location.
Test out the FFmpeg installation via the following commands:
Using FFmpeg
After following the steps above, you have now successfully installed FFmpeg. It is time to learn how to use it. This section will show you some of the most common uses of this tool.
First, convert a video file from MP4 to WebM format. The beauty of FFmpeg is that you do not have to specify the input and output formats. FFmpeg will automatically detect the source and target format and act accordingly. Here, the “-hide_banner” flag is used to disable the configuration information that FFmpeg reports on each run.
Let us now take a look at converting audio files. Convert an MP3 to OGG.
When converting files, it is also possible to specify the codec. Use the “-c” flag, followed by the name of any supported encoder/decoder, or a special value copy. For example, you can convert an MP4 into WebM format using the libvpx video codec and libvorbis audio codec.
Similarly, it is also possible to convert the audio format using a specified codec. For example, you can convert an MP3 file to OGG using the libopus codec.
Final Thoughts
FFmpeg is a powerful tool for working with media files. There are plenty of tutorials on various features of FFmpeg and its uses. Feel free to explore more about this amazing tool. Grab a couple of demo media files and practice with them to master FFmpeg. Check out this interesting tutorial on how to transform multiple images into a video file.
Enjoy!
About the author
Sidratul Muntaha
Student of CSE. I love Linux and playing with tech and gadgets. I use both Ubuntu and Linux Mint.
Ubuntu Documentation
The FFmpeg tool and associated libraries (as of Natty, Ubuntu has switched from FFmpeg to the libav fork) is the premier video decoding and encoding system on Linux (and in computing in general).
The ffmpeg tool is a command line program that can be used to encode from one of many dozen codecs/formats into a similar number of other formats. The libraries from the project are available for developers to use in their own programs to provide video codecs, formats, devices, filters, scaling, and post-processing.
Due to patent restrictions for some countries, there are several levels of support for various codecs and formats within Ubuntu’s FFmpeg/libav packages.
Usage
To convert a video, simply run the command «ffmpeg» with four additional parts:
The input part is composed of a «-i» and the name of the video you have that you want to convert to something else. You could have more than one of these input files (each one gets its own «-i») if for example you have a video with an audio track in a seperate file.
The video options are where you specify the codec (with the «-vcodec» option) and bit-rate (with the «-b» option). In addition you can specify a video preset («-vpre») which is essential for x264 encoding, and you can specify a size («-s») with either a standard size reference or the format WIDTHxHEIGTH.
The audio options are where you specify the audio codec («-acodec») and bit-rate («-ab»).
The result could look like:
Two Pass Encoding It is possible to use ffmpeg for two-pass encoding. The important part is to call it twice, once with the «-pass 1» paramater and once it finishes run it a second time with the «-pass 2» paramater. On Ubuntu, you can do a couple additional things on the first pass to speed it up: «-an» specifies that there is no audio codec to be run. «-f» rawvideo keeps it from trying to pack it into a special format, just to throw away. The «-y» /dev/null specifies that the output will go into the special null file, which means that it just disappears instead of having to send data to the hard disk.
That’s the basics to using FFmpeg, not too complicated.
If you want help or more info on using ffmpeg from the command line see the official documentation site.
Lucid Configurations
On Lucid (10.04.2) as of April 13, 2011 running
Gets you the ffmpeg command line application (version 0.5.1) and the following libraries: libavcodec52 libavdevice52 libavfilter0 libavformat52 libavutil49 libpostproc51 libswscale0
In addition the following libraries will be installed (if they aren’t already) to support some of the functionality/codecs. libdc1394-22 libgsm1 libschroedinger-1.0-0 libtheora0 libspeex1 libvorbis0a libvorbisenc2
The complete list of formats and codecs supported by this version is listed at the bottom of this section.
Multiverse
If you then add the multiverse repositorities to your system, you will have available (for manually installing) the «-extra» packages for ffmpeg/libav. These extra packages contain codecs, formats and the like that have restricted distribution under patent law. This includes MP3 encoding with LAME, XviD, AND x264. running
Will get you the additional functionality. It also installs the following external codec libraries: libdirac-encoder0 libfaad2 libmp3lame0 libopenjpeg2 libx264-85 libxvidcore4
The additions to the codecs/formats list are shown at the bottom of this page.
Medibuntu
To get even more codec support you can enable the Medibuntu repository. (See its wiki page for details on how to add this). Current codecs supported is the very popular AAC as well as the OpenCore Adaptive Multi-Rate codecs.
With this repository added, running an
Will enable further codecs by supplying different versions of the «-extra» packages.
The following codec libraries will be downloaded: libfaac0, libopencore-amrnb0, libopencore-amrwb0
The additions to the codecs/formats list are shown at the bottom of this page.
Source Build
You may add additional codecs (such as libvpx/VP8) by following wiki from the forum.
In addition to the listed x264, LAME, and vpx codecs, you can add additional ones by running:
Lucid-Bleed PPA
If you don’t feel like doing the source build, but still want to get the newer version of ffmpeg (including VP8 support) you can upgrade to the Lucid-Bleed PPA. This is equivalent to running the Maverick version with Multiverse enabled. (No medibuntu support for AAC/OpenCore AMR)
Formats
Here is a listing showing the formats and codecs supported by the main version:
The multiverse version adds the following to the codecs section:
The medibuntu version adds the following to the codecs section:
The source version adds:
Precise Configurations
On Precise (12.04) as of Sept, 17 running
Gets you the ffmpeg command line application (part of the libav tools now). Additionally, when running the ffmpeg command, you will see an error from the libav developers that this program is deprecated. That is actually a very politicized question which is open for debate.
The complete list of formats and codecs supported by this version is listed at the bottom of this section.
Universe
If you then add the universe repositorities to your system, you will have available (for manually installing) the «-extra» packages for ffmpeg/libav. These extra packages contain codecs, formats and the like that have restricted distribution under patent law. This includes MP3 encoding with LAME, XviD, AND x264. running
Will get you the additional functionality. It also installs the following external codec libraries: libdirac-encoder0 libfaad2 libmp3lame0 libopenjpeg2 librtmp0 libx264-98 libxvidcore4
The additions to the codecs/formats list are shown at the bottom of this page.
Medibuntu
To get even more codec support you can enable the Medibuntu repository. (See its wiki page for details on how to add this). Current codecs supported is the very popular AAC as well as the OpenCore Adaptive Multi-Rate codecs.
With this repository added, running an
Will enable further codecs by supplying different versions of the «-extra» packages.
The following additional libraries will be downloaded: apport-hooks-medibuntu, libfaac0, libopencore-amrnb0, libopencore-amrwb0
The additions to the codecs/formats list are shown at the bottom of this page.
Source Code
You may get the newest version of everything by following these instructions from the ffmpeg wiki.
In addition to the listed x264, you can add additional ones by running:
Formats
Here is a list of formats available in the main version
The formats available in universe and medibuntu are the same. The following additional are available from the source build.
Codecs
The following codecs are available in main:
The following codec lines have been added in the universe version
The following codec lines have been added in the medibuntu version
The following codec lines are available when building from source
Protocols
The following protocols are available in main:
The following additional protocols are supported by the universe packages
References
FFmpeg (последним исправлял пользователь papibe 2013-02-21 02:20:25)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details