RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
143 stars 64 forks source link

interpipe used in deepstream example #51

Closed zhenglh33 closed 4 years ago

zhenglh33 commented 4 years ago

Hi everyone.

(1)I am trying to add dynamic control to my code. So I am modifying deepstream-app-test4, and this is my pipeline source -> decodebin -> muxer -> tee1 -> pgie -> tracker -> osd -> tee2 -> renderer tee1-> interpipesink => interpipesrc... and tee2 ->msgconv -> msgbroker => GUI When I set the recording pipeline as

recording_pipe = gst_parse_launch("interpipesrc listen-to=record_h264 format=time allow-renegotiation=true enable-sync=true is-live=true ! queue ! nvmultistreamtiler width=1920 height=1080 rows=2 columns=2 ! nvvideoconvert ! nvv4l2h264enc insert-sps-pps=true iframeinterval=10 bitrate=8000000 ! h265parse ! matroskamux ! filesink name=filesink_record_h264 location=output_h264.mkv sync=false async=false", NULL);

and set the pipeline state as GST_STATE_PLAYING. The original pipeline will freeze and I can get only one frame as video output.

But if I set pipeline as

recording_pipe = gst_parse_launch("interpipesrc listen-to=record_h264 format=time allow-renegotiation=true enable-sync=true is-live=true ! queue ! nvmultistreamtiler width=1920 height=1080 rows=2 columns=2 ! nvvideoconvert ! nveglglessink", NULL);

it can display the streaming video and original pipeline’s display will be lagging, but able to play.

This is the interpipesink I used in my code.

g_object_set (G_OBJECT (recording_sink), "name", "record_h264", "forward-events", TRUE, "forward-eos", TRUE, "sync", FALSE, "async", FALSE, "enable-last-sample", FALSE,"drop", TRUE, NULL);

Does anyone have idea about issue?

(2) I looked into other code, if I used gstd-client, the issue might be solved. But since there is a probe function in example code. Is there a way to use this probe function with gstd c library?

Thanks in advance

jcaballeros commented 4 years ago

Hi,

In your recording pipeline you have "nvv4l2h264enc insert-sps-pps=true iframeinterval=10 bitrate=8000000 ! h265parse", these two elements will fail to link because the nvv4l2h264enc src pad capabilities are video/x-h264 while h265parse sink pad capabilities are video/x-h265, therefore the pipeline will not go to play. Try with h264parse instead.

This doesn't seem to be an interpipes issue, closing.

Jennifer