Gstreamer shmsink pipeline does not display out of the docker container


I was trying to run a gstreamer pipeline inside a docker container which sinks a videoestsrc using an shmsink and it creates a socket file as shown below:

gst-launch-1.0 videotestsrc pattern=smpte ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! shmsink socket-path=ck sync=false shm-size=200000000

the problem is in the receiving end which does not display the testvideo in both docker container and out the container. The below pipeline is the receiving pipeline:

gst-launch-1.0 shmsrc socket-path=ck ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! videoconvert ! autovideosink

the error generated from the above receiving pipeline as follows when running without sudo:

(gst-launch-1.0:11646): GStreamer-CRITICAL **: 15:07:16.650: gst_poll_remove_fd: assertion 'fd->fd >= 0' failed
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Could not open socket /home/usr/MD/chk: 13 Permission denied
Additional debug info:
gstshmsrc.c(250): gst_shm_src_start_reading (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0
Setting pipeline to NULL ...

When running with sudo

 sudo gst-launch-1.0 shmsrc socket-path=/home/usr/MD/ck ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
shm_open failed on /shmpipe.   25.    0 (2): No such file or directory
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Failed to read from shmsrc
Additional debug info:
gstshmsrc.c(376): gst_shm_src_create (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0:
Error reading control data: -4
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

How to resolve this issue. Is there any method of reading a file inside the docker container since the docker runs in root privileges?

Thanks in advance.

We don’t have experience about using the plugins. Would need other users to check and share experience.

Foo sending video frame data, generally we use UDP or RTSP. You may refer to the setup in Jetson Nano FAQ

Q: Is there any example of running RTSP streaming?
Q: Is there an example for running UDP streaming?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.