一、FFmpeg简介
FFmpeg 是一款开源的多媒体视频处理工具,可以用来记录、转换数字音频、视频,并能够将其转化为流的开源计算机程序。
其中包含了音频/视频编解码库libavcodec。
它的功能包括视频采集、视频格式转换、视频抓图、给视频加水印等。
其中现有的很多处理软件是基于 FFmpeg 开发,包括暴风影音、QQ影音、PotPlaye 等。
但是需要注意的是,FFmpeg 是以命令行的方式运行的,所以需要在终端操作它。
二、音视频相关知识
1、封装:即我们常说的文件格式 mp4、avi、mkv、rmvb。它像是一个容器,里面会包含视频、音频、字幕等信息。
2、编码:编码的目的是为了存储和压缩。视频和音频会采用不同的编码方式编码后放进容器中。
常见的视频编码方式有h.264(HVC)、h.265(HEVC)、MPEG4、VC-1等,常见的音频编码方式有AAC、AC-3、MP3等。
注:封装格式会限制编码方式。
三、ffmpeg的主要组成
1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;
2、libavcodec:用于各种类型声音/图像编解码;
3、liba