problems while pushing data to rtsp server through appsrc

Swaroop, Narasimha Narasimha.Swaroop at
Mon Nov 14 04:23:35 PST 2011



I am trying to build rtsp streamer test application based on gstreamer's
example rtsp application.  Please find the code attached.


In the streamer I create 2 rtsp_media_factories with launch strings 


"appsrc name=aps is-live=true block=true !
video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! videoscale !
video/x-raw-yuv,width=320,height=240 ! x264enc ! rtph264pay name=pay0


"appsrc name=aps ! ffmpegcolorspace ! videoscale !
video/x-raw-yuv,width=176,height=120 ! videorate !
video/x-raw-yuv,framerate=10/1 ! ffenc_mpeg4 ! rtpmp4vpay name=pay0


I have derived GstRTSPMediaFactory  and implemented a class which has
modifications in custom_get_element().  (Gets appsrc element from
pipeline which is later used to push data into the pipeline) 


The mainline code has a persistent pipeline : "videotestsrc is-live=true
! video/x-raw-yuv,width=320,height=240 ! appsink name=apsink
max-buffers=10 drop=true". This keeps on running and appsink will keep
dropping old buffers.


Whenever a client connects to server, as per the design of rtsp server,
it creates corresponding pipeline starting from appsrc and then appsink
starts pushing buffers to that pipeline.


I am facing a couple of problems here and need some clarifications.


1.       As soon as client connects (Vlc player)  it displays first
frame and it freezes for 30 to 60 seconds, then it continues displaying
video. When this happens I get following errors. This is also
inconsistent sometimes it doesn't play video for minutes.

0:00:03.470756887  4570  0x821c098 WARN                     bin
gstbin.c:2384:gst_bin_do_latency_func:<media-pipeline> failed to query

0:00:03.471939373  4570  0x83df298 WARN               videorate
gstvideorate.c:691:gst_video_rate_event:<videorate0> Got segment but
doesn't have GST_FORMAT_TIME value

0:00:03.881337049  4570  0x83df298 WARN                basesink
gstbasesink.c:3626:gst_base_sink_chain_unlocked:<multiudpsink0> warning:
Internal data flow problem.

0:00:03.881364737  4570  0x83df298 WARN                basesink
gstbasesink.c:3626:gst_base_sink_chain_unlocked:<multiudpsink0> warning:
Received buffer without a new-segment. Assuming timestamps start from 0.

0:00:03.887089513  4570  0x8329c00 WARN               rtspmedia
rtsp-media.c:1511:default_handle_message: 0x83270d0: got warning
Internal data flow problem. (gstbasesink.c(3626):
gst_base_sink_chain_unlocked ():


I guess I could do away with multiudpsink error by setting its "sync"
property to false (because I did the same thing with ximagesink earlier
and it worked) but I am not aware of its side effects. Will there be any
problems if I do that?


2.       How to solve errors related with videorate?


I want to understand root cause of this problem. Am I missing something
here? Any suggestions or explanations will be extremely helpful.


Thanks and Regards,





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Type: application/x-zip-compressed
Size: 6093 bytes
URL: <>

More information about the gstreamer-devel mailing list