Why does this pipeline stop as soon as it runs?

Please provide complete information as applicable to your setup.

**• Hardware Platform (Jetson / GPU)**Jetson Orin NX 16GB
• DeepStream Version 6.2
**• JetPack Version (valid for Jetson only)**5.1.1
• TensorRT Version 8.5.2
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs) questions
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing) command line
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

Hi, this pipeline command stops as soon as it executes.
I couldn’t find the reason.

I wrote it at the c++ source level, but this didn’t work.
Therefore, I tested with gst-launch-1.0. However, the issue that stops immediately after executing the command is the same.

The first command line I tried is as follows.

gst-launch-1.0 \
v4l2src device=/dev/video0 \
! "image/jpeg,width=1280,height=720,framerate=30/1" \
! jpegdec ! videoconvert ! nvvideoconvert ! "video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1" \
! nvstreammux0.sink_0 nvstreammux name=nvstreammux0 width=720 height=720 batch-size=1 ! queue \
! nvmultistreamtiler ! queue ! nvvideoconvert ! queue \
! nvdsosd ! queue ! tee name=video0 \
video0. ! nvegltransform ! nveglglessink sync=false \
video0. ! nvvideoconvert ! "video/x-raw(memory:NVMM),format=I420" ! nvv4l2h264enc ! h264parse ! splitmuxsink max-size-time=30000000000 location=/home/nvidia/videos/test_%05d.mp4

And I tried simplifying this command line into a file stream. But the status quo is the same.

gst-launch-1.0 \
uridecodebin uri="file:///opt/nvidia/deepstream/deepstream-6.2/samples/streams/sample_720p.mp4" \
! nvvideoconvert ! "video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1" \
! nvstreammux0.sink_0 nvstreammux name=nvstreammux0 width=720 height=720 batch-size=1 ! queue \
! nvmultistreamtiler ! queue ! nvvideoconvert ! queue \
! nvdsosd ! queue ! tee name=video0 \
video0. ! nvegltransform ! nveglglessink sync=false \
video0. ! nvvideoconvert ! "video/x-raw(memory:NVMM),format=I420" ! nvv4l2h264enc ! h264parse ! splitmuxsink max-size-time=30000000000 location=/home/nvidia/videos/test_%05d.mp4

The symptoms I observed seem to stop when the line that forms splitmuxsink is added at the branch of the tee.

This pipeline can work:

gst-launch-1.0 \
uridecodebin uri="file:///opt/nvidia/deepstream/deepstream-6.2/samples/streams/sample_720p.mp4" \
! nvvideoconvert ! "video/x-raw(memory:NVMM),format=NV12,width=1280,height=720,framerate=30/1" \
! nvstreammux0.sink_0 nvstreammux name=nvstreammux0 width=720 height=720 batch-size=1 ! queue \
! nvmultistreamtiler ! queue ! nvvideoconvert ! queue \
! nvdsosd ! tee name=video0 \
video0. ! queue ! nvegltransform ! nveglglessink sync=false \
video0. ! queue ! nvvideoconvert ! "video/x-raw(memory:NVMM),format=I420" ! nvv4l2h264enc ! h264parse ! splitmuxsink max-size-time=30000000000 location=/home/nvidia/videos/test_%05d.mp4

Hello, Fiona.Chen
As you told me
Changed the position of the queue.

The pipeline is now running normally.

I have a question.

  1. What was wrong with the pipeline before the modification?
  2. I wonder what methods can be used to solve the problem in this situation.

And another question.


gst-launch-1.0 -v videotestsrc ! x264enc key-int-max=12 byte-stream=true ! mpegtsmux ! tcpserversink port=8888 host=192.168.20.65

This pipeline runs normally and
Video is well loaded from vlc.

But to use nvv4l2h264enc
If I change it as below
Only the black screen plays in the vlc.


gst-launch-1.0 -v videotestsrc ! nvvideoconvert ! nvv4l2h264enc ! h264parse ! mpegtsmux ! tcpserversink port=8888 host=192.168.20.65

Is there something I’m missing?

Thank you!

The tee do not copy buffers to branches. Different branches work in the same thread too. So the branches will block each other when there is no sub-thread in branches.

Run as asynchronously as possible.

How did you load the video in vlc?

Tested with VLC installed on Windows 10 PC.
The method of playback is as follows.
Ctrl + N → tcp://192.168.20.65:8888


capturevlc2

I’ve tried the two pipelines, they all work well. I can’t reproduce your problem.

OK I’ll try
Thank you Fiona

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