当前位置: 首页 > news >正文

linux 编译x264,Linux 下编译FFmpeg 支持x264, x265

1. 前言

本教程涉及的ffmpeg, x264, x265

2. 环境依赖

2.1 删除系统中安装的ffmpeg等库

sudo apt-get --purge remove ffmpeg mplayer x264 x265

2.2 安装依赖库

sudo apt-get update

sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \

libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \

libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev

注: server版本号可忽略

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

2.3 下载源码

(1) ffmpeg

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

(2) x264

git clone git://git.videolan.org/x264.git

(3) x265hg clone https://bitbucket.org/multicoreware/x265

(4) yasm

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

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

tar xzvf yasm-1.3.0.tar.gz

3. 编译

3.1 配置编译输出文件夹

export FFMPEG_PATH="YOUR_PATH"

export PATH="$FFMPEG_PATH/bin:$PATH"

比如我输出文件夹为$HOME/ffmpeg_2.6.3/build_out

那么:

export FFMPEG_PATH="$HOME/ffmpeg_2.6.3/build_out"

3.1 yasm

cd yasm-1.3.0

./configure --prefix="$HOME/"

make

make install

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

sudo apt-get install yasm

3.2 x264

在配置ffmpeg config时须要增加--enable-gpl和--enable-libx264

cd x264*

./configure --prefix="$FFMPEG_PATH" --enable-shared --enable-static

make -j4

make install

make clean

或者安装已有的库(yasm version ≥ 1.3.0)sudo apt-get install libx264-dev

3.3 x265

cd x265/build/linux

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$FFMPEG_PATH" -DENABLE_SHARED:bool=off ../../source

make -j4

make install

make clean

3.4 aac

在配置ffmpeg config时须要增加--enable-libfdk_aac(假设开启--enable-gpl同一时候须要开启--enable-nonfree )

PKG_CONFIG_PATH="$FFMPEG_PATH/lib/pkgconfig" ./configure \

--prefix="$FFMPEG_PATH" \

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

--extra-cflags="-I$FFMPEG_PATH/include" \

--extra-ldflags="-L$FFMPEG_PATH/lib" \

--enable-gpl \

--enable-libass \

--enable-libfaac \

--enable-libfreetype \

--enable-libmp3lame \

--enable-libtheora \

--enable-libvorbis \

--enable-libx264 \

--enable-libx265 \

--enable-nonfree \

--enable-shared \

--enable-postproc \

--enable-x11grab \

--enable-bzlib \

--enable-libxvid \

--enable-zlib \

--disable-debug

4. 将ffmpeg加入到环境变量

4.1 将ffmpeg加入到环境变量

vim ~/.bashrc

在最后加入

export FFMPEG_PATH="/home/guohe/workspace/ffmpeg_2.6.3/build_out"

export PATH="$FFMPEG_PATH/bin:$PATH"

4.2 加入链接库

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

解决这样的问题有2中方法:

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

vim /etc/ld.so.conf

在最后加入$FFMPEG_PATH/lib

然后运行

sudo ldconfig

(2) 改动LD_LIBRARY_PATH

vim ~/.bashrc

在最后加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_PATH/ib

FFmpeg 的详细介绍:请点这里

FFmpeg 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 现在,该你出场(英雄会刊首语)
  • linux中获取网络时间,linux C++通过ntp协议获取网络时间
  • IT书讯 -- Inside Microsoft SQL Server 2005 Query Tuning and Optimization
  • Linux取消函数折叠,Linux下面对于VIM编辑器的代码折叠使用与screen
  • linux下如何修改终端名称,修改linux终端显示目录和主机名称
  • SQL 2008 T-Prep 之旅
  • 树莓派Linux中文怎样修改,树莓派修改键盘布局和支持中文
  • 计算机基础知识
  • linux中如何输入代码提示错误信息,在linux下代码运行出现段错误,求大神
  • BIEE安装及启动错误的处理(rhel5amp;hpux)
  • 制作linux发行程序,Linux发行版制作过程中的各个步骤
  • 使用screen管理会话
  • linux存储是什么意思,Linux 内存管理中的 RSS 和 VSZ 是什么意思?
  • Microsoft Licenses Flash Lite for Windows Mobile Users
  • HPUX下启动scheduler遇到的问题及解决
  • 4个实用的微服务测试策略
  • Android交互
  • Angular4 模板式表单用法以及验证
  • canvas绘制圆角头像
  • dva中组件的懒加载
  • golang 发送GET和POST示例
  • HTTP--网络协议分层,http历史(二)
  • IndexedDB
  • javascript 总结(常用工具类的封装)
  • MobX
  • Mybatis初体验
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue官网教程学习过程中值得记录的一些事情
  • 编写高质量JavaScript代码之并发
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (30)数组元素和与数字和的绝对差
  • (35)远程识别(又称无人机识别)(二)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (ros//EnvironmentVariables)ros环境变量
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (算法)Travel Information Center
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)c++ std::pair 与 std::make
  • (转)scrum常见工具列表
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .FileZilla的使用和主动模式被动模式介绍
  • .net core Swagger 过滤部分Api
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net操作Excel出错解决
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)