Re : Re : Re : Re : Help with RTP

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re : Re : Re : Re : Help with RTP

Aurelien Grimaud (elzz)
Keep in touch with list, do not forget to post your rtsp server bin enhancement on bugzilla !
Such an element could be very interesting, as an alternative to DSS.

Aurelien

----- Message d'origine ----
De : Rémi BUISSON <[hidden email]>
À : Discussion of the development of GStreamer <[hidden email]>
Envoyé le : Vendredi, 8 Août 2008, 15h28mn 05s
Objet : Re: [gst-devel] Re : Re : Re : Help with RTP

OK I understand now. I have all in mind to do a good job.

Rémi

Aurelien Grimaud wrote:

> There are two "rtpbin" elements availables for gstreamer
> rtpbin from gst-plugin-farsight and gstrtpbin from gst-plugins-bad.
> I think Remi was using farsight's and Thomas gst-plugin-bad one.
> I prefer the last one (gstrtpbin), it handles multiple rtp sessions,
> with AV sync using rtcp. jitterbuffer works better and RTCP is generated.
>
> Remi, keep in mind that RTP is only a transport. You need some
> negotiation to be able to display a stream. RTP, for many case, is not
> enough. You need clockrate, frame size, frame rate of the stream and
> of course which codec to use.
> These are the informations given by the sdp file, which are exchanged
> via the stream negotiation protocol RTSP.
> So RTP handling is not enough if you want your client to be generic.
> You also need a codec negotiation for client to know what is sent and 
> how to handle it.
>
> > Do you mean I have to write a plugin which is like this pipeline ?
> > src -> demuxer -> streamer_transformer -> encoder -> payloader -> rtp
>
> Actually, just the src/demuxer part of this pipeline is missing in
> gstreamer.
> It could be a rtspserversrc :
> It would act as a udp/tcp src, handling rtsp requests.
> DESCRIBE requests may be answered via local sdp files (as in QTSS) or
> full filled by a signal
> SETUP requests create udpsink elements, and new sometimes sink pad  to
> link to rtp.
> PLAY and PAUSE requests will be signaled to application.
> TEARDOWN will clean up and send eos.
>
> In fact rtspserversrc does not need to be a source. It can be linked
> to a tcp/udp source feeding it with rtsp.
>
> udpsrc (rtsp) -->  |----------------| <--- <SETUP pad> -- <--
> payloader <-- encoder <-- stream_transformer <-- stream source
>                              | rtspserverbin |
>                              |----------------| --> |-----------|
>                                                              |
> gstrtpbin |--> udpsink (rtp)
>                                  udpsrc (rtcp) --> |-----------|-->
> udpsink (rtcp)
>                                               
>
> Aurelien
>
> ----- Message d'origine ----
> De : Thomas Winkler <[hidden email]>
> À : [hidden email]
> Envoyé le : Vendredi, 8 Août 2008, 12h05mn 02s
> Objet : Re: [gst-devel] Re : Re : Help with RTP
>
> gst-launch rtpbin localport=5000 ! rtph264depay ! decodebin ! xvimagesink
>
> This pipeline is incomplete. Your Sender pipeline uses udpsink, so you
> have to use udpsrc on your Receiver. If you want to use rtpbin on your
> Receiver, you have to add the udpsrc element and connet it with the
> rtpbin element.
>
> Example:
>
>
> Sender:
> =========
> VCAPS="video/x-raw-yuv,width=352,height=288,framerate=15/1"
> RHOST=192.168.0.5
>
> gst-launch-0.10 -v gstrtpbin name=rtpbin v4l2src ! $VCAPS \
>                        ! ffmpegcolorspace \
>                        ! ffenc_h263 \
>                        ! video/x-h263 \
>                        ! rtph263pay \
>                        ! application/x-rtp \
>                        ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 \
>                        ! application/x-rtp \
>                        ! udpsink host=$RHOST port=5000 sync=false
> async=false rtpbin.send_rtcp_src0 \
>                        ! udpsink host=$RHOST port=5001 sync=false
> async=false udpsrc port=5005 \
>                        ! application/x-rtcp \
>                        ! rtpbin.recv_rtcp_sink_0
>
>
>
> Receiver:
> =========
> VCAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263"
> RHOST=192.168.0.5
>
> gst-launch-0.10 -v gstrtpbin name=rtpbin udpsrc caps=$VCAPS port=5000 \
>                        ! application/x-rtp \
>                        ! rtpbin.recv_rtp_sink_0 rtpbin. \
>                        ! application/x-rtp \
>                        ! rtph263depay \
>                        ! video/x-h263 \
>                        ! decodebin \
>                        ! ffmpegcolorspace \
>                        ! xvimagesink sync=false async=false udpsrc
> port=5001 \
>                        ! application/x-rtcp \
>                        ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 \
>                        ! application/x-rtcp \
>                        ! udpsink host=$RHOST port=5005 sync=false
> async=false
>
>
>
> -------- Original-Nachricht --------
> > Datum: Fri, 08 Aug 2008 09:09:00 +0200
> > Von: "Rémi BUISSON" <[hidden email]
> <mailto:[hidden email]>>
> > An: Discussion of the development of GStreamer
> <[hidden email]
> <mailto:[hidden email]>>
> > Betreff: Re: [gst-devel] Re :  Re :  Help with RTP
>
> >
> >
> > Aurelien Grimaud wrote:
> > > Darwin is a streaming server. It is fed with RTP Audio/Video streams
> > > and is able to dispatch them to rtsp clients.
> > > So yes, you can stream from dvb source to Darwin, and then use an
> rtsp
> > > client to ask Darwin for the stream.
> > >
> > > To interact with Darwin, you have to write your own darwin plugin.
> > > Have a look at the QTSS documentation
> > > http://www.apple.com/quicktime/streamingserver/
> > >
> > > A better solution would be to write a gstreamer plugin acting as a
> > > RTSP server ...
> > Do you mean I have to write a plugin which is like this pipeline ?
> > src -> demuxer -> streamer_transformer -> encoder -> payloader -> rtp
> >
> > If this is this, that was my original idea but I have some trouble in
> > using rtpbin.
> > I send a file with this :
> > gst-launch filesrc location=../partage/Videos/superman_originale.avi !
> > decodebin ! x264enc ! rtph264pay ! rtpbin localport=5001
> > destinations=192.168.1.2:5000
> >
> > I receive it with this :
> > gst-launch udpsrc port=5000 ! rtph264depay ! decodebin ! xvimagesink
> >
> > And I don't know why I have to use the last pipeline instead of :
> > gst-launch rtpbin localport=5000 ! rtph264depay ! decodebin !
> xvimagesink
> >
> > to make it work.
> >
> > Next, I don't know why streams are not compatible because I can't read
> > the stream I send with VLC or Totem (which use gstreamer).
> >
> > Rémi
> > >
> > > Aurelien
> > >
> > > ----- Message d'origine ----
> > > De : Rémi BUISSON <[hidden email]
> <mailto:[hidden email]>>
> > > À : Discussion of the development of GStreamer
> > > <[hidden email]
> <mailto:[hidden email]>>
> > > Envoyé le : Jeudi, 7 Août 2008, 17h14mn 30s
> > > Objet : Re: [gst-devel] Re : Help with RTP
> > >
> > > Thanks.
> > >
> > > With this server, can I stream from dvb source for instance ?
> > >
> > > In fact, I am in an internship and the program I have to write must
> > > exchange SIP message for the commands. So my question is: can I
> interact
> > > easily with Darwin from my C program ? with a plugin ?
> > >
> > > Thanks again !
> > >
> > > Rémi
> > >
> > > Aurelien Grimaud wrote:
> > > > Hi, I think you need a server here to handle the negotiations (sdp
> > > > exchange).
> > > > Then, you can use RTCP sent by client to detect network congestion.
> > > >
> > > > Darwin streaming server is a rtsp server and may be a good start to
> > > > handle rtsp.
> > > > It also supports easy plugin writting, in which you can alter your
> > > > stream the way you want, without re-writting a rtsp stack from
> > scratch.
> > > >
> > > > Aurelien
> > > >
> > > > ----- Message d'origine ----
> > > > De : Rémi BUISSON <[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email] <mailto:[hidden email]>>>
> > > > À : Daiane Angolini <[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>>
> > > > Cc : Discussion of the development of GStreamer
> > > > <[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>>
> > > > Envoyé le : Jeudi, 7 Août 2008, 8h37mn 59s
> > > > Objet : Re: [gst-devel] Help with RTP
> > > >
> > > > Hi and thanks for your reply !
> > > >
> > > > OK I will try today and I will tell you if it works for me.
> > > >
> > > > My goal is to write a streaming server which can transcode,
> transrate,
> > > > ... a stream and using a file for clients may be some kind of a
> > > > do-it-yourself solution.
> > > >
> > > > For instance, the client send a message to the server for
> starting the
> > > > streaming of a file. Next, imagine the network is overloaded. Then,
> > the
> > > > client will ask to the server to decrease the bitrate of the stream.
> > > >
> > > > The client may be VLC, MPlayer, ...
> > > >
> > > > Have you any idea to do it ?
> > > >
> > > > I think it's possible because the streams are standardized.
> > > > Moreover, I tried to read a video streamed by flumotion over
> HTTP and
> > it
> > > > works perfectly with VLC.
> > > >
> > > > Thanks again.
> > > >
> > > > Daiane Angolini wrote:
> > > > > Hello Remi!
> > > > >
> > > > > If you want to see streaming using VLC you can use a SDP file.
> > > > >
> > > > > Try this:
> > > > >
> > > > >
> > > > > *v=0*
> > > > > *o=- 37 614155991 IN IP4 127.0.0.0*
> > > > > *s=QuickTime*
> > > > > *t=0 0*
> > > > > *a=range:npt=now-*
> > > > > *m=audio 5432 RTP/AVP 0*
> > > > > *c=IN IP4 10.29.241.6*
> > > > > *b=AS:63*
> > > > > *m=video 5434 RTP/AVP 96*
> > > > > *c=IN IP4 10.29.241.6*
> > > > > *a=rtpmap:96 H263-2000/90000*
> > > > > *a=fmtp:96  *
> > > > > *a=cliprect:0,0,144,176*
> > > > > *a=framesize:96 176-144*
> > > > >
> > > > > In this file you have both audio and video.
> > > > > But if you need a simple one, you can try this:
> > > > >
> > > > > *v=0*
> > > > > *m=video 5434 RTP/AVP 96*
> > > > > *c=IN IP4 10.29.240.186*
> > > > > *a=rtpmap:96 MP4V-ES/90000  *
> > > > > *a=fmtp:96
> > > > >
> > > >
> > >
> >
> config=000001b002000001b59113000001000000012000c488800f50584121443f;profile-level-id=2*
> > > > >
> > > > > The *config* and *profile-level-id* you can get from the return
> > value
> > > > > of *gst-lauch -v* command. In the caps property.
> > > > >
> > > > > Ah!
> > > > > To use VLC with SDP file use:
> > > > >
> > > > > vlc -vvv file.sdp
> > > > >
> > > > > I hope it works
> > > > >
> > > > >
> > > > > Daiane
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Wed, 2008-08-06 at 16:21 +0200, Rémi BUISSON wrote:
> > > > >> Hi everyone,
> > > > >>
> > > > >> I have some troubles streaming video file over the network.
> > > > >>
> > > > >> First of all, I tired this :
> > > > >>
> > > > >> server:
> > > > >> gst-launch filesrc
> > > location=../partage/Videos/superman_originale.avi !
> > > > >> decodebin ! x264enc ! video/x-h264 ! rtph264pay pt=96 ! udpsink
> > > > >> host=192.168.1.2 port=5000 sync=false
> > > > >>
> > > > >> client:
> > > > >> gst-launch udpsrc port=5000 ! rtph264depay  ! decodebin !
> > xvimagesink
> > > > >>
> > > > >> It works but I can't read it with vlc : vlc udp://@:5000 : is it
> > > > normal ?
> > > > >>
> > > > >> Now I would like to do the same thing with an RTP pipeline :
> > > > >>
> > > > >> server:
> > > > >> gst-launch filesrc
> > > location=../partage/Videos/superman_originale.avi !
> > > > >> decodebin ! x264enc ! rtph264pay ! rtpbin localport=5001
> > > > >> destinations=127.0.0.1:5000
> > > > >>
> > > > >> client:
> > > > >> gst-launch udpsrc port=5000 ! rtph264depay ! decodebin !
> > > > xvimagesink -->
> > > > >> this works
> > > > >> gst-launch rtpbin localport=5000 ! rtph264depay ! decodebin !
> > > > >> xvimagesink --> this doesn't work
> > > > >>
> > > > >> How can I receive my stream ? with vlc ?
> > > > >>
> > > > >> Thanks in advance !
> > > > >>
> > > > >>
> > > >
> > >
> >
> -------------------------------------------------------------------------
> > > > >> This SF.Net email is sponsored by the Moblin Your Move
> Developer's
> > > > challenge
> > > > >> Build the coolest Linux based applications with Moblin SDK & win
> > > > great prizes
> > > > >> Grand prize is a trip for two to an Open Source event anywhere in
> > > > the world
> > > > >> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
> > > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>>
> > > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
> > > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>>>
> > > > >> _______________________________________________
> > > > >> gstreamer-devel mailing list
> > > > >> [hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>
> > > > <mailto:[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>>
> > > > <mailto:[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>
> > > > <mailto:[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>>>
> > > > >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > > > >>
> > > >
> > > >
> > >
> >
> -------------------------------------------------------------------------
> > > > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > > > challenge
> > > > Build the coolest Linux based applications with Moblin SDK & win
> great
> > > > prizes
> > > > Grand prize is a trip for two to an Open Source event anywhere
> in the
> > > > world
> > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
> > > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>>
> > > > _______________________________________________
> > > > gstreamer-devel mailing list
> > > > [hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>
> > > > <mailto:[hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>>
> > > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > > >
> > > >
> > ------------------------------------------------------------------------
> > > > Envoyé avec Yahoo! Mail
> > > >
> > >
> >
> <http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html>.
> > > > Une boite mail plus intelligente.
> > > >
> > ------------------------------------------------------------------------
> > > >
> > > >
> > >
> >
> -------------------------------------------------------------------------
> > > > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > > challenge
> > > > Build the coolest Linux based applications with Moblin SDK & win
> > > great prizes
> > > > Grand prize is a trip for two to an Open Source event anywhere in
> > > the world
> > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
> > > >
> > ------------------------------------------------------------------------
> > > >
> > > > _______________________________________________
> > > > gstreamer-devel mailing list
> > > > [hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>
> > > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > > >
> > >
> > >
> >
> -------------------------------------------------------------------------
> > > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > > challenge
> > > Build the coolest Linux based applications with Moblin SDK & win
> great
> > > prizes
> > > Grand prize is a trip for two to an Open Source event anywhere in the
> > > world
> > > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > > <http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > [hidden email]
> <mailto:[hidden email]>
> > > <mailto:[hidden email]
> <mailto:[hidden email]>>
> > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >
> > >
> ------------------------------------------------------------------------
> > > Envoyé avec Yahoo! Mail
> > >
> >
> <http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html>.
> > > Une boite mail plus intelligente.
> > >
> ------------------------------------------------------------------------
> > >
> > >
> >
> -------------------------------------------------------------------------
> > > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge
> > > Build the coolest Linux based applications with Moblin SDK & win great
> > prizes
> > > Grand prize is a trip for two to an Open Source event anywhere in the
> > world
> > > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > >
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > [hidden email]
> <mailto:[hidden email]>
> > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >
> >
> >
> -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> > prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> > world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> > _______________________________________________
> > gstreamer-devel mailing list
> > [hidden email]
> <mailto:[hidden email]>
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
> --
> GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
> Jetzt dabei sein:
> http://www.shortview.de/wasistshortview.php?mc=sv_ext_mf@gmx
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> <mailto:[hidden email]>
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
> ------------------------------------------------------------------------
> Envoyé avec Yahoo! Mail
> <http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52423/*http://fr.docs.yahoo.com/mail/overview/index.html>.
> Une boite mail plus intelligente.
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


Envoyé avec Yahoo! Mail.
Une boite mail plus intelligente.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel