Questions about buffer's timestamp in RTP application
wim.taymans at gmail.com
Wed Dec 12 07:00:48 PST 2012
On 12/12/2012 02:14 PM, cee1 wrote:
> Hi, all
> I'm doing some experiment with gstreamer 0.10 in RTP application:
> * Sender:
> gst-launch-0.10 filesrc location=sample.ogg ! decodebin2 ! \
> x264enc tune=zerolatency byte-stream=true bitrate=1024
> vbv-buf-capacity=300 \
> bframes=0 b-pyramid=true weightb=true me=dia key-int-max=48 ! \
> rtph264pay ! udpsink
> * Receiver:
> gst-launch-0.10 udpsrc
> caps="application/x-rtp,media=(string)video,clock-rate=(int)90000" !
> rtph264depay ! ffdec_h264 ! autovideosink
> Went through the source, I found rtph264depay doesn't use RTP
> timestamp and -- It seems the gstbuffer's timestamp is packet's
> received time, so
> 1. What does RTP timestamp do ?
Nothing if you don't use gstrtpjitterbuffer. With gstrtpjitterbuffer it
is used to estimate the clock drift between the sender and receiver and
it is used to create a GStreamer timestamp on buffers.
> 2. How does the receiver play properly? I mean without new segment
> event and gstbuffer's timestamp, how can the receiver play it at a
> proper rate(e.g. 24FPS) ?
Without a gstrtpjitterbuffer, buffers are played immediately when they
are decoded/received. With a gstrtpjitterbuffer they are played based on
the rtp timestamp and the estimated clock drift.
More information about the gstreamer-devel