写点什么

使用 FFmpeg 开发的那些事

用户头像
Bob
关注
发布于: 2021 年 04 月 10 日
使用FFmpeg开发的那些事

一.FFmpeg 介绍

1.何为 FFmpeg?

对于每一个音视频领域的开发者来说,FFmpeg 是再熟悉不过了。作为一套强大的开源工具,FFmpeg 包含了开发完成的工具、封装好的函数库以及源代码供我们按需使用。


Fmpeg 是当前最领先的多媒体框架之一,支持解码、编码、转码、视频采集、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西,简单来说,它几乎包括了涵盖音视频绝大部分领域。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的, 都具有高度的便携性。


2.FFmpeg 组成


构成 FFmpeg 的主要有三个部分


第一个部分是一些小工具,如下:

ffmpeg:一个命令行工具,用于处理、转换和流式传输多媒体内容。

ffplay:一个简约的多媒体播放器。

ffprobe:检查多媒体内容的简单分析工具。

其它的还有一些小工具和插件。


第二部分主要是供开发者使用的 SDK,在官网翻译过来也叫库文档,为每个不同平台编译完成的库。如果说上述的小工具是成品,那么下面的这些库就类似于半成品,可根据自己的需求开发成自己想要的应用程序。下面将简述库:

libavcodec:包含音视频编码器和解码器.

libavutil:用于辅助便携式多媒体编程的实用程序库,包含随机数生成器、数据结构、数学函数等功能。

libavformat:提供了一个通用框架,用于对音频,视频和字幕流进行多路复用和多路分解(多路复用和多路分解)。

libavfilter:提供了一个通用的音频/视频过滤框架,其中包含多个过滤器,源和接收器。

libavdevice:提供了用于从许多常见的多媒体输入/输出设备获取和呈现的通用框架,并支持多种输入和输出设备,包括 Video4Linux2,VfW,DShow 和 ALSA。

libswscale:执行高度优化的图像缩放以及色彩空间和像素格式转换操作。

libswresample:执行高度优化的音频重采样,重新矩阵化和样本格式转换操作。


第三部分是整个工程的源代码,无论是上述的小工具和库文件,其本质都是由这些源代码编译而来。FFmpeg 的源代码是由 C 语言实现,所以在运行时速度是可观的。由于 FFmpeg 本身受欢迎的程度,所以也还存在许多第三方来增强它自身的功能。


二.FFmpeg 下载及其安装


1.0 下载 FFmpeg,首先找到官网https://ffmpeg.org/


1.1 然后点击 Download,进入如下页面,这里以 Windows 系统为例,首先点击视窗的图标,然后找到 Windows build from gyan.dev 点击进去。


1.2 进去之后往下翻找到 7-zip-utility,点击进行下载,下载之后傻瓜式安装即可。


1.3 然后在之前的页面往下找到 Mirror,点击圈出来的链接。


1.4 点击 Mirror 的链接,进去之后点击下图中的链接,下载完成后找到下载的文件。

To:当然,如果你电脑自带解压软件,那么下图中第二个后缀名为 zip 的文件也是可以的。


1.5 如果你是下载的第一个,那么右键文件找到 7-Zip,并用第一个 Open archive 打开文件。之后在你的 C 盘或其它盘中的 Program Files 文件夹内新建一个名为 FFmpeg 的文件,将用 7-Zip 解压的文件拖到 FFmpeg 文件夹内,找到 bin 目录下,并将该文件路径复制下来。如下图中路径为:C:\Program Files\FFmpeg\bin



1.6 接下来是最重要的环节便是配置环境变量

找到我的电脑,右键找到属性,点击进去找到高级系统设置


1.7 点击高级系统设置后在弹出的页面右下角找到环境变量。


1.8 进入环境变量设置后,首先我们找到用户变量,再双击下面的 Path,进入步骤 3 的页面,再新建将复制的文件路径粘贴到环境变量中,再一直点确定即可。



1.9 最后一步,便是检查我们的 FFmpeg 是否安装成功。快捷键 win+R,输入 cmd 打开命令行窗口,在窗口中输入 ffmpeg -version 查看是否安装成功。安装成功的页面如下:


三.FFmpeg 使用

1.ffmpeg

正如和软件名一样,工具 ffmpeg 是该软件的核心工具。它的主要功能便是完成各种音视频转换和视频转码的操作,比如将不熟悉的 avi 格式转换成 mp4 格式。


举个简单的例子,比如我们要进行视频文件的格式转换,我们需要运行的命令为:

ffmpeg -i +视频文件路径 +转换后的文件格式如:

ffmpeg -i D:\test.MOV D:\output.mp4

2.ffplay

ffplay 作为一个简单的播放器,它使用了 ffmpeg 库和 SDK 库开发而成,平常用作 ffmpeg API 的测试工具。

它的使用也挺简单的,需要运行的命令为:ffplay -i +文件路径如:

ffplay -i D:\output.mp4


当然,ffplay 也支持传入各种参数来控制播放行为,如:

  • -i input_file:输入文件名。

  • -x width -y height:控制播放窗口的宽高。

  • -t duration:控制播放的时长。

  • -window_title title:播放窗口的标题,默认为输入文件名。

  • -showmode mode:设置显示模式,0:显示视频;1:显示音频波形;2:显示音频频谱

...关于其它的参数可自行查看官方文档。

3.ffprobe

ffprobe 是一个音视频文件分析功能,其使用方法和 ffplay 类似。如:

ffprobe -i D:\output.mp4


分析完成后 ffprobe 会为我们显示音视频文件中包含的每个码流的信息,如:编码格式,像素分辨率,码率等等。


To:作为音视频领域的老大哥,FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows 等系统下构建环境、机器架构和配置下编译、运行,并通过测试基础设施 FATE。


关于 FFmpeg 的介绍就暂时到这里啦,想要查看更多的内容,还请关注后续内容哦。


发布于: 2021 年 04 月 10 日阅读数: 156
用户头像

Bob

关注

潜心修炼~ 2021.03.22 加入

大二计科在读,忠于热爱~

评论

发布
暂无评论
使用FFmpeg开发的那些事