CentOS安装ffmpeg+h264
CentOS安装ffmpeg+h264
前言
坑!坑!坑! 全是坑。
本文安装系统环境为CentOS7.2。我这里提供安装所需的四个源码包,均需要编译安装。所有组件最好都安装最新的稳定版,或者下载使用同代一版本。
链接:https://pan.baidu.com/s/1J6woNlr78K01wjvFTwRcpA
提取码:w5zu
一、安装依赖
安装一些所需要的基础命令,以及编译工具。
yum -y install gcc automake autoconf libtool make gcc gcc-c++ bzip2 xz
二、安装nasm
各版下载本地址:Index of /pub/nasm/releasebuilds
2.1 上传nasm源码包并解压
上传源码包至/usr/local
目录下,并解压
#解压
# cd /usr/local
# tar xvf nasm-2.13.tar.gz
2.2 编译安装nasm
#进入解压后的目录
# cd /usr/local/nasm-2.13
#配置编译,不需要指定编译位置,保持默认即可
# ./configure
# make
# make install
编译安装完成后,会在/usr/local/bin
下生对应的成可执行程序
三、安装yasm
各版本下载地址:Index of /projects/yasm/releases/
3.1 上传yasm源码包并解压
上传源码包至/usr/local
目录下,并解压
#解压
# cd /usr/local
# tar zxvf yasm-1.3.0.tar.gz
3.2 编译安装yasm
#进入解压后的目录
# cd /usr/local/yasm-1.3.0
#配置编译,不需要指定编译位置,保持默认即可
# ./configure
# make
# make install
编译安装完成后,会在/usr/local/bin
下生成对应的可执行程序
四、安装x264
这个一定要先于ffmpeg安装,否则会安装报错,或者在使用中报错。
官网下载地址:https://www.videolan.org/developers/x264.html
4.1 上传x264源码并解压
上传x264源码包至/usr/local
目录下,并解压
#解压
# cd /usr/local
# tar -jxvf x264-master.tar.bz24.2
4.2 编译安装x264
#进入解压后的目录
# cd /usr/local/x264-master
#编译安装,这里之指定安装路径,方便ffmpeg安装时加载x264
# mkdir /usr/local/x264
# ./configure --prefix=/usr/local/x264 --enable-shared --enable-static --disable-asm
# make
# make install
编译安装完成后,会在/usr/local/x264
目录下生成相关文件
4.3 添加环境变量
在/etc/profile
文件末尾添加关于x264的环境变量
# vim /etc/profile
#在文件末尾添加
export PATH=/usr/local/x264/bin:$PATH
export PATH=/usr/local/x264/include:$PATH
export PATH=/usr/local/x264/lib:$PATH
五、安装ffmpeg
各版本下载地址:http://ffmpeg.org/download.html
5.1 上传ffmpeg源码包并解压
上传ffmpeg源码包至/usr/local
目录下,并解压
#解压
# cd /usr/local
# xz -d ffmpeg-4.3.1.tar.xz
# tar xvf ffmpeg-4.3.1.tar
5.2 编译安装ffmpeg
#进入解压后的目录
# cd /usr/local/ffmpeg-4.3.1
#编译安装,也指定安装路径,方便后期管理
# mkdir /usr/local/ffmpeg
# ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib
# make -j4
# make install
5.3 修改配置文件
`/etc/ld.so.conf` 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。默认情况下,编译器只会使用`/lib`和`/usr/lib`这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定`--prefix`会将库安装在`/usr/local`目录下,而又没有在文件`/etc/ld.so.conf`中添加`/usr/local/lib`这个目录。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。
对于此种情况有2种解决办法:
- 在用源码安装时,用
--prefix
指定安装路径为/usr/lib
。这样的话也就不用配置PKG_CONFIG_PATH
- 直接将路径
/usr/local/lib
路径加入到文件/etc/ld.so.conf
文件的中。在文件/etc/ld.so.conf
中末尾直接添加:/usr/local/lib
(推荐该方法!)
# vim /etc/ld.so.conf
#在文件末尾加上
/usr/local/ffmpeg/lib
/usr/local/lib
/usr/local/x264/lib
#让配置生效
# ldconfig
5.4 设置软连接
设置软连接和设置环境变量目的是一样的,这里我采用设置软连接
# ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
# ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/
设置环境变量的方法我也加上,设置环境变量和设置软连接二选其一即可
使用 vim /etc/profile命令打开profile文件,在文件末添加环境变量:
# vim /etc/profile
#在文末添加以下内容
#set ffmpeg environment
PATH=$PATH:/usr/ffmpeg/bin
export PATH
六、测试安装成果
一个简单的命令查看安装是否成功,ffmpeg -version
查看输出结果。
七、踩坑
7.1安装顺序,严格按照本文顺序安装,x264一定要在安装ffmpeg之前安装。
7.2 error while loading shared libraries: libx264.so.138
报错: ./ffmpeg: error while loading shared libraries: libx264.so.138: cannot open shared object file: No such file or directory
出现这个错误参考本文5.3,可能是so库没有正常加载。在/etc/ld.so.conf
中添加/usr/local/x264/lib
,添加后保存文件执行命令ldconfig
使命令生效
7.3 error while loading shared libraries: libavdevice.so.57
ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
一般情况下出现.so.xxx
找不到的问题,要么真的没有这个,要么是安装了但是系统找不到,参照5.3。
暂时先写这么多,以后碰到持续更新。
CentOS安装ffmpeg+h264的更多相关文章
- centos 安装 ffmpeg
使用yum方式安装ffmpeg: 先安装Nux Dextop仓库: Nux Dextop库依赖于EPEL库,所有要先安装EPEL库(需要管理员权限). 如果安装过则跳过. $ su root $ yu ...
- centos 安装ffmpeg
wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz tar -zxvf ffmpeg-3.1.tar.gz cd ffmpeg-3.1 ./co ...
- Centos安装ffmpeg
yum install -y ffmpeg 使用上面的命令安装却出现以下问题: Google后发现缺少一些扩展: wget https://download1.rpmfusion.org/free/e ...
- CentOS 6/7安装ffmpeg
环境 CentOS 6/7 安装 导入GPG key rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms 安装ATRPMS Repo ...
- <亲测>CentOS中yum安装ffmpeg
CentOS中yum安装ffmpeg 1.升级系统 sudo yum install epel-release -y sudo yum update -y sudo shutdown -r now 2 ...
- CentOS中yum安装ffmpeg
1.升级系统 sudo yum install epel-release -y sudo yum update -y sudo shutdown -r now 2.安装Nux Dextop Yum 源 ...
- CentOS下yum安装FFmpeg
一.yum安装FFmpeg 1. 最偷懒的方式就是yum安装了,自动解决依赖.不过CentOS系统默认无FFmpeg源,企业版 Linux 附加软件包EPEL源也不包含,需要手动添加yum源配置 ...
- linux(centos)下安装ffmpeg
[备忘]windows环境下20行php代码搞定音频裁剪 上次我的这篇文章将了windows下web中如何操作ffmpeg的文章,这里则记录下linux(centos)下的安装 首先:我花了中午大概1 ...
- 阿里云服务器---centos编译安装ffmpeg
环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...
随机推荐
- MzzTxx——博客目录
准备阶段 团队介绍 需求分析 技术规格说明书 功能规格说明书 Alpha 阶段任务分配 团队贡献分分配方案 Scrum Meeting Alpha 2021.04.21 Scrum Meeting 0 ...
- Pytorch_Part7_模型使用
VisualPytorch beta发布了! 功能概述:通过可视化拖拽网络层方式搭建模型,可选择不同数据集.损失函数.优化器生成可运行pytorch代码 扩展功能:1. 模型搭建支持模块的嵌套:2. ...
- Promise解析(待完成)
Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来.避免了多级异步操作的回调函数嵌套. 1.主要用于异步计算 2.可以将异步操作队列化,按 ...
- SpringBoot系列——事件发布与监听
前言 日常开发中,我们经常会碰到这样的业务场景:用户注册,注册成功后需要发送邮箱.短信提示用户,通常我们都是这样写: /** * 用户注册 */ @GetMapping("/userRegi ...
- 动态内存:delete作用于空指针
在学习<C++primer 第五版>(中文版)中第12章动态内存与智能指针的时候遇到了一个习题,练习12.13: 练习 12.13:如果执行下面的代码,会发生什么? auto sp=mak ...
- 5.配置IP
静态IP配置 1.NAT模式设置 首先设置虚拟机中NAT模式的选项,打开VMware,点击"编辑"下的"虚拟网络编辑器",设置NAT参数 注意: VMware ...
- redis分布式锁-可重入锁
redis分布式锁-可重入锁 上篇redis实现的分布式锁,有一个问题,它不可重入. 所谓不可重入锁,即若当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞. 同一个 ...
- 原生JS和jQuery创建元素的方法
jQ创建元素的方法 1.原生代码 .creatElement('tr')` .innerHTML = '<h1>加油</h1>' document.write('<h1& ...
- QT发布 - 动态编译,删减以来dll
经常看到网上有些论调说 Qt 程序无比庞大,甚至拿 .NET 程序来比,说 Qt 程序打包以后跟 .NET 安装包差不多大.由此影响了很多人对 Qt 的选择.我觉得有必要对此做一些澄清-- 显然这个说 ...
- netperf对比
netperf -H 10.1.60.141 -t TCP_STREAM -l 60 -p 10082 netperf -H 10.1.60.141 -t UDP_STREAM -l 60 -p ...