TDA4VM: IMX390点亮两路画面

Part Number: TDA4VM

您好,

我现在在实现两路摄像头画面拼接,由于我只有两个摄像头,所以我暂时点亮两路,请问我为什么输入GStreamer命令后,无画面出现呢?一路摄像头是正常的,支持两路摄像头点亮吗?

这是我的GStreamer命令,谢谢!

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gst-launch-1.0 \
v4l2src device=/dev/video-imx390-cam0 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! \
video/x-bayer, width=1920, height=1280, format=rggb12 ! \
tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name=SENSOR_SONY_IMX390_UB953_D3 \
dcc-isp-file=/opt/imaging/imx390/wdr/dcc_viss_wdr.bin \
sink_0::dcc-2a-file=/opt/imaging/imx390/wdr/dcc_2a_wdr.bin format-msb=7 ! \
video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 \
v4l2src device=/dev/video-imx390-cam1 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! \
video/x-bayer, width=1920, height=1280, format=rggb12 ! \
tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name=SENSOR_SONY_IMX390_UB953_D3 \
dcc-isp-file=/opt/imaging/imx390/wdr/dcc_viss_wdr.bin \
sink_0::dcc-2a-file=/opt/imaging/imx390/wdr/dcc_2a_wdr.bin format-msb=7 ! \
video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<480>" \
sink_1::startx="<0>" sink_1::starty="<480>" sink_1::widths="<640>" sink_1::heights="<480>" \
queue ! video/x-raw, width=1920, height=1280 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@j721e-evm:/opt/edgeai-gst-apps# media-ctl -p
Media controller API version 6.1.80
Media device information
------------------------
driver j721e-csi2rx
model TI-CSI2RX
serial
bus info platform:4500000.ticsi2rx
hw revision 0x1
driver version 6.1.80
Device topology
- entity 1: 4500000.ticsi2rx (17 pads, 17 links, 2 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev3
routes:
0/0 -> 2/0 [ACTIVE]
0/1 -> 3/0 [ACTIVE]
pad0: Sink
[stream:0 fmt:SRGGB12_1X12/1920x1280 field:none]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,

    可以尽快回复我吗?谢谢

  • 您好,

    这是我的log,

    root@j721e-evm:/opt/edgeai-gst-apps# gst-launch-1.0 \
    > v4l2src device=/dev/video-imx390-cam0 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! \
    > video/x-bayer, width=1920, height=1280, format=rggb12 ! \
    > tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name=SENSOR_SONY_IMX390_UB953_D3 \
    > dcc-isp-file=/opt/imaging/imx390/wdr/dcc_viss_wdr.bin \
    > sink_0::dcc-2a-file=/opt/imaging/imx390/wdr/dcc_2a_wdr.bin format-msb=7 ! \
    > video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 \
    > v4l2src device=/dev/video-imx390-cam1 io-mode=5 ! queue max-size-buffers=1 leaky=2 ! \
    > video/x-bayer, width=1920, height=1280, format=rggb12 ! \
    > tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name=SENSOR_SONY_IMX390_UB953_D3 \
    > dcc-isp-file=/opt/imaging/imx390/wdr/dcc_viss_wdr.bin \
    > sink_0::dcc-2a-file=/opt/imaging/imx390/wdr/dcc_2a_wdr.bin format-msb=7 ! \
    > video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 \
    > tiovxmosaic name=mosaic \
    > sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<480>" \
    > sink_1::startx="<0>" sink_1::starty="<480>" sink_1::widths="<640>" sink_1::heights="<480>" \
    > queue ! video/x-raw, width=1920, height=1280 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    1367.211160 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    1367.211229 s: VX_ZONE_INIT:Enabled
    1367.211236 s: VX_ZONE_ERROR:Enabled
    1367.211242 s: VX_ZONE_WARNING:Enabled
    1367.211779 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0
    1367.211909 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1
    1367.212013 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2
    1367.212089 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3
    1367.212097 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
    1367.212580 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    [ 1361.355816] ds90ub960 5-003d: rx0 CSI error: 0xc
    [ 1361.360453] ds90ub960 5-003d: rx0 CSI checksum error
    [ 1361.365420] ds90ub960 5-003d: rx0 CSI length error
    [ 1361.371726] ds90ub960 5-003d: rx1 CSI error: 0xc
    [ 1361.376362] ds90ub960 5-003d: rx1 CSI checksum error
    [ 1361.381337] ds90ub960 5-003d: rx1 CSI length error
    IttCtrl_registerHandler: command echo registered at location 0
    IttCtrl_registerHandler: command iss_read_2a_params registered at location 1
    IttCtrl_registerHandler: command iss_write_2a_params registered at location 2
    IttCtrl_registerHandler: command iss_raw_save registered at location 3
    IttCtrl_registerHandler: command iss_yuv_save registered at location 4
    IttCtrl_registerHandler: command iss_read_sensor_reg registered at location 5
    IttCtrl_registerHandler: command iss_write_sensor_reg registered at location 6
    IttCtrl_registerHandler: command dev_ctrl registered at location 7
    IttCtrl_registerHandler: command iss_send_dcc_file registered at location 8
    Error: failed to open i2c bus at /dev/i2c-9
    Warning: Failed to initialize i2c bus. Register read/write will not work !!!
    NETWORK: Opened at IP Addr = 0.0.0.0, socket port=5000!!!
    ^Chandling interrupt.
    Interrupt: Stopping pipeline ...
    Execution ended after 0:00:04.002959800
    Setting pipeline to NULL ...
    Freeing pipeline ...
    1371.458424 s: VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
    1371.462809 s: VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 98 alloc's of 157866760 bytes
    DDR_SHARED_MEM: Free's : 98 free's of 157866760 bytes
    DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!

    希望能尽快回复我,谢谢您

  • 补充log:

    0:00:02.683134490 3945 0x9af79e0 WARN tiovxmosaic gsttiovxmosaic.c:721:gst_tiovx_mosaic_check_dimension:<mosaic> Pad height: -1 is larger than input height: 1280, setting input height
    mosaic_pad->width[0]:960, GST_VIDEO_INFO_WIDTH(&video_info):1920, width:0
    mosaic_pad->width[1]:-1, GST_VIDEO_INFO_WIDTH(&video_info):1920, width:960

  • 若单路摄像头正常但双路无输出,可能的原因包括硬件配置、驱动、GStreamer管道设计​​等。

    如果是自己做的板子,请检查CSI接口等配置。

    关于GStreamer,请参考Building GStreamer

  • 您好,

    我采用以下命令可以实现两路摄像头画面拼接,但是有时候成功,有时候失败,成功的时候,画面位置不确定,如下边图像,失败的时候像是卡住了

    Fullscreen
    1
    2
    3
    4
    tiovxmosaic name=mosaic \
    sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<960>" sink_0::heights="<640>" \
    sink_1::startx="<960>" sink_1::starty="<0>" sink_1::widths="<960>" sink_1::heights="<640>" ! \
    queue ! video/x-raw, width=1920, height=1280 ! queue ! glimagesink sync=false
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    但是使用kmssink driver-name=tidss sync=false force-modesetting=true,始终失败。请问会不会是带宽不够,还是其他原因

  • 不排除带宽问题。

  • 您好,

    1. 请问为什么kmssink driver-name=tidss sync=false force-modesetting=true此命令一直是失败的,glimagesink  sync=false这个偶尔成功

    2. 如果是带宽问题,怎么去验证和解决呀

    感谢帮助

  •  这个是不是代表带宽是800M,应该是够的吧

    我用的是TDA4-EVM开发板

  • 800M的话带宽应该没有问题。

    请按照上面的回答,总体上做一个排查,不要总抠个别问题。

  • 我都已经排查过,驱动和硬件都没问题,而且他还可以根据当前环境,实时计算AE值,说明是取到流了,就是显示不出来。正是因为我排查不出来问题了,才问您的,猜测是GStreamer拼接问题,但是命令我看了也没问题,之前您没有遇到过这种问题吗

  • 请您帮忙看下我的最新log,最后显示视频数据格式不匹配,您有什么建议吗

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j721e-evm:/opt/edgeai-gst-apps# GST_DEBUG=4 gst-launch-1.0 v4l2src device=/dev/video19 ! video/x-bayer, width=1920, height=1280, framerate=30/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev0 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 v4l2src device=/dev/video20 ! video/x-bayer, width=1920, height=1280, framerate=30/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev1 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 tiovxmosaic name=mosaic sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<960>" sink_0::heights="<640>" sink_1::startx="<960>" sink_1::starty="<0>" sink_1::widths="<960>" sink_1::heights="<640>" ! queue ! video/x-raw, width=1920, height=1280 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true
    0:00:00.000135595 2347 0xd728600 INFO GST_INIT gst.c:591:init_pre: Initializing GStreamer Core Library version 1.20.6
    0:00:00.000234830 2347 0xd728600 INFO GST_INIT gst.c:592:init_pre: Using library installed in /usr/lib
    0:00:00.000256180 2347 0xd728600 INFO GST_INIT gst.c:610:init_pre: Linux j721e-evm 6.1.33-g8f7f371be2 #1 SMP PREEMPT Fri Jul 14 00:39:55 UTC 2023 aarch64
    0:00:00.000650030 2347 0xd728600 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
    0:00:00.001412210 2347 0xd728600 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
    0:00:00.001718680 2347 0xd728600 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
    0:00:00.001871140 2347 0xd728600 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin "staticelements"
    0:00:00.001889415 2347 0xd728600 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin "staticelements", result: 1
    0:00:00.001963865 2347 0xd728600 INFO GST_REGISTRY gstregistry.c:1826:ensure_current_registry: reading registry cache: /home/root/.cache/gstreamer-1.0/registry.aarch64.bin
    0:00:00.030872225 2347 0xd728600 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /home/root/.cache/gstreamer-1.0/registry.aarch64.bin in 0.028853 seconds
    0:00:00.031059310 2347 0xd728600 INFO GST_REGISTRY gstregistry.c:1693:scan_and_update_registry: Validating plugins from registry cache: /home/root/.cache/gstreamer-1.0/registry.aarch64.bin
    0:00:00.036005930 2347 0xd728600 INFO GST_REGISTRY gstregistry.c:1785:scan_and_update_registry: Registry cache has not changed
    0:00:00.036042890 2347 0xd728600 INFO GST_REGISTRY gstregistry.c:1861:ensure_current_registry: registry reading and updating done
    0:00:00.036062460 2347 0xd728600 INFO GST_INIT gst.c:826:init_post: GLib runtime version: 2.72.3
    0:00:00.036077325 2347 0xd728600 INFO GST_INIT gst.c:828:init_post: GLib headers version: 2.72.3
    0:00:00.036087365 2347 0xd728600 INFO GST_INIT gst.c:830:init_post: initialized GStreamer successfully
    0:00:00.036201920 2347 0xd728600 INFO GST_PIPELINE gstparse.c:344:gst_parse_launch_full: parsing pipeline description 'v4l2src device=/dev/video19 ! video/x-bayer, width=1920, height=1280, framerate=30/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev0 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 v4l2src device=/dev/video20 ! video/x-bayer, width=1920, height=1280, framerate=30/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev1 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 tiovxmosaic name=mosaic sink_0::startx=<0> sink_0::starty=<0> sink_0::widths=<960> sink_0::heights=<640> sink_1::startx=<960> sink_1::starty=<0> sink_1::widths=<960> sink_1::heights=<640> ! queue ! video/x-raw, width=1920, height=1280 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true '
    0:00:00.062821505 2347 0xd728600 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstvideo4linux2.so" loaded
    0:00:00.062874835 2347 0xd728600 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "v4l2src"
    0:00:00.065494840 2347 0xd728600 INFO GST_ELEMENT_PADS gstelement.c:760:gst_element_add_pad:<GstBaseSrc@0xd9bc160> adding pad 'src'
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 具体的建议上面都说了,有时候排查一遍可能发现不了问题,建议再仔细排查一下。