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种解决办法:

  1. 在用源码安装时,用--prefix指定安装路径为/usr/lib。这样的话也就不用配置PKG_CONFIG_PATH
  2. 直接将路径/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的更多相关文章

  1. centos 安装 ffmpeg

    使用yum方式安装ffmpeg: 先安装Nux Dextop仓库: Nux Dextop库依赖于EPEL库,所有要先安装EPEL库(需要管理员权限). 如果安装过则跳过. $ su root $ yu ...

  2. 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 ...

  3. Centos安装ffmpeg

    yum install -y ffmpeg 使用上面的命令安装却出现以下问题: Google后发现缺少一些扩展: wget https://download1.rpmfusion.org/free/e ...

  4. CentOS 6/7安装ffmpeg

    环境 CentOS 6/7 安装 导入GPG key rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms 安装ATRPMS Repo ...

  5. <亲测>CentOS中yum安装ffmpeg

    CentOS中yum安装ffmpeg 1.升级系统 sudo yum install epel-release -y sudo yum update -y sudo shutdown -r now 2 ...

  6. CentOS中yum安装ffmpeg

    1.升级系统 sudo yum install epel-release -y sudo yum update -y sudo shutdown -r now 2.安装Nux Dextop Yum 源 ...

  7. CentOS下yum安装FFmpeg

    一.yum安装FFmpeg 1.    最偷懒的方式就是yum安装了,自动解决依赖.不过CentOS系统默认无FFmpeg源,企业版 Linux 附加软件包EPEL源也不包含,需要手动添加yum源配置 ...

  8. linux(centos)下安装ffmpeg

    [备忘]windows环境下20行php代码搞定音频裁剪 上次我的这篇文章将了windows下web中如何操作ffmpeg的文章,这里则记录下linux(centos)下的安装 首先:我花了中午大概1 ...

  9. 阿里云服务器---centos编译安装ffmpeg

    环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...

随机推荐

  1. 用fseek和ftell获取文件的大小

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char ...

  2. 测试报告$\alpha$

    pytorch可视化编程网站VisualPytorch NAG \(\alpha\)版本发布了!点击网址访问:VisualPytorch 一.测试查虫(bug detection) 测试贯穿了开发.集 ...

  3. ALPHA任务拆解

    项目 内容 这个作业属于哪个课程 BUAA2020软件工程 这个作业的要求在哪里 作业要求 我们在这个课程的目标是 学会团队合作,共同开发一个完整的项目 这个作业在哪个具体方面帮助我们实现目标 团队任 ...

  4. 关于Annotation注解的理解

    在编Java程序的时候,我们经常会碰到annotation.比如:@Override 我们在子类继承父类的时候,会经常用到这个annotation.它告诉编译器这个方法是override父类的方法的. ...

  5. [Java] Spring 原理

    IOC(Inverse of Control)控制反转 依赖对象的获得被反转了,由自己创建变为从IOC容器获取 优点 代码更简介,不需要new对象 面向接口编程,使用者与具体类解耦,易扩展 方便进行A ...

  6. [bug] Scala eclipse:找不到或无法加载主类

    原因 混合java 和scala 无法编译 解决 右键项目 > properties > scala Compiler >勾选Use Project Setting > Sca ...

  7. 在Vim中查看文件编码和文件编码转换

    在Vim中查看文件编码和文件编码转换 风亡小窝 关注  0.2 2016.09.26 22:43* 字数 244 阅读 5663评论 0喜欢 2 在Vim中查看文件编码 :set fileencodi ...

  8. python从hello world开始(3)

    """# !usr/bin/env python# -*- coding:utf-8 _*-""""""@Au ...

  9. 028.Python面向对象继承(单继承,多继承,super,菱形继承)

    一 继承的概念 种类 单继承 多继承 至少两个类: 子类:一个类继承另外一个类,那么该类是子类(也叫作衍生类) 父类:另外一个,这个被继承的类,叫做父类(也叫作超类),object 在python中 ...

  10. LTP--linux稳定性测试 linux性能测试 ltp压力测试 ltp-pan

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33710人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...