Last active
February 7, 2024 10:26
-
-
Save esrever10/7d39fe2d4163c5b2d7006495c3c911bb to your computer and use it in GitHub Desktop.
gstreamer send and receive h264 rtp stream
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# linux send h264 rtp stream: | |
gst-launch-1.0 -v ximagesrc ! video/x-raw,framerate=20/1 ! videoscale ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=5000 | |
# Macos send h264 rtp stream: | |
gst-launch-1.0 -v avfvideosrc capture-screen=true ! video/x-raw,framerate=20/1 ! videoscale ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=127.0.0.1 port=5000 | |
# receive h264 rtp stream: | |
gst-launch-1.0 -v udpsrc port=5000 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! autovideosink |
Hi guys I need to stream h264 streams from a udpsource on omxh264dec and sink it to wayland ... can someone please help
Follow these steps to generate a sdp source
a) gstreamer source stream append a -v as follows
gst-launch-1.0 v4l2src device=/dev/video0 do-timestamp=true !
video/x-raw,width=1280, height=800,framerate='(fraction)'20/1 ! autovideoconver
t ! omxh264videoenc !queue ! h264parse config-interval=1 ! rtph264pay pt=96 !
udpsink host=192.168.2.158 port=5000 sync=false -v
b) This will give verbose output like one below
debug : cedarc <BitStreamCreate:102>: BitStreamCreate OK
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)1280, height=(int)800, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)20/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-format=(strin2
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4d0020, sprop-parameter-sets=(string)"Z00AIOVAKAMogA\=\=\,aO4xEg\=\=", payload=(int)96, ssrc0
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: **caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4d0020, sprop-parameter-sets=(string)"Z00AIOVAKAMogA\=\=\,aO4xEg\=\=", payload=(int)96,** ssrc=(uin0
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)1280, height=(int)800, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)20/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-format=(st2
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 3016666383
c) Use the information above to make your sdp file.
Example sdp file from above is
v=0
o=IP4 192.168.2.62
i=test
c=IN IP4 192.168.2.62
s=ESP H264 STREAM
m=video 5000 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 media=video; clock-rate=90000; encoding-name=H264; sprop-parameter-sets=Z00AIOVAKAMogA\=\=\,aO4xEg\=\=
d) Note that in the SDP file the IP address is that of the server. In the server gstreamer code, the IP address is that of the client
can anyone help me to generate rtp stream using decklink video source ?
Fahad
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is there any plugin can automatically generate sdp file?