Перейти к содержимому

Как установить ffmpeg python

  • автор:

Установка FFmpeg

url image

Иногда нужно преобразовать формат файла, например, из jpeg в webp. Для этого существует множество способов. В данной статье рассмотрим способ установки инструмента для преобразования форматов мультимедийных файлов прямо на сервере с ОС Linux. FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер.

Установка в Debian/Ubuntu

Рассмотрим установку FFmpeg в ОС Debian и Ubuntu. Данный способ подойдет для Debian 10, Debian 11, Ubuntu 20.04 и Ubuntu 22.04. Для начала возможно потребуется обновить информацию о пакетах в вашей системе:

# apt update

Далее устанавливаем FFmpeg.

# apt install ffmpeg apt-get install ffmpeg

Видим, что система предлагает установить пакет и зависимости, нажимаем Y (или Д). Дожидаемся окончания установки. Если ошибок нет, проверяем, что FFmpeg установлен:

# ffmpeg --version ffmpeg version 4.3.5-0+deb11u1 Copyright (c) 2000-2022 the FFmpeg developers …

Установка в CentOS/AlmaLinux/RockyLinux

CentOS 7

Для установки FFmpeg на CentOS 7 потребуются сторонние репозитории. Для начала включим репозиторий EPEL:

# yum install epel-release

Далее необходимо включить репозиторий Fusion:

# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm

И установим FFmpeg со всеми необходимыми пакетами:

# yum install ffmpeg ffmpeg-devel

Подтверждаем установку пакета и всех зависимостей, а также импорта GPG ключей кнопкой Y. Дожидаемся окончания установки и проверяем:

# ffmpeg --version ffmpeg version 3.4.12 Copyright (c) 2000-2022 the FFmpeg developers …

AlmaLinux 8/RockyLinux 8/AlmaLinux 9/RockyLinux 9

В современных rpm-based ОС используем пакетный менеджер dnf. Для начала, также, как и в CentOS 7, подключаем репозиторий EPEL и необходимый для дальнейшей работы пакет dnf-utils:

# dnf -y install epel-release dnf-utils

Включаем репозиторий PowerTools:

# dnf config-manager --set-enabled powertools

И устанавливаем FFmpeg:

# dnf install ffmpeg
# fmpeg --version ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers …

В AlmaLinux 9 и RockyLinux 9 могут возникнуть проблемы с вышеуказанными репозиториями, поэтому есть альтернативный способ:

# dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm # dnf update -y # dnf install ffmpeg ffmpeg-devel
# fmpeg --version

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

Посмотреть поддерживаемые форматы можно командой:

# ffmpeg -formats

Чтобы посмотреть кодировщики, используйте команду:

# ffmpeg -encoders

Чтобы посмотреть список декодеров, используйте команду:

# ffmpeg -decoders

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

# man ffmpeg

Рассмотрим несколько примеров использования FFmpeg. Предварительно перейдите в директорию с файлом с помощью cd /путь_до_файла/ , чтобы не писать в командах полный путь до файла. Используйте флаг i, чтобы получить информацию о медиа файле:

# ffmpeg -i file.mp4

Конвертирование файла из mp4 в современный легковесный формат webm (old_file.mp4 — текущий файл, new_file.webm — новый файл):

# ffmpeg -i old_file.mp4 new_file.webm

База знаний
FirstDedic

Статья давно не обновлялась, поэтому информация могла устареть.

FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер.

Debian

# apt-get install ffmpeg

Установка модуля ffmpeg для PHP:

# apt-get install php5-ffmpeg

После установки нужно перезапустить Apache и проверить наличие подключенного модуля ffmpeg:

# /etc/init.d/apache2 restart
# php -i | grep ffmpeg /etc/php5/cli/conf.d/20-ffmpeg.ini, ffmpeg ffmpeg-php version => 0.6.0-svn ffmpeg-php built on => Apr 6 2012 16:24:10 ffmpeg-php gd support => enabled ffmpeg libavcodec version => Lavc53.35.0 ffmpeg libavformat version => Lavf53.21.0 ffmpeg swscaler version => SwS2.1.0 ffmpeg.allow_persistent => 0 => 0 ffmpeg.show_warnings => 0 => 0

Centos

Установка ffmpeg

Centos 6

Импортируем и устанавливаем нужные репозитории:

# rpm --import https://raw.githubusercontent.com/example42/puppet-yum/master/files/CentOS.6/rpm-gpg/RPM-GPG-KEY.atrpms # rpm -Uvh https://www.mirrorservice.org/sites/dl.atrpms.net/el6.7-x86_64/atrpms/stable/atrpms-repo-6-7.el6.x86_64.rpm 

Устраняем ошибки в импортируемых репозиториях

# sed -i 's,http://dl,https://www.mirrorservice.org/sites/dl,' /etc/yum.repos.d/atrpms*.repo
# yum install ffmpeg ffmpeg-compat ffmpeg-compat-devel ffmpeg-devel ffmpeg-libs

Centos 7

Импортируем и устанавливаем нужные репозитории:

# vi /etc/yum.repos.d/atrpms.repo

Приводим к такому ввиду:

#baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable baseurl=https://www.mirrorservice.org/sites/dl.atrpms.net/el$releasever-$basearch/atrpms/stable 
# yum install ffmpeg ffmpeg-compat ffmpeg-compat-devel ffmpeg-devel ffmpeg-libs

Установка php-ffmpeg

Установите git и скачайте исходные тексты расширения ffmpeg-php

(или же можно просто зайти на https://github.com/tony2001/ffmpeg-php и справа скачать zip-файл архива данного репозитория, после чего распаковать и собирать его) Установите пакет для сборки расширений php

Установите пакет для сборки расширений php

# yum install php-devel gcc

Скопилируйте и установите расширение

# cd ffmpeg-php # phpize # ./configure # make && make install

Отредактируйте файл php.ini:

# vim /etc/php.d/ffmpeg.ini

Добавляем следующую строку:

extension=ffmpeg.so

Проверяем наличие подключенного модуля ffmpeg и перезапускаем apache

# php -i | grep ffmpeg ffmpeg
# /etc/init.d/httpd restart
# systemctl restart httpd

Инструкция по установке и работе с программой FFMPEG на Windows

Программа 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

pymxzcqr6dy

zgakvfxg9la

3. Извлекаем файл «ffmpeg.exe» в заранее созданную папку «ffmpeg» на корневом диске (как правило, это диск «C»);

fmdibh4iqxe

y81jsa6nx-m

4. Далее заходим в проводник (иконка «лупа») и находим «Мой компьютер». Нажимаем на него правой кнопкой мыши и выбираем «свойства», после чего появится следующее окно:

y8h_zk7bq_m

%d0%b1%d0%b5%d0%b7%d1%8b%d0%bc%d1%8f%d0%bd%d0%bd%d1%8b%d0%b9

5. Нажимаем на «Дополнительные параметры системы» и заходим в «переменные среды»;

kg0byuk-jh0

6. Находим в окошке «системные примененные» пункт «Path», нажимаем «изменить»;

uu7ln5kvcqq

7. В появившемся окне нажимаем на кнопку «создать» и указываем путь к файлу ffmpeg. Для этого переходим в папку с ffmpeg и кликаем на строчку, выделенную красным (см. на картинке), после чего нажмите сочетание клавиш Ctrl+C;

alsokr3uyce

tsw5ewb0cv0

8. После того, как нажали клавишу «Создать» (1), вставляем скопированное в строку (2) и нажимаем на «Ок» (3).

6swtiav37ug

Шаг №3. Запускаем программу

1) Если вы используете ОС Windows10, то вам достаточно нажать на значок «поиск»(лупа) и ввести английскими буквами «cmd»:

80vzrx8dcwi

(Прим. Если же Вы используете более ранние версии Windows (7,8), то Вам нужно зайти в меню «пуск» и строка «поиск» будет в самом низу).

2) Далее, заходим в командную строку и проверяем – работает ли программа. Для этого вводим: ffmpeg, после чего нажимаем кнопку Enter. Если Вы всё сделали правильно, у Вас будет примерно следующий отклик в командной строке:

aqd8fvhao8w

(Прим. Если же у Вас появляются строки красного цвета, то вероятно – Вы сделали что-то не так. Попробуйте повторить алгоритм по новой).

Шаг №4. Используемые файлы

Для начала работы с видео-файлом необходимо, чтобы файл находился в директории доступных дисков. Например: имеется видео-файл «Testovii File.mp4». Я расположил его прямо на диск D.

adewyi-9jq

Таким же образом разместите остальные файлы, с которыми вы собираетесь работать в ffmpeg.

Либо, если не хотите перетаскивать файл, вам нужно будет скопировать путь к файлу(об этом позже).

(Прим. Рекомендуется использовать английские буквы в названии файлов, с которыми собираетесь работать)

Теперь с файлами можно работать.

Запускаем командную строку. Как правило, по умолчанию в командной строке указан путь к корневой папке, например:

mtnqxyasbxi

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

После чего нажимаем Enter и видим, что теперь у нас отображается Диск D:

5ru6wyjoyvu0c4bdd1ycay

Теперь мы можем начать работать с файлами. Любая команда начинается со слова ffmpeg в строке:

yfzwtulib1g

Далее будет представлен ряд простых команд, где input.mp4 – название исходного видео-файла; input.mp3 – название исходного аудио-файла; output.format – название полученного файла; а ключ «–i» -это то, что необходимо прописывать перед обрабатываемым файлом (input.mp4/input.mp3).

Шаг №5. Основные команды

1) Для того, чтобы перевести видео в другой видеоформат:

ffmpeg –i Z\input.avi output.mp4

(Прим. – Z\ — путь к файлу input.avi, пример: выбираем нужный файл в папке (1), кликаем на него, затем кликаем на строку с его расположение (2), и копируем правой кнопкой мышки; также следует помнить, что при попытке форматирования из более легкого файла(Mp4) в более тяжелый(avi) – полученный файл будет в более плохом качестве)

2) Для того, чтобы перевести видео в аудио:

ffmpeg –i Z\input.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) – замедление)

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) Для того, чтобы изменить параметр «качество»:

ffmpeg -i input.avi -q X output.avi

(Прим. X от 23 до 50, где 50 – минимальное качество; данная опция помогает уменьшить размер файла)

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 страниц со всевозможными командами, призванными проводить манипуляции с видео\аудио-файлами, которыми, как правило, пользуются продвинутые пользователи.

Мы же предоставили краткий мануал по основным возможностям, и надеемся, что этот материал окажется полезным для наших пользователей!

Пережатие видео в папке при помощи Python скрипта и конвертера FFmpeg

Многие знают что существует пакет утилит FFmpeg, которым можно воспользоваться для пережатия и конвертации видео-файлов. Чтобы сконвертировать файл из одного формата в другой достаточно указать несколько ключей, путь к исходному файлу, путь к выходному и выполнить это в командной строке. Если файлов много, они лежат в подкаталогах и т.п. то можно написать скрипт. Я покажу пример как это можно сделать на python.

Этот пример демонстрирует такие технологии:

  • Использование утилиты ffmpeg.exe и ключей для выполнения конвертации в заданный формат.
  • Рекурсивный поиск файлов в директории с заданным расширением.
  • Выполнение внешней утилиты из python при помощи subprocess.run с передачей параметров.
  • Сохранение информации в лог-файл по мере выполнения скрипта для последующего контроля.
import os import subprocess FFMPEGDIR = 'd:\\Program Files\\ffmpeg\\bin\\' # downloaded from ffmpeg.org BASEDIR = 'd:\\VIDEO\\' # Video files def process_file(srcfile : str): ''' Process the source file ''' print(srcfile) dstfile = os.path.splitext(srcfile)[0] + '.mp4' # Result file extension subprocess.run([FFMPEGDIR + 'ffmpeg.exe', '-i', srcfile, # Source video file '-map_metadata', '0:s:0', # Keep metadata '-c:v', 'libx264', '-s', '960x540', # new resolution '-crf', '27', # Video compress level. Higher - smallest bitrate '-ab', '64K' , # Audio bitrate '-y', # Rewrite if exists dstfile]) return dstfile def process_dirs(d): ''' Process all files in directory and subfolders ''' logfile = open('result.txt', 'a') # log for address, dirs, files in os.walk(d): for fname in files: if (os.path.splitext(fname)[1]).lower()=='.mov': dstfile = process_file(os.path.join(address,fname)) logfile.write(f' :.1fMb\n') logfile.close() # log if __name__ == '__main__': process_dirs(BASEDIR)

Командная строка для конвертации каждого файла выглядит так:

ffmpeg.exe -i srcfile.mov -map_metadata 0:s:0 -c:v libx264 -s 960x540 -crf 27 -ab 64K -y dstfile.mp4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *