ffmpeg static build with libfdk-aac (Fraunhofer FDK AAC) codec

Проект ffmpeg https://ffmpeg.org/download.html распространяет продукт в бинарном статическом виде на https://www.johnvansickle.com/ffmpeg в виде файла ffmpeg-release-amd64-static.tar.xz

full static build, должно работать под всеми ОС

Он не содержит части кодеков которые могут быть нужны, например, libfdk-aac (Fraunhofer FDK AAC) который используется для кодирования звука мобильными устройствами.

Данное программное обеспечение собрано с опциями:

ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100

Что не включает в себя нужный кодек libfdk-aac и некоторые другие

Также они не раздают build-файлы/скрипты для повторяемой сборки и изменить что-либо или добавить аудио-видео кодек не предоставляется возможным.

Однако, существуют проекты скриптов для компиляции статического файла ffmpeg с дополнительными кодеками благодаря которым можно получить полностью статический бинарный файл ffmpeg без зависимостей

В статье ниже ссылки на уже скомпилированные ffmpeg / ffprobe, рекомендую также смотреть https://dl.ispsystem.info/ffmpeg-static/ так как там могут появляться новые/более актуальные


1. zimbatm не самая свежая, но актуальная и стабильная версия ffmpeg 4 со стабильными кодеками https://github.com/zimbatm/ffmpeg-static

full static build, должно работать под всеми ОС

опции сборки zimbatm (собирать под Ubuntu 18.04, под gcc8 не собирается):

docker run -it ubuntu:bionic bash
apt-get update && apt-get install wget sudo git-core
git clone https://github.com/zimbatm/ffmpeg-static.git
cd ffmpeg-static
./build-ubuntu.sh

cd bin
./ffmpeg 
ffmpeg version db2935c Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/ffmpeg-static/target --pkg-config-flags=--static --extra-cflags=-I/ffmpeg-static/target/include --extra-ldflags=-L/ffmpeg-static/target/lib --extra-libs='-lpthread -lm -lz' --extra-ldexeflags=-static --bindir=/ffmpeg-static/bin --enable-pic --enable-ffplay --enable-fontconfig --enable-frei0r --enable-gpl --enable-version3 --enable-libass --enable-libfribidi --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-nonfree --enable-openssl
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100

Установка сборки zimbatm (рекомендуется как стабильное ПО):

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/zimbatm/bin/ffmpeg 
wget https://dl.ispsystem.info/ffmpeg-static/zimbatm/bin/ffprobe
chmod +x ffmpeg ffprobe

2. markus-perl последняя версия с актуальными аудио- и видеокодеками https://github.com/markus-perl/ffmpeg-build-script (лучше ставить её)

full static build, должно работать под всеми ОС

Опции сборки markus-perl (разработчик рекомендует для сборки Debian 10), пожалуй это самый живой проект и разработчик отвечает на issue (в течение дня по моей просьбе сделал опцию -f для full static build):

docker run -it debian:buster bash
apt-get update && apt-get install build-essential curl g++ git-core
git clone https://github.com/markus-perl/ffmpeg-build-script.git
cd ffmpeg-build-script
./build-ffmpeg -b -f

cd workspace/bin
./ffmpeg
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-openssl --enable-libsrt --disable-debug --disable-doc --disable-ffplay --disable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-static --enable-small --enable-version3 --extra-cflags=-I/ffmpeg-build-script/workspace/include --extra-ldexeflags=-static --extra-ldflags=-L/ffmpeg-build-script/workspace/lib --extra-libs='-lpthread -lm -lz' --pkgconfigdir=/ffmpeg-build-script/workspace/lib/pkgconfig --pkg-config-flags=--static --prefix=/ffmpeg-build-script/workspace
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100

Установка сборки markus-perl (рекомендуется как самое свежее ПО):

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/markus-perl/bin/ffmpeg 
wget https://dl.ispsystem.info/ffmpeg-static/markus-perl/bin/ffprobe
chmod +x ffmpeg ffprobe


3. ffmpeg static для CentOS 7

static build, работает только под centos 7

Собран по мануалу https://trac.ffmpeg.org/wiki/CompilationGuide/Centos в чистом окружении (использовался docker)

docker run -it centos:7 bash
PATH=$PATH:/root/bin

ffmpeg version N-99710-g6965ade Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      56. 60.100 / 56. 60.100
  libavcodec     58.111.101 / 58.111.101
  libavformat    58. 62.100 / 58. 62.100
  libavdevice    58. 11.102 / 58. 11.102
  libavfilter     7. 88.100 /  7. 88.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100

Единственное, что изменено - взят x265_3.2.1.tar.gz,  для решения проблемы отсутствия файла x265.pc https://stackoverflow.com/questions/51918409/compiling-ffmpeg-x265-not-found-using-pkg-config (wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz && tar xf x265_3.2.1.tar.gz && cd x265_3.2.1/build/linux)

Установка сборки ffmpeg для CentOS 7

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/centos7-snapshot-251020/bin/ffmpeg
wget https://dl.ispsystem.info/ffmpeg-static/centos7-snapshot-251020/bin/ffprobe
chmod +x ffmpeg ffprobe

yum install freetype

Комментариев нет:

Отправка комментария