I’ve got a pipeline watching and streaming 30Hz 1080 over UDP to localhost.
Question: is it reasonable to stream 4 streams on an 8 core rysan?
I’ve manipulted (leaky queue) so any single stream is within 100ms or so of the original v4l2src
Running 2 streams (cores around 50%) and latency goes up ubout 10secs per minute.
I found a videotesestsrc with bouncing ball and timer example. 1 stream is within ms, 2 drifts.
It very much depends on what you are doing with the streams? Are you encoding? Are you doing transformations? But from a high level, dealing with 4x 1080p30 streams on a modern system shouldn’t be an issue. Can you share the pipeline you are using?
I’m still having a torrid time with latency
On NVIDIA forum Honey_Patouceul opined that
shmsink/src may result in significant CPU usage. Maybe using a network streaming protocol into localhost could save more resources, but I haven’t really profiled that.
I find the CPU usage is low (20% cf 50% udpsink/src) and that timing is perfect BUT in contravention of the unix way the SHM segment is not shared (rw- r-- —)
So back to basics, how do I share a pipeline from 1 user to another user.
User streaming stream1 or stream2
User1 watching stream1
or
User2 watching stream2
latency sub 100ms
User streaming stream1 and stream2
User1 watching stream1
and
User2 watching stream2
latency 5 to 10 secs / minute accumulating
latency is on (only???) the receive side. Stopping the sender, receiver keeps receiving.
Here is my receive pipeline:
gst-launch-1.0 -vc udpsrc port=5002 close-socket=false multicast-iface=false auto-multicast=true ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! xvimagesink sync=false async=false udpsrc port=3446 ! ‘application/x-rtp,media=audio,payload=96,clock-rate=22000,encoding-name=L24’ ! rtpL24depay ! audioconvert ! autoaudiosink sync=false
replace rtpjitterbuffe with queue results in no delay, artifacts on the display. (smeer of bouncing ball)
Run Ridge’s interpipe looks interesting, but it won’t build on 24.04
Note that my advice in NVIDIA forum was for a case of passing raw video through shmsrc/shmsink with a Jetson, it can be very different with your own platform.
All perfect.
I run the same receive again and again perfect.
Instead (of running again) I run the same receive pipeline as another user.
No errors in terminal but the display is utter rubbish (lines, black and white ! marks, title bar)
Can anybody tell me what I don’t understand please?
After struggling lots your help resolved my issues - thanks
I’ve been fiddling lots and 60 crept in, in place of 30 while I was trying things.
The bit that solved for me was from your suggestion:
rtpjitterbuffer latency=0
I am using udpsink/src.
But I would like to solve the shm other-user issue (That is a failing of being libra - perfection) so I’ll give a try in the morning (Australia time is way out)