web-dev-qa-db-fra.com

Flux RTT GStreamer vers 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 des codecs MPEG4 ou H.264.

En ce moment, je peux diffuser le GStreamer videotestsrc via ce pipeline simple:

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

qui sort 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 peux également afficher le flux en utilisant le pipeline suivant:

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 ne reçois rien ...

26
Nicola Desogus

J'ai résolu le problème, il a juste besoin d'un fichier sdp comme celui-ci:

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

puis, il peut être joué avec

vlc <filename>.sdp
38
Nicola Desogus

Comment faire pour H264 et nouveau 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 codecs, voir https://en.wikipedia.org/wiki/RTP_audio_video_profile et l'exemple SDP correspondant dans le lien RFC

15
Alex Bezuglyi