Questions about buffer's timestamp in RTP application

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

Questions about buffer's timestamp in RTP application

cee1
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 ?
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) ?



--
Regards,

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

Re: Questions about buffer's timestamp in RTP application

Tim-Philipp Müller-2
On Wed, 2012-12-12 at 21:14 +0800, cee1 wrote:

> * 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 ?
> 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) ?

You should add a jitterbuffer between udpsrc and the payloader. The
jitterbuffer will deal with the capture (udpsrc) timestamps and the RTP
timestamps.

 Cheers
  -Tim

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

Re: Questions about buffer's timestamp in RTP application

Olivier Crête-3
In reply to this post by cee1
Hi,

rtpjitterbuffer inside rtpbin adjusts the GStreamer timestamps using the RTP timestamps. Use rtpbin.

Olivier

cee1 <[hidden email]> 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 ?
>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) ?

--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Questions about buffer's timestamp in RTP application

Wim Taymans
In reply to this post by cee1
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.

Wim

>
>
>

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