[Linux][Multimedia]ffmpeg compile and install

PartI:Linux ffmpeg下载

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg   ;所有的源代码放在这个自创建目录下
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

下载完成,此路径下生成 ffmpeg/目录

 

PartII:Linux ffmpeg编译

参考:https://www.cnblogs.com/jimodetiantang/p/9160183.html

1.安装linux的基础环境

sudo apt-get -y install autoconf automake build-essential libtool libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev

2.安装依赖库
2.1 ffmpeg推荐的依赖开发库(不需要独立安装)

sudo apt-get -y install libass-dev libfreetype6-dev libmp3lame-dev libtheora-dev libvorbis-dev libopus-dev libx264-dev yasm

2.2 ffmpeg桌面应用推荐的依赖开发库(不需要独立安装)

sudo apt-get -y install libva-dev libvdpau-dev libsdl2-dev

2.3 需要独立安装的依赖开发库
2.3.1 安装 fdk-aac

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg
sudo wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.5.tar.gz        
sudo tar -zxvf fdk-aac-0.1.5.tar.gz && mv fdk-aac-0.1.5 fdk-aac                     
cd fdk-aac
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
sudo make
sudo make install
sudo make distclean

2.3.2 安装libvpx

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg
sudo wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.6.1.tar.bz2
sudo tar -jxvf libvpx-1.6.1.tar.bz2 && mv libvpx-1.6.1 libvpx
cd libvpx/
PATH="$HOME/bin:$PATH"
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
PATH="$HOME/bin:$PATH"
sudo make
sudo make install
sudo make distclean

2.3.3 安装x265

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg
sudo apt-get install cmake mercurial
sudo wget https://bitbucket.org/multicoreware/x265/downloads/x265_2.4.tar.gz
sudo tar -zxvf x265_2.4.tar.gz && mv x265_2.4 x265  
cd x265/build/linux
PATH="$HOME/bin:$PATH"
sudo cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
sudo make 
sudo make install
sudo make clean

2.3.4 安装x264

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg
sudo wget  https://download.videolan.org/x264/snapshots/x264-snapshot-20170822-2245-stable.tar.bz2
sudo tar -jxvf x264-snapshot-20170822-2245-stable.tar.bz2 && mv x264-snapshot-20170822-2245-stable x264
cd x264
./configure --prefix="$HOME/ffmpeg_build" --enable-shared --enable-pic
sudo make
sudo make install
sudo make distclean

3. 编译ffmpeg

cd /work/SourceCode/Sourcecode_FFMPEG/sourcecode_ffmpeg
[
;若未下载ffmpeg源码
sudo wget http://ffmpeg.org/releases/ffmpeg-3.3.3.tar.xz
tar -Jxvf ffmpeg-3.3.3.tar.xz && mv ffmpeg-3.3.3 ffmpeg
]
cd ffmpeg
PATH="$HOME/bin:$PATH"
export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
PATH="$HOME/bin:$PATH"
sudo make
sudo make install
sudo make distclean
sudo hash -r

4. FFmpeg代码Debug

./configure \
  --prefix="$HOME/ffmpeg_build/" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-pthreads \
  --enable-debug=3 \
  --disable-optimizations \
  --disable-asm \
  --disable-stripping

注:$HOME/ffmpeg_build 定义出ffmpeg build的目录

5.编译遇到的Error
5.1 在编译x265时遇到/usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)

(1)
# locate libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0
/usr/local/lib/libcurl.so.4
/usr/local/lib/libcurl.so.4.4.0
(2)
# sudo rm -rf /usr/local/lib/libcurl.so.4
(3)
# sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4 /usr/local/lib/libcurl.so.4

5.2 FFmpeg在./configure时遇到:ERROR: x265 not found using pkg-config
参考:https://blog.csdn.net/bengik/article/details/83898403

(1)查看log
#vim ffbuild/config.log
/home/tssh/ffmpeg_build/lib/libx265.a(threading.cpp.o): In function `x265::Thread::start()':
threading.cpp:(.text+0x35): undefined reference to `pthread_create'
/home/tssh/ffmpeg_build/lib/libx265.a(threading.cpp.o): In function `x265::Thread::stop()':
threading.cpp:(.text+0x63): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
ERROR: x265 not found using pkg-config
(2)
在x265/source/common/threading.cpp包含pthread.h
(3)
继续执行  ./configure ...  &&  make && make isntall 完成libx265的编译安装
(4)
完成安装后 在 $(HOME)/ffmpeg_build/lib/pkg-config文件夹下找到x265.pc文件并打开,在Libs.private: -lstdc++ -lm -lrt -ldl后面添加 -lpthread 包含pthread库。
(5)
继续执行既可完成ffmpeg的编译安装

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值