YUYV(YUY2)到YUV420P的转化问题

egmkang 2010-07-27 11:50:36
我照着ffmpeg的api-example.c写了一个编码的小程序,现在对YUV420P的数据可以编码了.
但是我的摄像头输出的是YUYV(YUY2)格式的数据,这种数据怎么转化成YUV420P的呢??

听别人说ffmpeg里面有接口可以实现这个,没找到....

谢谢哈
...全文
1026 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
美丽海洋 2011-09-28
  • 打赏
  • 举报
回复
可以在msdn上看一下,他们的排列自己转化,不过效率不知道楼主能不能接受,我做过六路的YUV420转YUYV,效率不太好;

在ffmpeg中有关转化 我正在看ffmpeg要是看到了 我在贴出来,哈哈
LiuYinChina 2011-09-28
  • 打赏
  • 举报
回复
Kan wo de ziyuan!
zoulie 2011-09-24
  • 打赏
  • 举报
回复
YUY2 2x2像素转换成I420如下
Y0U0 Y1V0
Y2U1 Y3V1
---------->I420
Y0 Y1 Y2 Y3
(U0+U1)/2,(V0+V1)/2

就是内存顺序重新排列下,自己写的可以考虑下优化。。
FFMPEG开源的代码看的蛋疼。。
xiaoyilong19 2011-09-24
  • 打赏
  • 举报
回复
太慢了,这个函数,需要优化下啊
tufaqing 2010-07-28
  • 打赏
  • 举报
回复
使用代理服务器打开网页http://www.ffmpeg.org/download.html#release,点击 full_checkout可下载每天的更新后的压缩包,前两个月出了0.6版,该网页下面链接可以下载。
egmkang 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tufaqing 的回复:]

可以,但新版的ffmpeg好像没有这个了,都用sws_scale,这个功能更强大一些,还涉及到行pitch对齐,更合理一些,不过用img_convert对你这个应用来说应该没问题。
[/Quote]

我的是0.5版本的,不知道新版本的是多少,那个好像被墙了
tufaqing 2010-07-28
  • 打赏
  • 举报
回复
可以,但新版的ffmpeg好像没有这个了,都用sws_scale,这个功能更强大一些,还涉及到行pitch对齐,更合理一些,不过用img_convert对你这个应用来说应该没问题。
egmkang 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tufaqing 的回复:]

sws_scale,网上有使用的例子。
[/Quote]

我用img_convert转化,应该没问题吧
	avpicture_fill((AVPicture*) encodingFmtPicture, picture_buf,
PIX_FMT_YUYV422, pContext->width, pContext->height);
img_convert((AVPicture*) encodingPicture, PIX_FMT_YUV420P,
(AVPicture*) encodingFmtPicture, PIX_FMT_YUYV422, pContext->width,
pContext->height);
egmkang 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tufaqing 的回复:]

使用代理服务器打开网页http://www.ffmpeg.org/download.html#release,点击 full_checkout可下载每天的更新后的压缩包,前两个月出了0.6版,该网页下面链接可以下载。
[/Quote]
哦,谢谢哈
我不知道从哪里下下来的0.6版本,交叉编译失败,0.5的可以,就先用着
c_cacal 2010-07-27
  • 打赏
  • 举报
回复
YUYV和YUV420P格式都是YUV格式,比较下,把数值重新排列下就可以吧
实在不成,都拿RGB转,网上有源代码
tufaqing 2010-07-27
  • 打赏
  • 举报
回复
sws_scale,网上有使用的例子。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧