日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

背景說明

項目功能實現需要在linux下編譯出可用的FFmpeg庫。FFmpeg在編譯過程中是需要鏈接其它三方庫的,比如x265 x265等,否則可能會造成功能不全(如程序接口返回找不到H264編碼器錯誤),影響使用。編譯這種三方庫其實理論簡單,但是細節磨人,有時候沒設置好就是會有些莫名其妙的問題。我這里也參考了如零聲學院分享的文檔,結合自己情況總結記錄了份編譯說明,親測有效,使用穩定。甚至可以按步驟無腦復制shell執行,編譯一路綠燈,快速得到完美的FFmpeg庫。

編譯

整體思路就是先把依賴的庫如x264、x265等先配置好,這些庫不是必須的,但是保證庫功能完整性最好都配置好。接下來就是下載FFmpeg源碼,和依賴庫進行配置然后進行編譯,編譯完成庫即可用了。當前環境是 ubuntu18 desktop + ffmpeg 4.2.1

注意

(1)所有操作以我的環境為準,但可以完全按以下步驟依次復制命令執行,因為我是在home目錄是通用的,建議按照此方法。如果想使用自己的路徑要注意修改命令參數,防止路徑不同造成的錯誤

(2)部分庫可能需要連接github,最好選擇網絡較好的機器上編譯

(3)整個安裝過程,基本就是復制命令執行,等待執行結束。。。循環。測試多臺機器編譯過程中均無報錯,正常情況預計用時15分鐘以內,即可完成全部編譯工作

一、創建目錄

在home目錄下創建

ffmpeg_sources:用于下載源文件

ffmpeg_build: 存儲編譯后的庫文件

bin:存儲二進制文件(ffmpeg,ffplay,ffprobe,X264,X265等)

命令:

cd ~ 
mkdir ffmpeg_sources  ffmpeg_build bin

二、安裝依賴

更新軟件信息

sudo apt-get update

安裝需要的組件

sudo apt-get -y install 
  autoconf 
  automake 
  build-essential 
  cmake 
  git-core 
  libass-dev 
  libfreetype6-dev 
  libsdl2-dev 
  libtool 
  libva-dev 
  libvdpau-dev 
  libvorbis-dev 
  libxcb1-dev 
  libxcb-shm0-dev 
  libxcb-xfixes0-dev 
  pkg-config 
  texinfo 
  wget 
  zlib1g-dev

C++音視頻開發學習資料:點擊領取→音視頻開發(資料文檔+視頻教程+面試題)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

完美解決Linux環境編譯ffmpeg庫

 

三、安裝三方庫

安裝一些最常見的第三方庫,默認均以源碼方式安裝。安裝庫所需的命令如下

NASM
部分庫使用到匯編程序。
使用源碼進行安裝

cd ~/ffmpeg_sources && 
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && 
tar xjvf nasm-2.14.02.tar.bz2 && 
cd nasm-2.14.02 && 
./autogen.sh && 
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && 
make && 
make install

Yasm
部分庫使用到該匯編庫
使用源碼進行安裝:

cd ~/ffmpeg_sources && 
wget -O yasm-1.3.0.tar.gz https://www.tortall.NET/projects/yasm/releases/yasm-1.3.0.tar.gz && 
tar xzvf yasm-1.3.0.tar.gz && 
cd yasm-1.3.0 && 
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && 
make && 
make install

libx264

H.264視頻編碼器。更多信息和使用范例參考H.264 Encoding Guide

要求編譯ffmpeg時配置:–enable-gpl --enable-libx264.

使用源碼進行編譯:

cd ~/ffmpeg_sources && 
git -C x264 pull 2> /dev/null || git clone --depth 1 https://gitee.com/mirrors_addons/x264.git && 
cd x264 && 
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && 
PATH="$HOME/bin:$PATH" make && 
make install

libx265
H.265/HEVC 視頻編碼器, 更多信息和使用范例參考H.265 Encoding Guide。
要求編譯ffmpeg時配置:–enable-gpl --enable-libx265.
使用源碼進行編譯:

sudo apt-get install mercurial libnuma-dev && 
cd ~/ffmpeg_sources && 
if cd x265 2> /dev/null; then git pull && cd ..; else git clone https://gitee.com/mirrors_videolan/x265.git; fi && 
cd x265/build/linux && 
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && 
PATH="$HOME/bin:$PATH" make && 
make install

libvpx

VP8/VP9視頻編解碼器。 更多信息和使用范例參考VP9 Video Encoding Guide 。

要求編譯ffmpeg時配置: --enable-libvpx.

使用源碼進行編譯:

cd ~/ffmpeg_sources && 
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git && 
cd libvpx && 
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic && 
PATH="$HOME/bin:$PATH" make && 
make install

libfdk-aac

AAC音頻編碼器. 更多信息和使用范例參考AAC Audio Encoding Guide。

要求編譯ffmpeg時配置:–enable-libfdk-aac ( 如果你已經配置了 --enable-gpl則需要加上–enable-nonfree).

使用源碼進行編譯:

cd ~/ffmpeg_sources && 
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && 
cd fdk-aac && 
autoreconf -fiv && 
./configure CFLAGS=-fPIC --prefix="$HOME/ffmpeg_build"   && 
make && 
make install

libmp3lame
MP3音頻編碼器.
要求編譯ffmpeg時配置:–enable-libmp3lame.
使用源碼進行編譯:

cd ~/ffmpeg_sources && 
git clone  --depth 1 https://gitee.com/hqiu/lame.git && 
cd lame && 
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"  --enable-nasm --with-pic && 
PATH="$HOME/bin:$PATH" make && 
make install

libopus
Opus音頻編解碼器.
要求編譯ffmpeg時配置:–enable-libopus.
使用源碼進行編譯:

cd ~/ffmpeg_sources && 
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && 
cd opus && 
./autogen.sh && 
./configure --prefix="$HOME/ffmpeg_build"  -with-pic&& 
make && 
make install

四、安裝FFmpeg

到這里常見的三方庫默認已經都裝好了,嘮叨下,上面的庫可以不全安裝,但是為了庫的功能全面性,還是別偷懶,畢竟編譯好,可以一直用。下面下載FFmpeg源碼和上面的庫聯合編譯,此過程相對用時久一些,耐心等待

cd ~/ffmpeg_sources && 
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 && 
tar xjvf ffmpeg-4.2.1.tar.bz2 && 
cd ffmpeg-4.2.1 && 
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" CFLAGS="-O3 -fPIC" ./configure 
  --prefix="$HOME/ffmpeg_build" 
  --pkg-config-flags="--static" 
  --extra-cflags="-I$HOME/ffmpeg_build/include" 
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" 
  --extra-libs="-lpthread -lm" 
  --bindir="$HOME/bin" 
  --enable-gpl 
  --enable-libass 
  --enable-libfdk-aac 
  --enable-libfreetype 
  --enable-libmp3lame 
  --enable-libopus 
  --enable-libvorbis 
  --enable-libvpx 
  --enable-libx264 
  --enable-libx265 
  --enable-pic 
  --enable-shared   
  --enable-nonfree && 
PATH="$HOME/bin:$PATH" make && 
make install && 
hash -r

五、安裝完成

到此,整個編譯就完成了。可以去看下最初創建的那三個文件夾,我們最感興趣的是ffmpeg_build,如下圖。
include: 里面是各種頭文件,用來加入到業務項目中引用
lib: 便是心心念的庫,里面有靜態的還有動態的,按自己需求使用

完美解決Linux環境編譯ffmpeg庫

 

還有像ffmpeg ffplay ffprobe等可執行程序,在以上三個文件夾內可以找到,具體位置不在說明。要說明一點是,這里只是編譯出來純粹的庫文件,可以保證庫的質量,但具體的使用需自行配置。

分享到:
標簽:ffmpeg
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定