关于出流

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

关于出流

Jump to solution
5,685 Views
lei11
Contributor I

您好,我有一块imx8mp的板子

我想捕获raw8格式的视频流,我能使用什么gstreamer命令来捕获它,你能给我一个示例吗

 

我用的驱动会生成设备/dev/video2,

我用 v4l2-ctl --list-formats-ext -d /dev/video2
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar

[0]: 'RGBP' (16-bit RGB 5-6-5)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[1]: 'RGB3' (24-bit RGB 8-8-8)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[2]: 'BGR3' (24-bit BGR 8-8-8)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[3]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[4]: 'YUV4' (32-bit A/XYUV 8-8-8-8)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[5]: 'NV12' (Y/CbCr 4:2:0)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[6]: 'YM24' (Planar YUV 4:4:4 (N-C))
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[7]: 'XR24' (32-bit BGRX 8-8-8-8)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
[8]: 'AR24' (32-bit BGRA 8-8-8-8)
Size: Discrete 1920x1080
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.125s (8.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.017s (60.000 fps)

 

这几个格式是怎么获取生成的,我没发通过这几个格式捕获raw8格式的数据流

 

我看驱动里的关于格式的内容是

static const struct ov5640_pixfmt ov5640_formats[] = {
{
MEDIA_BUS_FMT_JPEG_1X8,
V4L2_COLORSPACE_JPEG,
},
{
MEDIA_BUS_FMT_UYVY8_2X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_UYVY8_1X16,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_YUYV8_2X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_YUYV8_1X16,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_RGB565_2X8_LE,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_RGB565_2X8_BE,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SBGGR8_1X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SGBRG8_1X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SGRBG8_1X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SRGGB8_1X8,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SBGGR10_1X10,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SGBRG10_1X10,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SGRBG10_1X10,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_SRGGB10_1X10,
V4L2_COLORSPACE_SRGB,
},
{
MEDIA_BUS_FMT_Y8_1X8,
V4L2_COLORSPACE_RAW,
},
};
 
这好像和v4l2-ctl --list-formats-ext -d /dev/video2命令获取的格式又对不上号
0 Kudos
Reply
1 Solution
5,482 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport
0 Kudos
Reply
5 Replies
5,627 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

你用的哪个摄像头?

0 Kudos
Reply
5,595 Views
lei11
Contributor I

ov5640

我目前的版本是5.15

我在imx8-isi-fmt.c里添加了

{
.name = "RAW8",
.fourcc = V4L2_PIX_FMT_SBGGR8,
.depth = { 8 },
.color = MXC_ISI_OUT_FMT_RAW8,
.memplanes = 1,
.colplanes = 1,
.mbus_code = MEDIA_BUS_FMT_SBGGR8_1X8,
}
但是捕获出来的raw图是
lei11_0-1695693757941.png

 

我使用的命令是

v4l2-ctl -d /dev/video2 --set-fmt-video=width=800,height=600,pixelformat=BA81 --set-parm=30 --stream-mmap=3 --stream-to=2.out --stream-count=1 --stream-poll

 

 

-------------------------------------------------------------------------------------------------------

当我又添加了,
{
.name = "Y8",
.fourcc = V4L2_PIX_FMT_GREY,
.depth = { 8 },
.color = MXC_ISI_OUT_FMT_YUV422_1P8P,
.memplanes = 1,
.colplanes = 1,
.mbus_code = MEDIA_BUS_FMT_Y8_1X8,
},
grey的格式去接收
图像又变成这样:

lei11_0-1695695733228.png

 

我使用的接收命令是

v4l2-ctl -d /dev/video2 --set-fmt-video=width=800,height=600,pixelformat=GREY --set-parm=30 --stream-mmap=3 --stream-to=6.out --stream-count=1 --stream-poll

 

应该是800*600的图像,压缩成了800*300

 

 

0 Kudos
Reply
5,483 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport
0 Kudos
Reply
5,078 Views
Versenkt
Contributor II

你好,我在基于6.1.55 bsp开发imx8mp的sc130gs的驱动,输出raw8,使用MIPI-CSI和ISI;我根据这个patch,修改了mxc_isi_out_formats结构体所在的imx8-isi-fmt.c,以及mxc_isi_source_fmt_init函数所在的imx8-isi-cap.c两个文件。

imx8-mipi-csi2-sam.c我也做了修改,但我看bsp似乎根本没有编译它,我看修改内容只是注释掉了一个修改像素格式的赋值,我在相机驱动中设定的格式应该是对的,就没有管它。
完成这些修改后,使用gstreamer预览时,经常出现命令行卡住(不出现计时),多试几次的话会有进度,但画面是全绿。
具体问题我会再开个帖子提问,这里我想先请问一下,针对6.1.55,是否还有什么不同的地方需要做修改?
0 Kudos
Reply
5,074 Views
Versenkt
Contributor II
0 Kudos
Reply