Skip to content

Streaming over UDP with GStreamer

Examples and considerations for sending and receiving audio or video streams over UDP.

This English edition preserves the original commands, configuration fragments, and diagrams so the steps can be reproduced directly.

Reference diagram 1

Commands and configuration

gst-launch-1.0 filesrc location=Transformers_1080p60.mp4 \
   ! decodebin \
   ! x264enc \
   ! mpegtsmux \
   ! udpsink host=192.168.5.188 port=5600
ffmpeg -re -stream_loop -1 -i Transformers_1080p60.mp4 -an \
    -c:v libx264 -preset veryfast -tune zerolatency \
    -pix_fmt yuv420p -profile:v baseline -g 30 \
    -x264-params keyint=30:min-keyint=30:scenecut=0 \
    -f rtp -payload_type 96 "rtp://192.168.1.102:5600?pkt_size=1200"
ffmpeg -re -stream_loop -1 -i Transformers_1080p60.mp4 -an \
    -c:v libx264 -preset ultrafast -tune zerolatency \
    -pix_fmt yuv420p -profile:v baseline -g 60 \
    -b:v 1000k -maxrate 1000k -bufsize 1000k \
    -x264-params keyint=30:min-keyint=30:scenecut=0:nal-hrd=cbr \
    -f rtp -payload_type 96 "rtp://192.168.1.102:5600?pkt_size=1316"
ffmpeg -re -stream_loop -1 -i ./videos/nfs_v/Cold2520Winter2520Dream-HD3_1.mp4.mp4 -an \
    -vf "scale=1280:720,fps=30" \
    -c:v libx264 -preset ultrafast -tune zerolatency \
    -pix_fmt yuv420p -profile:v baseline -bf 0 \
    -b:v 800k -maxrate 800k -bufsize 400k \
    -g 30 \
    -x264-params keyint=30:min-keyint=30:scenecut=0:nal-hrd=cbr \
    -f rtp -payload_type 96 "rtp://192.168.1.102:5600?pkt_size=1200"
gst-launch-1.0 udpsrc port=5600 \
  ! tsdemux \
  ! h264parse \
  ! avdec_h264 \
  ! videoconvert \
  ! autovideosink

Notes

Use these examples as a starting point and adjust versions, device names, codecs, and network addresses for the target platform.