FFmpeg的下载及其简单使用

FFmpeg的下载及其简单使用

最近需要涉及一个视频格式转换的小任务,其中用到到了ffmpeg,记录一下学习笔记。

在学习的过程中发现了一个神的存在——雷神雷霄骅,可惜天妒英才呀。

1 FFmpeg简介

百度百科

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、[Mac OS X](https://baike.baidu.com/item/Mac OS X/470629)等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。 FFmpeg编码库可以使用GPU加速。

软件名称Fast Forward Mpeg开发商FFmpeg team
软件平台Linux、Windows、Mac OS X软件授权开源
最近更新时间2021年4月8日软件版本4.4
软件语言C语言、汇编标准协议LGPL/GPL

ffmpeg是一种高效的视频、音频转换器和采集器。ffmpeg通过-i选项指定任意数量输入文件,输入文件的类型可以是常规的音视频文件,也可以是管道、网络流、采集设备等,同时也可以生成任意数量的输出文件。

输入、输出文件的流类型、数量原则上是没有限制的,但会受到容器格式(container format)限制,输出流格式可以默认(自动)采用哪个输入流的格式,也可以通过-map指定采用哪个输入流格式。

-i指定的输入文件,以及文件的流,索引号都是从0开始,例如:2:3代表第三个输入文件中的第四个流。

原则上选项(option)应用于跟随的指定文件,因此,顺序很重要,您可以在命令行上多次使用相同的选项,但每次出现都应该应用于跟随的输入、输出文件。 此规则的例外是全局选项,应首先指定。不要混合输入文件和输出文件,首先指定所有输入文件,然后再指定所有输出文件。也不要混用属于不同文件的选项,所有选项仅适用于跟随的输入或输出文件。

2 FFmpeg组成

构成FFmpeg主要有三个部分:四个作用不同的工具软件、可以供开发者使用的SDK、整个工程的源代码。

2.1 四个作用不同的工具软件

具体为:ffmpeg.exe, ffplay.exe, ffserver.exe和ffprobe.exe

组成介绍
ffmpeg.exe视频转码、转换器
ffplay.exe简单的音视频播放器
ffserver.exe流媒体服务器
ffprobe.exe简单的多媒体码流分析器

2.2 可供开发者使用的SDK,为各个不同平台编译完成的库

如果说上面的四个工具软件都是完成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。

介绍
libavformat用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能
libavcodec用于各种类型声音/图像编码解码
libavutil包含一些公共的工具函数,如随机数生成器、数据结构、数字函数等功能
libswscale用于视频场景比例缩放、色彩空间和像素格式转换
libpostproc用于后期效果处理
libavfilter包含多媒体处理常用的滤镜功能
libavdevice用于音视频数据采集和渲染等功能的设备相关
libswresample用于音频重采样和格式转换等功能

2.3 整个工具的源代码

无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。FFmpeg的源代码由C语言实现,主要在Linux平台上进行开发。FFmpeg不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。在当前这一系列的博文/视频中,我们暂时不会涉及太多源代码相关的内容,主要以FFmpeg的工具和SDK的调用为主。到下一系列我们将专门研究如何编译源代码并根据源代码来进行二次开发。

3 下载工具(Windows)

FFmpeg官网

在官网上找到Download页面:

image-20220108173729716

该页上可以下载FFmpeg的工具、库和源代码等。在选择"Windows Packages"下的Windows Builds后,会跳转到Windows版本的下载页面:

image-20220108221239538

这里的话我选择Windows64的,然后是gpl的压缩包,可以看出,它是最大的。

image-20220108221256532

下载后把它解压到对应的路径中:

image-20220108221356385

然后在系统变量中添加一个FFMPEG_HOME:

image-20220108221439293

最后在path中添加指向FFmpeg的bin路径:

image-20220108221552062

验证是否安装成功(切换到命令行窗口,输入ffmpeg -version,出现如下界面就说明成功了):

image-20220108221758173

4 简单使用

4.1 ffmpeg.exe

4.1.1 基本使用
  • 功能

    ffmpeg.exe用于视频的转码。

  • 最简单的命令

ffmpeg -i input.avi -b:v 640k output.ts

​ 该命令是将当前文件夹下的input.avi文件转换成output.ts文件,并将output.tx文件视频的码率设置为640kbps

  • 命令格式
ffmpeg -i [输入文件路径] -b:b [输出视频码率] [输出文件路径]

​ 所有的参数都是以键值对的形式指定的。例如输入文件参数是"-i",而参数值就是文件路径;输出视频码率参数是"-b:v",而参数值是视频的码率值。但是注意位于最后面的输出路劲前面不包含参数名称

4.1.2 命令参数
命令说明
-h帮助
-i filename输入文件
-t duration设置处理时间,格式为hh:mm:ss
-ss position设置起始时间,格式为hh:mm:ss
-b:v bitrate设置视频码率
-b:a bitrate设置音频码率
-r fps设置帧率
-s wxh设置帧大小,格式为WxH
-c:v codec设置视频编码器
-c:a codec设置音频编码器
-ar frep设置音频采样率

详细的参数设置可以访问FFmpeg官方文档进行学习

也可以直接参考雷神的FFmpeg参数中文详细解释

4.2 ffplay.exe

4.2.1 基本使用
  • 功能

    用于播放的应用程序

  • 简单的播放命令

    播放test.mp4的命令为:

    ffplay test.mp4

    image-20220108232103927

具体使用参考ffplay的快捷键以及选项

4.3 ffprobe.exe

ffprobe是用于查看文件格式的应用程序。

image-20220108232526469

详细使用可以参考官方说明

5 参考文章

FFmpeg官网

FFmpeg官方文档

FFMPEG视音频编解码零基础学习方法(雷霄骅-雷神)

《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频(雷霄骅-雷神)

之后几天扫地生将会结合springboot做一个实现一些音视频的格式转换的demo...同样的,也会以笔记的形式记录具体步骤。

  • 6
    点赞
  • 22
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

梁山水帘大观园之刘皇叔-扫地生

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值