1.ffmpeg简介
ffmpeg是一个著名的音视频处理开源工程,能够进行音视频的编码,解码,转码,音视频采集,后处理(如抓图,水印,封装/解封装,格式转换),流媒体处理等,涵盖了多媒体技术开发中的绝大多数领域。
原生的ffmpeg是在Linux下使用C语言开发的,不过其也可利用交叉编译等方式在Windows,iOS等多种平台下运行,具有良好的移植性。
ffmpeg的官网为https://ffmpeg.org/,在官网可下载ffmpeg相关的开发包,参考文档及更新日志等。
2.ffmpeg组成
从官网下载的ffmpeg工程由三部分组成第一部分(static)为四个作用不同的工具软件:
- ffmpeg.exe 音视频转码,转换器
- ffplay.exe 简单的音视频播放器
- ffserver.exe 流媒体服务器
- ffprobe.exe 简单的多媒体码流分析器
第二部分(dev)为供开发者使用的SDK,为各个不同平台编译的库第三部分(shared)为ffmpeg整个工程的源代码, 无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。
- libavcodec:包含音视频编码器和解码器
- libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
- libavformat:包含多种多媒体容器格式的封装、解封装工具
- libavfilter:包含多媒体处理常用的滤镜功能
- libavdevice:用于音视频数据采集和渲染等功能的设备相关
- libswscale:用于图像缩放和色彩空间和像素格式转换功能
- libswresample:用于音频重采样和格式转换等功能
3.ffmpeg工具的下载及使用
3.1 ffmpeg工具的下载