Hi,
Based on JP 4.5.1, I’m developing a camera which supports multiple RTSP video streams with different resolution at the same time. Here is my brief pipeline:
gst-rtsp-server will create multiple (3 in my case) rtsp server pipelines from interpipesrc to rtph264pay, and each pipeline can have multiple stream connections.
Now I have problem when having multiple connections from different clients.
On FHD pipeline, if I use VLC to play the RTSP stream from client PCs, I can play 2 connections concurrently, hard to play 3 (can play sometimes). When the stream is not able to connect, the camera side gstreamer log is:
Apr 21 09:51:45 : rtsp_client_connected_callback() RTSP client 0x7f20378180 connected
Apr 21 09:51:45 : s_rtsp_connection_cb() RTSP no of connection 4
Apr 21 09:51:45 : 0:34:30.570570356 208156 0x7f24004f70 ERROR rtspclient rtsp-client.c:1020:find_media: client 0x7f20378180: not authorized for factory path /video2
Apr 21 09:51:45 : 0:34:30.570602075 208156 0x7f24004f70 ERROR rtspclient rtsp-client.c:2899:handle_describe_request: client 0x7f20378180: no media
Apr 21 09:51:45 : 0:34:30.571868898 208156 0x7f24004f70 WARN rtspmedia rtsp-media.c:3268:gst_rtsp_media_prepare: media 0x7ef40073c0 was not unprepared
Apr 21 09:51:45 : 0:34:30.571908169 208156 0x7f24004f70 ERROR rtspclient rtsp-client.c:1044:find_media: client 0x7f20378180: can't prepare media
Apr 21 09:51:45 : 0:34:30.571971606 208156 0x7f24004f70 ERROR rtspclient rtsp-client.c:2899:handle_describe_request: client 0x7f20378180: no media
Apr 21 09:51:45 : rtsp_client_closed_callback() RTSP client 0x7f20378180 rtsp://10.10.1.187:63979(null) closed
Apr 21 09:51:45 : s_rtsp_connection_cb() RTSP no of connection 3
It looks like the media pipeline is not created on 3rd connection.
My question is, is there any limitation of nvvidconv or nvv4l2h264enc number of instances concurrently? Or can it be NVENC/GPU/hardware usage?
This is result of tegrastats
So, does it mean the nvvidconv will use VIC, and as the VIC usage now is low, then it will be fine with this amount of nvvidconv?
How about nvv4l2h264enc? I see NVENC value is 268 in tegrastats, and it is constant, doesn’t change when I use one or many nvv4l2h264enc elements, and multiple resolution as well. So how to know the encoding is full load or not?
Thank you.
Hi,
It is fine to set the property to every nvv4l2h264enc in the pipeline. You can check tegrastats to confirm the clock keeps at maximum value always.