GStreamer rtp stream à vlc

j'ai du mal à trouver comment créer un simple flux rtp avec gstreamer et l'afficher sur vlc.

j'ai installé GStreamer 0.10.30 et VLC 1.1.3. Ma seule exigence est D'utiliser les codecs MPEG4 ou H. 264.

maintenant, je peux diffuser le GStreamer videotestsrc par ce simple pipeline:

gst-launch videotestsrc ! ffenc_mpeg4 ! rtpmp4vpay ! udpsink host=127.0.0.1 port=5000

qui affiche les "caps" nécessaires au client pour recevoir le flux:

/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)365697461, clock-base=(uint)390754204, seqnum-base=(uint)10399

je suis aussi capable de afficher le flux à l'aide de la suite de pipeline:

gst-launch udpsrc uri=udp://127.0.0.1:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d88007d0a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)298758266, clock-base=(uint)3097828288, seqnum-base=(uint)63478" ! rtpmp4vdepay ! ffdec_mpeg4 ! autovideosink

mais quand j'essaie de recevoir le flux avec vlc:

vlc -vvv rtp://127.0.0.1:5000

Je n'obtiens rien...

23
demandé sur Nicola Desogus 2012-10-31 13:38:46

2 réponses

j'ai résolu le problème, il a juste besoin d'un fichier sdp comme ceci:

v=0
m=video 5000 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 MP4V-ES/90000

et l'option "send-config=true" pour l'élément rtpmp4vpay:

gst-launch videotestsrc ! ffenc_mpeg4 ! rtpmp4vpay send-config=true ! udpsink host=127.0.0.1 port=5000

et que, il peut être joué avec

vlc <filename>.sdp
32
répondu Nicola Desogus 2012-11-09 12:50:57

Comment faire pour H264 et New gstreamer (windows)

gst-launch-1.0 videotestsrc ! openh264enc ! rtph264pay config-interval=10 pt=96 ! udpsink host=127.0.0.1 port=5000

fichier sdp:

v=0
m=video 5000 RTP/AVP 96
c=IN IP4 127.0.0.1
a=rtpmap:96 H264/90000

pour les autres codec voir https://en.wikipedia.org/wiki/RTP_audio_video_profile et correspondant SDP exemple dans la RFC lien

11
répondu Alex Bezuglyi 2015-11-17 14:20:05