Video ffmpeg中的去隔行
我按照教程将视频文件加载到C程序中。但是帧并没有被逐行排列Video ffmpeg中的去隔行,video,ffmpeg,video-processing,Video,Ffmpeg,Video Processing,我按照教程将视频文件加载到C程序中。但是帧并没有被逐行排列 从我所看到的,ffmpeg可执行文件支持去隔行切换。如何在代码中执行此操作?我应该阅读哪些库/函数?您必须手动调用avpicture\u deinterlace来解交错每个解码帧。可以找到函数定义。它基本上是这样的(使用本教程第一页中的变量): 请记住,您必须通过创建自己的缓冲区并调用avcodec\u alloc\u frame和avpicture\u fill来初始化pDiFrame,与本教程中初始化pFrameRGB的方式类似,只
从我所看到的,ffmpeg可执行文件支持去隔行切换。如何在代码中执行此操作?我应该阅读哪些库/函数?您必须手动调用
avpicture\u deinterlace
来解交错每个解码帧。可以找到函数定义。它基本上是这样的(使用本教程第一页中的变量):
请记住,您必须通过创建自己的缓冲区并调用avcodec\u alloc\u frame
和avpicture\u fill
来初始化pDiFrame
,与本教程中初始化pFrameRGB
的方式类似,只有这一次像素格式将是解码帧的格式(pCodecCtx->pix\u fmt
),不是24位RGB
解交错后,可以执行从解交错帧到RGB的转换,如教程中所示
avcodec_decode_video(pCodecCtx, pFrame, &frameFinished,
packet.data, packet.size);
if(frameFinished) {
avpicture_deinterlace((AVPicture*)pDiFrame,
(const AVPicture*)pFrame,
pCodecCtx->pix_fmt,
width,
height);
.
.
.
}