Linux下ffmpeg的环境搭建与安装

背景

【FFmpeg是什么】
1· FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源软件。采用LGPL或GPL许可证,提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。
2· FFmpeg一个领先的多媒体框架,具备解码,编码,转码,复用,解复用,流式传输,滤镜和播放等能力。
3· 它包含可供应用程序使用的libavcodec,libavutil,libavformat,libavfilter,libavdevice,libswscale和libswresample。 以及最终用户可用于转码和播放的ffmpeg,ffplay和ffprobe。
4· 哪些软件在用FFmpeg? FFmpeg的用户有Google,Facebook,Youtube,VLC,优酷,爱奇艺,土豆,Mplayer,射手播放器,暴风影音,KMPlayer,QQ影音,格式工厂,狸窝视频转换器,暴风转码等。
【FFmpeg的基本组成】
libavutil:工具库,如:随机数发生器。
libavcodec:音视频编解码库。
libavformat:封装格式处理库,包含格式封装、多媒体复用和解复用,包括获取解码
所需信息以生成解码上下文结构和读取音视频帧等功能
libavdevice:一个包含输入和输出设备的库,用于从许多常见的多媒体输入/输出软
件框架中获取和渲染,包括Video4Linux,Video4Linux2,VfW和
libavfilter:多媒体滤镜
libswscale:缩放和颜色空间转换的库
libswresample:音频重采样、格式转换的库
ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等
ffsever:一个 HTTP 多媒体即时广播串流服务器;
ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

获取FFmpeg源码包

有两个途径可以获取:
1. ffmpeg官方网站:http://www.ffmpeg.org/
在官网找到需要的版本,我选用的是 FFmpeg 3.4.4 “Cantor” 版本,因为最新版本没有ffserver。然后在Linux 执行下载、解压命令:

[root@localhost heijunma]# wget http://www.ffmpeg.org/releases/ffmpeg-3.4.4.tar.gz
[root@localhost heijunma]#tar -zxvf ffmpeg-3.4.4.tar.gz

解压后可以查看ffmpeg的第一级目录结构:

每个目录的结构后面再讲
2. github开源社区地址:
git://source.ffmpeg.org/ffmpeg.git

可以用git将代码fork到本地,当然使用git之前请先安装git版本控制工具,需要根据自己的系统来安装对应的版本,Linux的架构信息可以由 uname -a 获取

[heijunma@localhost github]$ uname -a
Linux localhost.localdomain 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20:46:41 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

经查询得知系统是x86_64。因此我们需要安装git.x86_64版本,执行如下命令安装git版本控制工具

[root@localhost github]# yum install git.x86_64 -y

安装好之后,新建一个git工程目录,然后git初始化,全局配置用户名和邮箱,需要与Github相同:

[root@localhost github]# git init
Initialized empty Git repository in /home/heijunma/ffmpeg-3.4.4/github/.git/
[root@localhost github]#git config --global user.name "SugarWilliam"
[root@localhost github]#git config --global user.email "276190191@qq.com"
[root@localhost github]#git config --list
user.name=SugarWilliam
user.email=276190191@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

这样就初始化完成了,接着我们在github上clone一个ffmpeg3.4.4版本仓库到本地
登录你自己的GitHub账户(需要自己申请),进入https://github.com/FFmpeg/FFmpeg/branches 查看不同版本分支,选择release/3.4分支直接进行源码clone

[root@localhost github]# git clone -b release/3.4 https://github.com/FFmpeg/FFmpeg.git

配置与编译ffmpeg

进入到ffmpeg目录开始配置ffmpeg

[heijunma@localhost ffmpeg-3.4.4]$ ./configure --enable-ffplay --enable-ffserver

此时可能会出现错误信息打印:

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.

这是由于 asm版本是旧的或者没有asm,因此需要安装或者更新,执行如下命令:

[root@localhost ffmpeg-3.4.4]# yum install yasm.x86_64 -y

安装完成后继续配置和编译ffmpeg,把ffplay和ffserver打开,configure 主要是配置编译项并且扫描环境是否有依赖缺失,如果configure执行顺利,会在当前目录下生成一个makefile用于编译,这也是Linux下源码编译安装软件的一般流程。

[root@localhost ffmpeg-3.4.4]# ./configure --enable-ffplay --enable-ffserver

接着编译并安装:

[root@localhost ffmpeg-3.4.4]# make;make install

编译完成后会在当前目录下生成ffplay\ffserver\ffprobe\ffmpeg等可执行文件:

ffmpeg安装目录如下,这是配置的时候默认的目录,可以在配置的时候执行如下命令:

[root@localhost ffmpeg-3.4.4]#./configure --prefix=PREFIX //安装到指定目录
[root@localhost bin]# cd /usr/local/bin/
[root@localhost bin]# ls
ffmpeg  ffplay  ffprobe  ffserver  sdl2-config  vsyasm  yasm  ytasm


可以看到ffmpeg\ffplay\ffserver\ffprobe 都已经安装好了,因此可以直接以命令的方式执行和使用,而且我们可以看到这里还安装了其他的一些我么自己安装的软件例如 yasm 、SDL等。

ffmpeg 初体验

1. ffmpeg 转码工具的使用:
在ffmpeg下建立一个resource文件夹,然后拷贝一个MP3,一个mp4测试文件到该目录用于调试
例如

- 然后执行如下命令:
- 这里没有配参数,使用的是默认参数,当然自己也可以配置指定参数

ffmpeg -i I_Am_You.mp4 I_Am_You.avi


- 上图是转换过程,从转换过程可以看出一些细节;例如MP4封文件中,视频编码格式是YUV420P,分辨率是1280x720,音频格式是ac3(全称Audio Coding3音频编码3)杜比数码压缩,码率192kb/s、采样率48KHz,声道为立体声。
- 如此就完成了MP4转成了AVI

当然我们可以播放AVI文件验证一下是转换后否可以播放。

以上为ffmpeg的安装与环境搭建,接下来将要运行ffsever\ffplay\ffprobe。

Linux 下ffmpeg的环境搭建与安装相关推荐

  1. Linux下服务器基本环境搭建步骤详解(三种软件安装方式)

    Linux下服务器基本环境搭建 小伙伴们注意看:下面使用三种方式分别安装JDK.Tomcat.Docker进行演示 操作系统基于CentOs7. 文章目录 Linux下服务器基本环境搭建 前言 一.L ...

  2. 嵌入式Linux下的Qt环境搭建

    嵌入式Linux下的Qt环境搭建 本文介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试 一.tslib编译 要想Qt 支持触摸需要编译 tslib ,以生成触摸相关插件. t ...

  3. Linux下Java开发环境搭建

    最近刚开始玩Linux,搞开发搭建环境是第一步,于是总结了这篇Linux下Java开发环境搭建的博客,记录一下我爬过的坑. 一.JDK的下载 jdk8官方下载地址:http://www.oracle. ...

  4. [xbttracker] linux 下 xbt tracker环境搭建(ubuntu)

    系统环境:Ubuntu x64 20.04 操作系统:win10 xbt源码:  https://github.com/dangwei-90/xbt 参考文档:http://xbtt.sourcefo ...

  5. linux看火狐的安装目录,linux下firefox+geckodriver环境搭建

    2.将Firefox-latest-x86_64.tar.bz2拷贝到linux环境下 3.执行 tar -xjvf Firefox-latest-x86_64.tar.bz2 解压安装文件,.删除系 ...

  6. 基于LINUX下ESP_IDF开发环境搭建安装问题总结

    我的个人博客更多问题:https://blog.hinuohui.com/ 我也是第一次使用LINUX在LINUX下使用交叉编译,也遇到了很多的疑难杂症,我通通总结到本文 ESP_IDF官方参考文档: ...

  7. linux下python开发环境搭建_linux下python开发环境之二——安装Eclipse+PyDev

    Eclipse是由java开发的,所以要想让Eclipse跑起来就得安装jdk,在命令行里输入javac就能查看本机是否已经安装好了jdk了. 1.安装jdk 先从oracle官网上下载jdk,放到/ ...

  8. 【linux 下C语言环境搭建】GCC安装和make安装

    Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具.本教程毫不犹豫地使用GCC来编译C程序. ...

  9. windows下ffmpeg+nginx-rtmp环境搭建及opencv+ffmpeg+python实现拉流和rtmp直播推流

    由于工作需要最近在研究rtsp拉流与直播推流的问题,目前先在我本机上进行了实验,本博客记录学习的内容,包含windows下ffmpeg.nginx-rtmp环境搭建及opencv+ffmpeg+pyt ...

最新文章

  1. 使用Nginx实现服务器反向代理和负载均衡
  2. sm缩写代表什么意思_pe、PE在电气有代表什么意思,你发现没有,电气技术很有意思...
  3. 数据采集工具Telegraf:简介及安装
  4. HBase权威指南 高清中文版 PDF(来自linuxidc)
  5. Python练习:用户登录(三次机会)
  6. centos6.5 安装python3.5
  7. 5G 还未商用,6G 研究已开始?!
  8. 一看就懂ReactJS
  9. 使用Python在指定文件夹新建一个文本文档(其他类型文件也可)
  10. 这份好用视频拼接的软件干货分享,值得收藏
  11. MWC - 飞控套件CRIUS MWC MultiWii SE v2.6组装
  12. 两个通宵熬出来的互联网大厂最新面试题收集整理1000道(三-Memcached),欢迎点赞收藏!!!
  13. Combo Box 组合框
  14. 瑞幸咖啡,不过是又一个“逃离美团者”
  15. setoolkit克隆网站并抓取账号密码
  16. 中国第一台103型电子计算机诞生于,第一台计算机诞生于几年?
  17. Python最简单的文字游戏——数字炸弹
  18. 485与232的区别
  19. SpringBoot中cron表达式周一到周五运行设置
  20. TensorFlow : Mac Python3 TensorFlow binary was not compiled to use: AVX2 FMA

热门文章

  1. 21点游戏简单开发(Python)
  2. Ubuntu 18.04安装Node.js最新版
  3. 【解决办法】移动硬盘在电脑上显示“本地磁盘”并且出现打不开的情况
  4. 短视频app源码:yoo视频更名火锅视频,开启长带短新模式
  5. App store苹果商店审核被拒绝总结(uni-app)
  6. 发力新零售,瓜子二手车严选直卖店落地武汉 1
  7. 2019年8月14号抖音更新后单个解析java版源码
  8. 同花顺核下单python_同花顺核新委托下单详解
  9. Oracle表空间_PK是什么意思,Oracle表空间详解
  10. 易到余额闪电提现 是彩蛋还是炸弹