streaming gstreamer vlc

streaming - GStreamer rtp transmisión a vlc



(2)

Cómo para H264 y nuevo gstreamer (windows)

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

archivo sdp:

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

para otros códec, consulte en.wikipedia.org/wiki/RTP_audio_video_profile y el ejemplo correspondiente de SDP en el enlace RFC

Estoy teniendo algunos problemas para descubrir cómo crear un flujo rtp simple con gstreamer y mostrarlo en vlc.

He instalado GStreamer 0.10.30 y VLC 1.1.3. Mi único requisito es utilizar los códecs MPEG4 o H.264.

En este momento, puedo transmitir el videotestsrc de GStreamer a través de este sencillo canal :

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

que genera los "límites" que necesita el cliente para recibir la transmisión:

/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

También puedo mostrar el flujo utilizando la siguiente canalización:

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

pero cuando trato de recibir la transmisión con vlc:

vlc -vvv rtp://127.0.0.1:5000

No consigo nada ...


He resuelto el problema, solo necesita un archivo sdp como este:

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

y la opción "send-config = true" para el elemento rtpmp4vpay:

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

y que, se puede jugar con

vlc <filename>.sdp