h.264 Video Streaming over TCP

pfarmer flacone at gmx.de
Mon Mar 4 00:00:36 PST 2013


Thanks a lot for the reply!


Tim-Philipp Müller-2 wrote
>  a) skip the RTP pay/depay - you can send h264 byte-stream right over the
> wire and then use h264parse to packetise it on the receiver end.
>  b) use rtph264pay ! gdppay ! sink  and  src ! gdpdepay ! rtph264depay
>  c) put it in a streamable container (e.g. MPEG-PS or MPEG-TS)

To a)
Server:
 gst-launch-1.0 videotestsrc horizontal-speed=5 ! x264enc tune="zerolatency"
threads=1 ! tcpserversink port=8554
Receiver:
 gst-launch-1.0 tcpclientsrc port=8554 host=localhost ! h264parse !
avdec_h264 ! xvimagesink

*The receiver does not go from the Prerolling into the Playing state. I
somehow should to say to the piple to be live which does not need to
preroll. How can I do this?*


To b)
Server:
 gst-launch-1.0 videotestsrc horizontal-speed=5 ! x264enc tune="zerolatency"
threads=1 ! rtph264pay config-interval=1 ! gdppay ! tcpserversink port=8554
Receiver:
 gst-launch-1.0 tcpclientsrc port=8554 host=localhost ! gdpdepay !
application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264
! xvimagesink

This works. But well its somewhat in a roundabout way and has quiet some
overhead.


To c)
Server:
 gst-launch-1.0 videotestsrc horizontal-speed=5 ! x264enc tune="zerolatency"
threads=1 ! mpegtsmux ! tcpserversink port=8554 
Receiver:
 gst-launch-1.0 tcpclientsrc port=8554 host=localhost  ! tsdemux ! h264parse
! avdec_h264 ! xvimagesink
 
This works fine. Is it normal that there must be no tsparse before the
tsdemux?



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/h-264-Video-Streaming-over-TCP-tp4658747p4658856.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list