xvid支持yuyv格式吗

梦幻贝壳 2013-03-30 11:22:21
现在正在搞一个qt项目,利用linux的v4l2捕获摄像头的视频数据,然后用xvid编码并保存成一个视频文件。现在已经捕获成功,可以正常显示图像,只是我的摄像头只支持yuyv格式,但是xvid编码貌似没有这个格式,有人说yuyv和yuy2是同一种格式,然后我也试了下xvid_enc_frame.input.csp = XVID_CSP_YUY2;最后编码后的视频竟然变成上下两个相同的画面,下面的画面偶尔还有绿色色块。所以请高手帮忙解答一下,怎样才能把yuyv用xvid编码成正确的图像?

xvid支持的格式:
#define XVID_CSP_PLANAR (1<< 0) /* 4:2:0 planar (==I420, except for pointers/strides) */
#define XVID_CSP_USER XVID_CSP_PLANAR
#define XVID_CSP_I420 (1<< 1) /* 4:2:0 planar */
#define XVID_CSP_YV12 (1<< 2) /* 4:2:0 planar */
#define XVID_CSP_YUY2 (1<< 3) /* 4:2:2 packed */
#define XVID_CSP_UYVY (1<< 4) /* 4:2:2 packed */
#define XVID_CSP_YVYU (1<< 5) /* 4:2:2 packed */
#define XVID_CSP_RGB (1<<16) /* 24-bit rgb packed */
#define XVID_CSP_BGRA (1<< 6) /* 32-bit bgra packed */
#define XVID_CSP_ABGR (1<< 7) /* 32-bit abgr packed */
#define XVID_CSP_RGBA (1<< 8) /* 32-bit rgba packed */
#define XVID_CSP_ARGB (1<<15) /* 32-bit argb packed */
#define XVID_CSP_BGR (1<< 9) /* 24-bit bgr packed */
#define XVID_CSP_RGB555 (1<<10) /* 16-bit rgb555 packed */
#define XVID_CSP_RGB565 (1<<11) /* 16-bit rgb565 packed */
#define XVID_CSP_SLICE (1<<12) /* decoder only: 4:2:0 planar, per slice rendering */
#define XVID_CSP_INTERNAL (1<<13) /* decoder only: 4:2:0 planar, returns ptrs to internal buffers */
#define XVID_CSP_NULL (1<<14) /* decoder only: dont output anything */
#define XVID_CSP_VFLIP (1<<31) /* vertical flip mask */
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
话题在绕弯 2013-06-26
  • 打赏
  • 举报
回复
给我留言也行。
话题在绕弯 2013-06-26
  • 打赏
  • 举报
回复
你好, 我看见了你在论坛中发的帖子 《xvid支持yuyv格式吗》。 我现在也在作和你类似的一个东西, 情况也和你当时类似,从摄像头中能捕获回来帧, 但是不知道如何编码为视频流, 勉勉强强编码了,但也遇到了和你类似的情况,画面分成了三分。 希望你不吝赐教。 我的qq是 593796769, 谢谢
梦幻贝壳 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 property1 的回复:
编码时候用多什么库, ?
用的是xvid编码库
梦幻贝壳 2013-04-07
  • 打赏
  • 举报
回复
已经解决问题了。图像输入的宽度写成4,应该2才对。
property1 2013-03-31
  • 打赏
  • 举报
回复
编码时候用多什么库, ?

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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