查看: 868|回复: 3

求助,opencv+gstreamer彩色视频解码后变黑白

[复制链接]

2

主题

5

帖子

26

积分

办事员

Rank: 1

积分
26
发表于 2022-2-18 16:29:53 | 显示全部楼层 |阅读模式
初学者,型号是Evo-Xavier Jetpack 4.5 L4t 32.5.0,想要用硬件解码输入视频,拿到图片用于后续推理,为了能够直接用现有的推理框架,需要拿到cv::Mat
用gst-launch1.0 filesrc location=./sample_1080p_h264.mp4 ! qtdemux ! queue ! h264parse ! nvv4l2decoder ! nvvidconv ! nvoverlaysink 显示的视频是正常的3通道彩色
但是用opencv VideoCapture(filesrc location=./sample_1080p_h264.mp4 ! qtdemux ! queue ! h264parse ! nvv4l2decoder ! nvvidconv ! appsink),拿到的帧就成单通道黑白图像
如果用opencv VideoCapture(filesrc location=./sample_1080p_h264.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! videoconvert ! appsink),拿到的帧是3通道,但是速度极慢
各位有什么好办法吗?
回复

使用道具 举报

2

主题

5

帖子

26

积分

办事员

Rank: 1

积分
26
 楼主| 发表于 2022-2-18 16:32:09 | 显示全部楼层
opencv是在设备上重新编译的带GStreamer支持的
回复

使用道具 举报

2

主题

5

帖子

26

积分

办事员

Rank: 1

积分
26
 楼主| 发表于 2022-2-18 17:49:46 | 显示全部楼层
找到问题了,nvvidconv需要指定输出的类型, gst-inspect1.0看后,只有BGRx,需要再用videoconvert转成BGR,输入VideoCapture
opencv VideoCapture(filesrc location=./sample_1080p_h264.mp4 ! qtdemux ! queue ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink)
回复

使用道具 举报

1

主题

41

帖子

433

积分

科长

Rank: 3Rank: 3

积分
433
发表于 2022-2-18 18:21:48 | 显示全部楼层
robovoid 发表于 2022-2-18 17:49
找到问题了,nvvidconv需要指定输出的类型, gst-inspect1.0看后,只有BGRx,需要再用videoconvert转成BGR ...

感谢您的回复,我们也会把该问题充实到我们的知识库中,以便未来提供更好的技术支持服务。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点我注册

本版积分规则


快速回复 返回顶部 返回列表