中易网

如何从AVFrame:data里获取RGB24数据和YUYV422数据

答案:2  悬赏:0  
解决时间 2021-11-29 03:19
如何从AVFrame:data里获取RGB24数据和YUYV422数据
最佳答案
我用img_convert转换了解码后的图象为RGB24,确保转换是正确的,取出数据来播放还是不正常。
我又转为YUYV422,还是不正常。
反正就是数据没取对。

我是从AVFrame::data[0]直接把数据Copy过来显示,
要么图象只显示到上半窗口,要么重复了几个播放图象,怎么弄都不正确
请问,怎么取这两种格式的图象数据啊?

解答问题
从AVFrame::data[0]里获取RGB24 或者 YUYV422,或者 UYVY422 都只是从data[0]里获取就可以了,忽略data[1], data[2], data[3];
其次,我由于使用了img_convert进行了到上述目标格式的转换,但是却为转换用的AVPicture变量,调用avpicture_alloc指定的目标格式还是
PIX_FMT_YUV420P,也就是说,分配的目标格式和转换的目标格式不匹配对应。
因此,可能一方面导致AVPicture变量中的目标格式不正确,还导致其分配的缓冲区太小,从而导致后来取数据不正确,结果图象被隔行采样,实际视频高少了一
半。

其实只要分配和转换不发生任何问题,就只需要从AVFrame::data[0]直接Copy数据即可,而Copy数据的长度,即是一帧BMP图片的大小。
唯有RGB24,这样一次Copy,显示后,图象倒置,需要进行一行一行Copy,才正确。
全部回答
其实只要分配和转换不发生任何问题,就只需要从avframe::data[0]直接copy数据即可,而copy数据的长度,即是一帧bmp图片的大小。   唯有rgb24,这样一次copy,显示后,图象倒置,需要进行一行一行copy,才正确。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
坚持不懈英文缩写
淘宝哪些商家回收二手psv的
百代以下,史官不能易其法,学者不能含其书谁
使用显式游标需要哪几个步骤?
我把茶叶倒在花盆了.产生了很多虫子有什么办
QQ华夏120级以后还有什么任务可以做?
报告营长,前面发现一队女兵,要不要歼灭她们
一加一三十五
微信怎么实名认证啊?
科普:负电位和氢水作用到底什么关系
华夏战魂技能点修炼魂技什么意思?
慈利免费师范生是在那一所学校上学
交易性金融资产输入贷方还是借方?不是可以直
瑞芯微3026和瑞芯微3126哪个新
惠普笔记本ProBook4411s,bios密码忘记了。背
推荐资讯
gsm什么意思?
球球大作战黑洞皮肤怎么弄的,谁知道
水阵的意思是什么?水阵的释义是什么啊?
求助:有两个号码,一个传真号码,一个电话号
学校要竞选大队委,我想竞选大队长,但是只有
“卸”,这个字的右偏旁怎么打
体谅()括号里应填什么字
红警任务统一2008第一关怎么过?没钱怎么过啊
如何给烧水壶去垢?
世势的意思是什么?世势的释义是什么啊?
福州配货站去哪找货源信息?入那个配货网?
梅汕高速公路/汕昆高速公路(路口)我想知道这
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?