一、FFmpeg简介
FFmpeg是什么
学习音视频开发,FFmpeg是一座绕不开的大山。一句话描述FFmpeg是啥?
FFmpeg是一个开源软件,可以运行音频和视频多种格式的录影、转换、流功能。用官网的话说,A complete, cross-platform solution to record, convert and stream audio and video.
『FFmpeg官网传送门』,目前支持Linux,Mac OS,Windows三个主流的平台,可以直接下载使用。
FFmpeg基本组成
FFmpeg框架有以下几部分组成:
- AVformat:封装模块,对应libavformat库,实现了绝大多数媒体封装格式的封装和解封装。如MP4、FLV、TS等文件封装格式,以及RTMP、RTSP、MMS、HLS等网络协议封装格式。
- AVCodec:编解码模块,对应libavcodec库,实现了大多数常用的编解码格式,如MPEG4、AAC、MJPEG等自带编码格式外,还支持H.264(AVC)的x264编码器、H.265(HEVC)的x265编码器,MP3的libmp3lame编码器等第三方的编解码器。
- AVFilter,滤镜模块,对应libavfilter库,提供了一个通用的音视频字幕等滤镜处理框架。
- AVDevice、AVUtil、swscale、swresample等其他模块
从提供的工具来看,有以下3个:
SDL(Simple DirectMedia Layer)
SDL是一套开放源代码的跨平台多媒体开发库,使用C语言写成。可封装了复杂的视音频底层操作,简化了视音频处理的难度。
二、FFmpeg安装
当然也可以自己编译到Android或者iOS平台。
Mac安装
有之前有安装过,版本或模块有问题,可先brew uninstall卸载。然后使用brew安装即可。
1 | $ brew install ffmpeg --with-libvpx --with-libvorbis --with-ffplay |
Linux 安装
详细资料可参考官方文档,『文档传送门』
more >>