我大概了解到frame.data[]
的解释方式取决于视频的像素格式(RGB或YUV)。但是有没有一种通用的方法可以获取帧中的所有像素数据?我只想计算帧数据的哈希值,而不需要将其解释为显示图像。
根据AVFrame.h:
uint8_t* AVFrame::data[AV_NUM_DATA_POINTERS]
指向图片/通道平面的指针。
int AVFrame::linesize[AV_NUM_DATA_POINTERS]
对于视频,每个图像线的字节数大小。
这是否意味着如果我只从data[i]
提取linesize[i]
字节,那么我就能获得有关帧的完整像素信息?
avpicture_layout
,例如for(垂直线数[]){内存复制到缓冲区并将缓冲区指针增加linesize}
就能完成任务? - nmxprimeAVFrame
强制转换为AVPicture
,因为AVFrame
包含与AVPicture
相同的字段。另请参阅严格别名规则:https://dev59.com/43VD5IYBdhLWcg3wE3Ro - Ciro Santilli OurBigBook.com