В статье говорится о том, как в операционной системе CentOS 7 установить ffmpeg с основными внешними библиотеками кодеков и запустить трансляцию видеороликов в локальной сети


  • устанавливаем пакеты, необходимые для скачивания и компиляции дистрибутивов
  • yum install bzip2 git gcc libtool automake autoconf gcc-c++ freetype-devel mercurial cmake
  • в папке /etc/yum.repos.d создаем файл nasm.repo следующего содержания
  • [nasm]
    name=The Netwide Assembler
    baseurl=http://www.nasm.us/pub/nasm/stable/linux/
    enabled=1
    gpgcheck=0

    [nasm-testing]
    name=The Netwide Assembler (release candidate builds)
    baseurl=http://www.nasm.us/pub/nasm/testing/linux/
    enabled=0
    gpgcheck=0

    [nasm-snapshot]
    name=The Netwide Assembler (daily snapshot builds)
    baseurl=http://www.nasm.us/pub/nasm/snapshots/latest/linux/
    enabled=0
    gpgcheck=0

  • устанавливаем nasm
  • yum install nasm
  • скачиваем дистрибутив ffmpeg и помещаем его в папку /root/ffmpeg
  • curl -L http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2 | tar xj -C /root
    mv /root/ffmpeg-3.4 /root/ffmpeg
  • скачиваем дистрибутив библиотеки libx264 и выполняем установку
  • git clone --depth 1 http://git.videolan.org/git/x264 /root/ffmpeg/x264
    cd /root/ffmpeg/x264
    PKG_CONFIG_PATH="/opt/ffmpeg/lib/pkgconfig" ./configure --prefix="/opt/ffmpeg" --enable-static
    make
    make install
  • скачиваем дистрибутив библиотеки libfdk_aac и выполняем установку
  • git clone --depth 1 https://github.com/mstorsjo/fdk-aac /root/ffmpeg/fdk-aac
    cd /root/ffmpeg/fdk-aac
    ./autogen.sh
    PKG_CONFIG_PATH="/opt/ffmpeg/lib/pkgconfig" ./configure --prefix="/opt/ffmpeg" --disable-shared
    make
    make install
  • скачиваем дистрибутив библиотеки libmp3lame и выполняем установку
  • curl -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz | tar xz -C /root/ffmpeg
    mv /root/ffmpeg/lame-3.100 /root/ffmpeg/lame
    cd /root/ffmpeg/lame
    ./configure --prefix="/opt/ffmpeg" --disable-shared --enable-nasm
    make
    make install
  • скачиваем дистрибутив библиотеки libx265 и выполняем установку
  • cd /root/ffmpeg
    hg clone https://bitbucket.org/multicoreware/x265
    cd /root/ffmpeg/x265/build/linux
    cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/opt/ffmpeg" -DENABLE_SHARED:bool=off ../../source
    make
    make install
  • скачиваем дистрибутив библиотеки libogg и выполняем установку
  • curl -L http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz | tar xz -C /root/ffmpeg
    mv /root/ffmpeg/libogg-1.3.3 /root/ffmpeg/libogg
    cd /root/ffmpeg/libogg
    ./configure --prefix="/opt/ffmpeg" --disable-shared
    make
    make install
  • скачиваем дистрибутив библиотеки libvorbis и выполняем установку
  • curl -L http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz | tar xz -C /root/ffmpeg
    mv /root/ffmpeg/libvorbis-1.3.5 /root/ffmpeg/libvorbis
    cd /root/ffmpeg/libvorbis
    ./configure --prefix="/opt/ffmpeg" --with-ogg="/opt/ffmpeg" --disable-shared
    make
    make install
  • скачиваем дистрибутив библиотеки libopus и выполняем установку
  • curl -L https://archive.mozilla.org/pub/opus/opus-1.2.1.tar.gz | tar xz -C /root/ffmpeg
    mv /root/ffmpeg/opus-1.2.1 /root/ffmpeg/opus
    cd /root/ffmpeg/opus
    ./configure --prefix="/opt/ffmpeg" --disable-shared
    make
  • скачиваем дистрибутив библиотеки libvpx и выполняем установку
  • git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git /root/ffmpeg/libvpx
    cd /root/ffmpeg/libvpx
    ./configure --prefix="/opt/ffmpeg" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=nasm
    make
    make install
  • выполняем установку ffmpeg
  • cd /root/ffmpeg
    PKG_CONFIG_PATH="/opt/ffmpeg/lib/pkgconfig" ./configure --prefix="/opt/ffmpeg" --extra-cflags="-I/opt/ffmpeg/include" --extra-ldflags="-L/opt/ffmpeg/lib -ldl" --pkg-config-flags="--static" --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libx264 --enable-nonfree --enable-libmp3lame --enable-libx265 --enable-libopus --enable-libvorbis --enable-libvpx
    make
    make install
  • для запуска трансляции файла выполняем следующую команду
  • /opt/ffmpeg/bin/ffmpeg -re -i /root/1.mp4 -vcodec copy -acodec copy -f mpegts udp://239.116.29.1:23790
  • Замечание: на момент написания статьи наиболее стабильно просмотр трансляций осуществлялся в программе SMPlayer и когда при этом видео и аудио в транслируемых файлах были сжаты с использованием кодеков AVC и AAC соответственно
  • извлечь определенную часть файла можно командой
  • /opt/ffmpeg/bin/ffmpeg -i src.mp4 -ss 00:10:00 -to 00:15:00 -vcodec copy -acodec copy dst.mp4

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