gst-rtsp-server, appsrc/appsink and tee

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

gst-rtsp-server, appsrc/appsink and tee

Eloi Bail
Hi guys,

I am using gst-rtsp-server with appsrc/appsink so that I can have an independent running pipeline:
  • my "appsink" pipeline is : videotestsrc ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! appsink.
  • my "RTSP" pipeline is : appsrc caps=video/x-h264, .... ! rtph264pay name=pay0

I am writing appsink buffer timestamps by hand based on the framerate.

Now I want to have a tee so that videos are serialized in a mkv file while streaming over RTSP.

I can't have 2 tee branches working together. If the serialization is enabled I notice that my 
rtph264pay handle buffer is not smoothy running.  I know that is it better to disable async when using tee. I did that for appsink and filesink.

I can also have the whole pipeline working without appsrc/appsink with everything done in gst-rtsp-server pipeline. But then the lifecycle of serialization will follow RTSP client connection. That is the reason why I choose appsrc/appsink.

Is my issue due to async management in gst-rtsp-server  ?

Thanks,

Eloi

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-rtsp-server, appsrc/appsink and tee

Eloi Bail
I wrote a simple test application that use appsrc /appsink and tee without a gst-rtsp-server context and can reproduce the issue.

In test.py in attachment, one of my tee branch is decoding and displaying videotestsrc, the other tee branch is muxing the h264 streams into a file.

When running ./test.py I have my content displayed.
When running ./test.py --serialize, the matroska file is correctly fed but the video is never displayed.

I will investigate that further tomorrow. If someone could give me advice, that would be great.

Thanks,

Eloi

On Mon, Dec 17, 2018 at 3:02 PM Eloi Bail <[hidden email]> wrote:
Hi guys,

I am using gst-rtsp-server with appsrc/appsink so that I can have an independent running pipeline:
  • my "appsink" pipeline is : videotestsrc ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! appsink.
  • my "RTSP" pipeline is : appsrc caps=video/x-h264, .... ! rtph264pay name=pay0

I am writing appsink buffer timestamps by hand based on the framerate.

Now I want to have a tee so that videos are serialized in a mkv file while streaming over RTSP.

I can't have 2 tee branches working together. If the serialization is enabled I notice that my 
rtph264pay handle buffer is not smoothy running.  I know that is it better to disable async when using tee. I did that for appsink and filesink.

I can also have the whole pipeline working without appsrc/appsink with everything done in gst-rtsp-server pipeline. But then the lifecycle of serialization will follow RTSP client connection. That is the reason why I choose appsrc/appsink.

Is my issue due to async management in gst-rtsp-server  ?

Thanks,

Eloi


--

Eloi Bail

 

1 rue Armand Barbes | 35000 Rennes | France | 

t. +33 6 58 37 46 14


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

test.py (8K) Download Attachment