我正在使用 Dragonboard410c,并尝试使用 gstreamer 管道从 Logitech C270 USB 摄像头生成 mp4 视频。
对于这项任务,我按照报告的说明进行操作这里在该部分使用CSI相机,它们是根据OV5640板适配器。
该过程使用 media-ctl 配置管道,然后使用 gstreamer 管道来录制视频。
根据我了解的说明,我必须检索相机 C270 USB 相机的设备实体才能配置管道:
:~# media-ctl -d /dev/media1 -p
Media controller API version 0.1.0
Media device information
------------------------
driver uvcvideo
model UVC Camera (046d:0825)
serial 2FB8A120
bus info 1.2
hw revision 0x12
driver version 4.9.39
Device topology
- entity 1: UVC Camera (046d:0825) (1 pad, 1 link)
type Node subtype V4L flags 1
device node name /dev/video1
pad0: Sink
<- "Extension 4":1 [ENABLED,IMMUTABLE]
- entity 5: Extension 4 (2 pads, 4 links)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "Processing 2":1 [ENABLED,IMMUTABLE]
pad1: Source
-> "UVC Camera (046d:0825)":0 [ENABLED,IMMUTABLE]
-> "Extension 6":0 [ENABLED,IMMUTABLE]
-> "Extension 7":0 [ENABLED,IMMUTABLE]
- entity 8: Extension 6 (2 pads, 1 link)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "Extension 4":1 [ENABLED,IMMUTABLE]
pad1: Source
- entity 11: Extension 7 (2 pads, 1 link)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "Extension 4":1 [ENABLED,IMMUTABLE]
pad1: Source
- entity 14: Processing 2 (2 pads, 3 links)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "Camera 1":0 [ENABLED,IMMUTABLE]
pad1: Source
-> "Extension 4":0 [ENABLED,IMMUTABLE]
-> "Extension 3":0 [ENABLED,IMMUTABLE]
- entity 17: Extension 3 (2 pads, 1 link)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "Processing 2":1 [ENABLED,IMMUTABLE]
pad1: Source
- entity 20: Camera 1 (1 pad, 1 link)
type V4L2 subdev subtype Unknown flags 0
pad0: Source
-> "Processing 2":0 [ENABLED,IMMUTABLE]
但是,我不知道如何使用这些参数来编写配置管道所需的 2 个 media-ctl 命令。
有人会解释如何解释此输出参数以使用 media-ctl 配置管道吗?
答案1
我认为您混合了两种不同的连接相机的方法。据我所知,media-ctl 通常适用于图像传感器连接到专用并行或串行相机接口(并且通过 I2C 完成控制)的情况。例如,我使用连接到 OMAP4 的 CSI 端口的 OV5640。对于使用 uvcvideo 驱动程序的基于 USB 的相机,我认为不需要 media-ctl。如果 Linux 内核可以使用正确的内核模块,那么当您插入摄像头时,摄像头应该会自动添加到 /dev/videoX 下。