一、ffmpeg的简介
FFmpeg(全称:Fast Forward Mpeg),名称来自MPEG视频编码标准。FFmpeg是一套用来处理视频和音频的开源工具库。它提供了录制、转换、流化音视频以及后期处理的完整解决方案。有很高的质量和可移植性。
二、ffmpeg的安装
在Mac环境中,直接使用Homebrew (mac包管理工具)安装FFmpeg。
1、在终端中输入brew install ffmpeg
安装,最后使用命令ffmpeg -version
查看查看版本确认是否安装成功。
2、进入上一步的安装目录,打开目录位置:
cd /usr/local/Cellar/ffmpeg open .
目录结构说明:
-
bin:有编译好的可执行程序:ffmpeg、ffplay、ffprobe等,可以直接在命令行上使用。 eg: ffplay xx.mp4:可以直接播放某个视频 eg:ffmpeg -version:可以查看FFmpeg的版本号
-
include:开发时需要包含的头文件
-
lib:链接时需要用到的库文件
函数库:
-
libavcodec:编解码库。
-
libavformat:音视频容器格式以及所支持的协议的封装和解析。
-
libavutil:提供了一些公共函数,工具库。
-
libavfilter:音视频的滤镜库,如视频加水印、音频变声等。
-
libavdevice:支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制。
-
libswresample, libavresample:提供音频的重采样工具库。
-
libswscale:提供对视频图像进行色彩转换、缩放以及像素格式转换,如图像的 YUV 转换。
-
libpostproc:多媒体后处理器。
基本概念:
-
容器(Container) 容器就是一种文件格式,比如flv,mkv等。包含下面5种流以及文件头信息。
-
流(Stream) 是一种视频数据信息的传输方式,5种流:音频,视频,字幕,附件,数据。
-
帧(Frame) 帧代表一幅静止的图像,分为I帧,P帧,B帧。
-
编解码器(Codec) 是对视频进行压缩或者解压缩,CODEC =COde (编码) +DECode(解码)
-
复用/解复用(mux/demux) 把不同的流按照某种容器的规则放入容器,这种行