javacv实战专栏目录:
JavaCV实战专栏文章目录(JavaCV速查手册)
前言
有很多场景,需要修改视频解码出来的图像像素格式,比如典型的场景是我们要保存jpg/png/gif/apng等等截图和动态图或者要进行opencv图像处理,就需要用到yuv、rgb和rgba等等像素格式才行。其实在前面几章导出gif和apng动态图已经涉及到了像素格式转换,但是那只是其中一部分,比如经过图像处理后的像素格式还需要推流,这时候还需要再编码前进行像素格式转换,才能进行编码,本章主要分析解码后像素格式转换和编码前像素格式转换。
在javacv中,有两个地方会发生或者让javacv进行像素格式转换的操作:FrameGrabber和FrameRecorder中。由于FrameGrabber和FrameRecorder有多个子类实现,所以本篇文章以FFmpegFrameGrabber和FFmpegFrameRecorder为例。它们分别发生在FFmpegFrameGrabber解码后和FFmpegFrameRecorder编码前。如果是转封装并不涉及像素格式转换,转封装为什么无法修改视频参数和像素格式等等操作的概念请参考