FFmpeg是非常流行的多媒体框架,主要用于音视频的解码、编码、转码、混流、过滤、播放等操作。

2000年,法国著名的程序员Fabrice Bellard创建FFmpeg项目,前两个字母FF是Fast Forward的意思,同时他也发起MPlayer开源多媒体播放器项目。

FFmpeg图标

围绕FFmpeg后续将讲解FFmpeg的命令行操作,使用FFmpeg的API编写程序,深入源码进行分析等,本篇介绍FFmpeg如何安装,以及命令行程序的简单使用。

使用系统为Ubuntu 18.04.4 LTS,采用Ubuntu是因为该系统对于程序员开发十分友好,没有各种软件弹窗,很多日常娱乐的软件也没有。

如果是Mac OS系统,和Ubuntu的安装方法类似,前提需要安装Homebrew程序。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

使用Mac OS中的brew命令代替Ubuntu中的apt命令。

如果是Windows系统,可以参看官方提供的安装指南(https://trac.ffmpeg.org/wiki/CompilationGuide),建议在Windows中使用虚拟机进行学习,也可以使用Docker容器。

操作系统的差异在刚开始的学习时可能比较困扰,但是熟能生巧,三个系统都可以顺利地进行FFmpeg开发,没有必要担心系统的不同而无法学习的情况。

举个简单的例子,刚开始学习java的时候,需要安装JDK,网上有各种版本眼花缭乱。但是在理解JDK的原理之后,无论是哪种环境,都可以很容易地编写和运行java程序。

  1. 安装环境依赖

依赖根据系统而定,必须有最基本的编译工具。

sudo apt install build-essential nasm git cmake
  1. 下载源码

作为非常实用的代码管理工具,git的使用是必备的基础知识,后续将进行讲解。

git clone https://github.com/FFmpeg/FFmpeg
  1. 配置编译选项

除去编译动态库之外,都采用默认配置。

可以通过./configure --help查看具体的配置信息,在没有掌握FFmpeg前不建议进行更多的配置。

./configure --enable-shared
  1. 编译安装

生成Makefile后进行编译。

make

使用默认路径进行安装,install命令将库文件安装在/usr/local/lib/文件夹中,将头文件安装在/usr/local/include/文件夹中。

sudo make install
  1. 验证安装正确性

将FFmpeg库相关信息打印出来。

ffmpeg -version

验证安装正确性

安装之后,系统会带有ffplay,ffmpeg,ffprobe三个程序。

ffplay用于音视频的播放,比如需要播放视频文件。

ffplay test.mp4

注:test.mp4是视频测试文件,也可以任意使用MP3文件进行播放。

播放画面

ffmpeg用于转码、过滤等操作,用法比较多比较复杂,比如将mp4文件转化为avi文件。

ffmpeg -i test.mp4 out.avi

ffprobe用于查看多媒体文件流的相关信息。

ffprobe test.mp4

会显示该文件使用H264格式进行视频编码,使用AAC格式进行音频编码。

以上为FFmpeg的安装和简单的使用,如果碰到问题可以在下面留言,后续的篇章将陆续介绍多媒体相关的知识。

ffmpeg mp4 提取h265命令行_安装FFmpeg多媒体库,以及命令行程序使用介绍相关推荐

  1. FFmpeg之mp4提取/h265(二十五)

    1.提取h264 # ffmpeg -i test.mp4 -vcodec copy -f h264 test.h2642.提取h265 # ffmpeg -i test.mp4 -vcodec co ...

  2. python write 写多行_如何用 Python 执行单行命令

    一般来说,面对日常处理的一些小任务,直接用 sed,grep 之类的就可以搞定,更复杂一点的就会考虑 awk 或者用一些现成的轮子,要是 awk 搞不定我就只好用 Python 了.但有些时候,我仅仅 ...

  3. python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...

    无法使用pip命令安装python第三方库的原因及解决方法 再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以 ...

  4. python中安装一个第三方库的命令格式是-PyCharm 如何安装python第三方库及插件

    一.如何安装python第三方库: 1.有一个专门可下载安装第三方库的网址: http://www.lfd.uci.edu/~gohlke/pythonlibs/ Ctrl+f 搜索要下载的第三方库, ...

  5. 锐捷交换机配置命令大全_锐捷交换机常用配置命令汇总

    给大家分享一下锐捷交换机的配置命令学习一些基础网络知识还是不错的,尤其在视频监控系统中应用一下,还是可以的. 一.连接及远程登录 用一台计算机作为控制台和网络设备相连接,通过计算机对网络设备进行配置. ...

  6. linux安装ffmpeg版本太多,linux 下载及安装ffmpeg

    java项目在压缩视频的时候使用了ffmpeg.exe,在windows系统下可以使用,发布到linux后无法直接调用ffmpeg.exe文件,需要在linux系统下安装ffmpeg.现总结如下: 1 ...

  7. linux回到桌面的命令符_三 基本的base shell 命令

    1.启动shell 进入 /etc/passwd 看到 知道默认的是base shell ctrl+alt+t 或者双击终端,就进入如下图界面: 如果你还是CLI新手,请记住,在输入shell命令之后 ...

  8. linux卸载软件的命令,「Ubuntu命令」常用安装软件和卸载软件包命令

    最近,使用 Windows 10 开启了子系统 Ubuntu .由于没有怎么用过这个系统,很大多命令不大会.所以,收集一下相关的命令.目前使用 Windows 10 子系统 Ubuntu 安装 Pyt ...

  9. 华为命令手册_网络故障排查之tracert命令详解

    1.Tracert简介 Tracert是测试报文从发送端到目的地所经过的路由的方法.它能够直观展现报文在转发的时候所经过的路径.Tracert基于ICMP协议来实现的.当网络出现故障时,用户可以使用T ...

最新文章

  1. C++-Loki Allocator
  2. [转]脏读,不可重复读,幻读的理解
  3. HttpClient异常处理手册
  4. Jmeter_http request的简单设置和应用
  5. TensorFlow 多任务学习
  6. 内存泄漏以及常见的解决方法
  7. 实现手机版和电脑端显示不同的广告代码
  8. java oop入门_java入门(十六) | OOP(三)之构造方法
  9. 日语专业双学位选计算机,湖北师范大学计算机科学与技术(日语双学位)专业2015年在湖北理科高考录取最低分数线...
  10. java做求立方体,Java工具集-数学(立方体操作工具类)
  11. 48小时备考TOGAF经验分享
  12. 使用成捷讯软件制作简单的通信工程预算----以高速4G新建站为例
  13. java记账软件开发_Java项目之家庭记账软件
  14. javassist修炼笔记
  15. 漫画 | 放弃吧,技术分享根本搞不起来!
  16. 给神经网络加入先验知识!
  17. 2019年前端大事件回顾:流年笑掷,未来可期
  18. 台风怎么看内存颗粒_【评测|内存】美光HDIE、GDIE超频测试
  19. HCIP课程笔记-04-HDLC、PPP、GRE
  20. 第一次作业——肖祥英

热门文章

  1. qt label显示图片_qt关于qmovie类的使用
  2. android之http协议编程(源码ppt),Android网络编程(八)源码解析OkHttp中篇[复用连接池]...
  3. 名词用作动词举例_2020考研英语语法全面举例讲解:逻辑意义一致原则
  4. prometheus的搭建与使用
  5. python高级语言设计我是卧底_Python高级应用程序设计任务
  6. java中获取时间6,Java中获取指定日为星期几及其他日期操作(2)
  7. java 数据类型model_如何在角度2中使用类数据类型的ngModel?
  8. 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
  9. 根据字符串选择类并完成类的初始化--方法一
  10. php ajax城市联动,php+ajax 城市联动