我有基于 Infineon CX3 控制器的定制 USB UVC 相机。 我发送以 YUYV 4:2:2 格式封装的 RAW10(两个字节中的 1 个像素,LSB 在前,RGGB Bayer 模式)数据帧。
可以使用 gst-launch-1.0 应用程序播放格式吗?
现在,我可以使用下一个管道播放相机流:
gst-launch-1.0.exe -v autovideosrc ! video/x-raw,width=1280,height=720,format=YUY2 ! videoconvert ! fpsdisplaysink
但是如果我尝试添加 debyer:
gst-launch-1.0.exe -v autovideosrc ! video/x-raw,width=1280,height=720,format=YUY2 ! videoconvert ! video/x-bayer,format=rggb,width=1280,height=720 ! bayer2rgb ! videoconvert ! fpsdisplaysink
我明白了:
WARNING: erroneous pipeline: could not link videoconvert0 to videoconvert1, neither element can handle caps video/x-bayer, width=(int)1280, height=(int)720, format=(string)rggb
我可以使用 v4l2 和 opencv 进行彩色去马赛克,但我想知道这是否可以使用 gstreamer 完成?
您可以通过检查元素的功能来检查元素的兼容性:
gst-inspect-1.0 bayer2rgb
gst-inspect-1.0 videoconvert
虽然我没有找到任何直接将 YUV 转换为 Bayer 的 gstreamer 元素,但您可以再添加一步:
使用 videoconvert YUV->RGB
RGB->Bayer 使用 rgb2bayer
我在示例管道上进行了测试,使用 videotestsrc 模拟您的输入:
gst-launch-1.0 videotestsrc ! video/x-raw, width=1280, height=720, format=YUY2 ! videoconvert ! rgb2bayer ! video/x-bayer,format=rggb, width=1280, height=720 ! bayer2rgb ! videoconvert ! fpsdisplaysink