在Ubuntu Server上編譯FFmpeg

2021-08-02 18:31:50 字數 3116 閱讀 3769

ffmpeg官方給出了詳細的編譯步驟:

本文和官方指南相比,主要在於改進了以下幾處:

編譯的bin目錄不放到某個使用者目錄下,而是放到/opt/bin下面;

以下測試在ubuntu server 14.04下通過。

首先,用apt-get updateapt-get upgrade把系統公升級到最新版,然後,安裝以下軟體包:

apt-get install autoconf automake build-essential libass-dev libfreetype6-dev  libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev lib***lame-dev libopus-dev
ffmpeg依賴的幾個軟體包有個最低版本要求:

yasm >= 1.2.0libx264-dev >= 0.118lib***lame-dev >= 3.98.3libopus-dev >= 1.1

這幾個包在ubuntu 14.04上都符合ffmpeg的要求,所以可以直接用apt-get安裝。如果是其它版本的linux,就需要自己檢查版本。

注意,因為這個ffmpeg是作為伺服器使用的,所以不含ffplay的依賴包。如果想要在桌面使用,還需要安裝以下軟體包:

libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev
先建立如下目錄結構:

/opt

+- ffmpeg_sources/

+- ffmpeg_build/

+- bin/

x265:

fdk-aac:

vpx:

ffmpeg:

依次執行以下命令:

cd /opt/ffmpeg_sources

tar zxvf x265_1.9.tar.gz

cd x265_1.9/build/linux

path="/opt/bin:$path" cmake -g

"unix makefiles" -dcmake_install_prefix="/opt/ffmpeg_build" -denable_shared

:bool=off ../../source

make

make install

make distclean

依次執行以下命令:

cd /opt/ffmpeg_sources

mv v0.1.4.zip fdk-aac-v0.1.4.zip

unzip fdk-aac-v0.1.4.zip

cd fdk-aac-0.1.4

autoreconf -fiv

./configure --prefix="/opt/ffmpeg_build" --disable-shared

make

make install

make distclean

依次執行以下命令:

cd /opt/ffmpeg_sources

tar xjvf libvpx-1.5.0.tar.bz2

cd libvpx-1.5.0

path="/opt/bin:$path" ./configure --prefix="/opt/ffmpeg_build" --disable-examples --disable-unit-tests

path="/opt/bin:$path" make

make install

make clean

最後一步就是編譯ffmpeg了:

cd /opt/ffmpeg_sources

unzip ffmpeg-release-3.0.zip

cd ffmpeg-release-3.0

path="/opt/bin:$path" pkg_config_path="/opt/ffmpeg_build/lib/pkgconfig" ./configure \

--prefix="/opt/ffmpeg_build" \

--pkg-config-flags="--static" \

--extra-cflags="-i/opt/ffmpeg_build/include" \

--extra-ldflags="-l/opt/ffmpeg_build/lib" \

--bindir="/opt/bin" \

--enable-gpl \

--enable-libass \

--enable-libfdk-aac \

--enable-libfreetype \

--enable-lib***lame \

--enable-libopus \

--enable-libtheora \

--enable-libvorbis \

--enable-libvpx \

--enable-libx264 \

--enable-libx265 \

--enable-nonfree

path="/opt/bin:$path" make

make install

make distclean

hash -r

編譯時間很長很長,一切順利的話,在/opt/bin目錄下會編譯出ffmpegffprobeffserver三個程式。最後,建立幾個軟連線,便於任意使用者在任意目錄下直接呼叫ffmpeg:

ln -s /opt/bin/ffmpeg /usr/bin/ffmpeg

ln -s /opt/bin/ffprobe /usr/bin/ffprobe

ln -s /opt/bin/ffserver /usr/bin/ffserver

關於openh323在windows上編譯

剛開始不搞h323,有些不習慣,所以下了個openh323來玩玩.感覺這東西在windows上編譯可真夠煩的.我在http openh323.下了板本,發現,pwlib裡面好多東西不全.沒有pwlib,pwclib這兩個目錄,直接導致後面編譯openphone的時候出問題.於是安了個cvs,從cvs...

ubuntu server上nfs的安裝方法

nfs就是network file system的縮寫,可以通過網路,讓不同的機器 不同的作業系統可以共享彼此的檔案。這個nfs伺服器可以讓pc將網路中的nfs伺服器共享的目錄掛載到本地端的檔案系統中,而在本地端的系統中看來,那個遠端主機的目錄就好像是自己的乙個磁碟分割槽一樣,在使用上相當便利。nf...

ubuntu16 04上Python串列埠程式設計學習1

學習第一課 通過 ubuntu桌面串列埠軟體 cutecom與 程式端的實現串列埠通訊。硬體連線採用2條 usb轉485的線,對連。兩條usb轉485線 t r t r t r t r 查詢從系統啟動到現在串列埠插拔的資訊,顯示串列埠ubuntu連線的埠號 在終端輸入 ubuntu軟體cutecom...