linux 编译ffmpeg 支持x264, x265

原址

1. 前言

本教程涉及的ffmpeg, x264, x265


2. 环境依赖

2.1 删除系统中安装的ffmpeg等库
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo apt-get --purge remove ffmpeg mplayer x264 x265  

2.2 安装依赖库
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo apt-get update  
  2. sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \  
  3.   libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \  
  4.   libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev  

注: 服务器版本可忽略

libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev


2.3 下载源代码

(1) ffmpeg

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg  

(2) x264
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <pre name="code" class="plain"><pre name="code" class="plain">git clone git://git.videolan.org/x264.git  
 
 
 
 
 (3) x265 
 
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. hg clone https://bitbucket.org/multicoreware/x265  
 (4) yasm 
 

yasm 是x86平台的一个汇编优化器, 能够加快ffmpeg x264的编译

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz  
  2. tar xzvf yasm-1.3.0.tar.gz  

3. 编译

3.1 配置编译输出目录
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export FFMPEG_PATH="YOUR_PATH"  
  2. export PATH="$FFMPEG_PATH/bin:$PATH"  
例如我输出目录为$HOME/ffmpeg_2.6.3/build_out

那么:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export FFMPEG_PATH="$HOME/ffmpeg_2.6.3/build_out"  

3.1 yasm
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd yasm-1.3.0  
  2. ./configure --prefix="$HOME/"   
  3. make  
  4. make install  
 
 

或者安装已有的库(yasm version ≥ 1.3.0)

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo apt-get install yasm  


3.2 x264

在配置ffmpeg config时需要加入--enable-gpl--enable-libx264

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd x264*  
  2. ./configure --prefix="$FFMPEG_PATH" --enable-shared --enable-static  
  3. make -j4  
  4. make install  
  5. make clean  
或者安装已有的库 (yasm version ≥ 1.3.0)
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo apt-get install libx264-dev  


3.3 x265
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd x265/build/linux  
  2. cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$FFMPEG_PATH" -DENABLE_SHARED:bool=off ../../source  
  3. make -j4  
  4. make install  
  5. make clean  
  6. </tt></span>  
3.4 aac

在配置ffmpeg config时需要加入--enable-libfdk_aac(如果开启--enable-gpl同时需要开启--enable-nonfree )

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. PKG_CONFIG_PATH="$FFMPEG_PATH/lib/pkgconfig" ./configure \  
  2.   --prefix="$FFMPEG_PATH" \  
  3.   --pkg-config-flags="--static" \  
  4.   --extra-cflags="-I$FFMPEG_PATH/include" \  
  5.   --extra-ldflags="-L$FFMPEG_PATH/lib" \  
  6.   --enable-gpl \  
  7.   --enable-libass \  
  8.   --enable-libfaac \  
  9.   --enable-libfreetype \  
  10.   --enable-libmp3lame \  
  11.   --enable-libtheora \  
  12.   --enable-libvorbis \  
  13.   --enable-libx264 \  
  14.   --enable-libx265 \  
  15.   --enable-nonfree \  
  16.   --enable-shared \  
  17.   --enable-postproc \  
  18.   --enable-x11grab \  
  19.   --enable-bzlib \  
  20.   --enable-libxvid \  
  21.   --enable-zlib \  
  22.   --disable-debug   

4. 将ffmpeg添加到环境变量

4.1 将ffmpeg添加到环境变量
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim ~/.bashrc  
在最后添加


[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export FFMPEG_PATH="/home/guohe/workspace/ffmpeg_2.6.3/build_out"  
  2. export PATH="$FFMPEG_PATH/bin:$PATH"  
4.2 添加链接库

编译完成之后调用 ffmpeg 会出现 error while loading shared libraries: xxx

解决这种问题有2中方法:

(1) 修改/etc/ld.so.conf

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim /etc/ld.so.conf  

在最后添加
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. $FFMPEG_PATH/lib  

然后执行

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. sudo ldconfig  

(2) 修改LD_LIBRARY_PATH

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. vim ~/.bashrc  
在最后添加
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_PATH/ib  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值