【读书会第13期】了解FFmpeg工具集
【摘要】 本章主要讲解了FFmpeg内置模块与三大工具的概念
前言
第一章主要学习了FFmpeg工具集,内容是比较基础的。主要学习了FFmpeg内置模块与三大工具
模块
FFmpeg 工程内部根据功能划分了不同的模块,包括AVUtil、AVFormat、AVCodec、AVFilter、AVDevice、swresample、swscale。
- AVUtil
核心工具库,该模块是最基础的模块之一,下面的许多其他模块都会依赖该库做一些基本的音视频处理操作。 - AVFormat
文件格式和协议库,封装了Protocol层和Demuxer、Muxer层,其中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,比如MP4、FLV、MKV、TS 等文件封装格式,RTMP、RTSP、HLS 等网络协议封装格式。另外,也支持自定义封装格式。 - AVCodec
是FFmpeg 的编解码库,其中实现了目前多媒体领域中的绝大多数媒体编解码格式,包括编码和解码两大部分,比如MPEG4、H264、H265 等视频格式,AAC、MP3 等音频格式。另外,也支持自定义编解码格式,可以将其他的第三方的Codec以插件的方式添加进来,然后为开发者提供统一的接口。 - AVFilter
是FFmpeg 的滤镜模块,该模块提供了包括音频特效和视频特效的处理,实现了通用的音频、视频、字幕等滤镜处理框架。 - AVDevice
是FFmpeg 的设备管理模块,包括音频设备和视频设备输入输出库,比如,需要编译出播放声音或者视频的工具ffplay,就需要确保该模块是打开的,同时也需要libSDL的预先编译,因为该设备模块播放声音与播放视频使用的都是libSDL库。 - swresample
是FFmpeg 的音频转换模块,包括音频重采样、声道数调整等。 - swscale
是FFmpeg 的视频图像转换模块,包括图像缩放、像素格式转换等。
三大工具
FFmpeg的Static版本的bin文件夹中只有三个.exe文件,分别是: ffmpeg.exe、ffplay.exe、ffprobe.exe,这三个是FFmpeg源代码编译后生成的可执行文件,也就是FFmpeg的三大工具。
- ffmpeg
是一个编解码工具。ffmpeg首先读取输入源,然后通过Demuxer将音视频包进行解封装,然后使用Decoder进行解码,将音视频通过Decoder解包为YUV或者PCM,最后通过Encoder将对应的数据进行编码,将编码后的音视频数据包通过Muxer进行封装,输出成为输出流; - ffplay
FFmpeg播放器。使用FFmpeg的avformat与avcodec,可以播放各种媒体文件或者流。使用ffplay,系统要有SDL来进行基础支持。ffplay是FFmepg源代码编译后生成的另一个可执行程序,可以作为测试工具进行使用,ffplay提供了音视频显示和播放相关的图像信息、音频的波形信息等。 - ffprobe
多媒体分析工具。可以从媒体文件或者媒体流中获得音频的参数、视频的参数、媒体容器的参数信息等。它可以帮助分析某个媒体容器中的编码格式同时还可以得到媒体文件中媒体的总时长、复合码率等信息。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)