JavaCV入门指南:帧过滤器(FrameFilter)的原理与应用
前言
在此之前,我们分析了FrameGrabber和FrameRecorder,对于音视频、图片和流媒体的输入输出相信大家已经基本掌握和了然于心了。那么接下来的本章,主要讲解和分析FrameFilter,让我们直接开始吧。
FrameFilter的介绍和结构
FrameFilter就是过滤音频和视频帧,并对音频和视频进行处理的一个帧处理器,用滤镜来描述可能更为贴切一点(但是由于FrameFilter还可以处理音频,所以我们还是使用“过滤器”更合适些,虽然有可能引起歧义就是了),在采集到解码后的音视频源或者图像、音频后,对解码后的数据源进行加工的过程就是FrameFilter做的事情了。
FrameFilter处理流程
FrameFilter的一般调用处理流程
初始化和设置解码后的数据--->start()--->循环start| push(Frame frame)--->Farme pull() |循环end--->结束时调用stop释放内存
结合FrameGrabber和FrameRecorder后的FrameFilter处理流程,如下图所示
FrameFilter的子类
FrameFilter只有一个实现类就是FFmpegFrameFilter,所以本章主要分析FFmpegFrameFilter。
FFmpegFrame