Last active
October 16, 2024 13:31
-
-
Save strezh/9114204 to your computer and use it in GitHub Desktop.
GStreamer-1.0 personal cheat sheet
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
#!/bin/bash | |
# play YUV444 FULL HD file | |
gst-launch-1.0 -v filesrc location=size_1920x1080.yuv ! \ | |
videoparse width=1920 height=1080 framerate=25/1 format=GST_VIDEO_FORMAT_Y444 ! \ | |
videoconvert ! \ | |
autovideosink | |
# play YUV422 FULL HD file | |
gst-launch-1.0 -v filesrc location=size_1920x1080.yuv ! \ | |
videoparse width=1920 height=1080 framerate=25/1 format=GST_VIDEO_FORMAT_Y42B ! \ | |
videoconvert ! \ | |
autovideosink | |
# play YUV422 FULL HD file | |
gst-launch-1.0 -v filesrc location=size_1920x1080.yuv ! \ | |
videoparse width=1920 height=1080 framerate=25/1 format=GST_VIDEO_FORMAT_Y42B ! \ | |
videoconvert ! \ | |
autovideosink | |
# make PNG from YUV420 | |
gst-launch-1.0 -v filesrc location=size_1920x1080.yuv ! \ | |
videoparse width=1920 height=1080 framerate=25/1 format=GST_VIDEO_FORMAT_Y42B ! \ | |
videoconvert ! \ | |
pngenc ! multifilesink location=img%03d.png | |
# play MP4 FULL HD file | |
gst-launch-1.0 filesrc location=test.mp4 ! \ | |
decodebin name=dec ! \ | |
queue ! \ | |
videoconvert ! \ | |
autovideosink dec. ! \ | |
queue ! \ | |
audioconvert ! \ | |
audioresample ! \ | |
autoaudiosink | |
# play MP3 | |
gst-launch-1.0 filesrc location=test.mp3 ! decodebin ! playsink | |
# play OGG | |
gst-launch-1.0 filesrc location=test.ogg ! decodebin ! playsink | |
# play MP3 over UDP + RTP | |
# sender: | |
gst-launch-1.0 -v filesrc location=test.mp3 ! \ | |
decodebin ! \ | |
audioconvert ! \ | |
rtpL16pay ! \ | |
udpsink port=6969 host=192.168.1.42 | |
# receiver: | |
gst-launch-1.0 -v udpsrc port=6969 \ | |
caps="application/x-rtp, media=(string)audio, format=(string)S32LE, \ | |
layout=(string)interleaved, clock-rate=(int)44100, channels=(int)2, payload=(int)0" ! \ | |
rtpL16depay ! playsink | |
#play webcam video over UDP with h264 coding | |
#sender | |
gst-launch-1.0 v4l2src ! \ | |
'video/x-raw, width=640, height=480, framerate=30/1' ! \ | |
videoconvert ! \ | |
x264enc pass=qual quantizer=20 tune=zerolatency ! \ | |
rtph264pay ! \ | |
udpsink host=192.168.1.140 port=1234 | |
#receiver | |
gst-launch-1.0 udpsrc port=1234 ! \ | |
"application/x-rtp, payload=127" ! \ | |
rtph264depay ! \ | |
avdec_h264 ! \ | |
videoconvert ! \ | |
xvimagesink sync=false | |
#play RAW webcam video over UDP (+RTP) without any coding | |
#sender | |
gst-launch-1.0 -v v4l2src ! 'video/x-raw, width=(int)640, height=(int)480, framerate=10/1' ! \ | |
videoconvert ! queue ! \ | |
rtpvrawpay ! queue ! \ | |
udpsink host=127.0.0.1 port=1234 | |
#receiver | |
gst-launch-1.0 udpsrc port=1234 ! \ | |
"application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW, \ | |
sampling=(string)YCbCr-4:2:2, depth=(string)8, width=(string)640, height=(string)480, \ | |
ssrc=(uint)1825678493, payload=(int)96, clock-base=(uint)4068866987, seqnum-base=(uint)24582" ! \ | |
rtpvrawdepay ! queue ! videoconvert ! autovideosink | |
#save RAW video from webcam to file | |
gst-launch-1.0 -v v4l2src ! 'video/x-raw, width=(int)640, height=(int)480, framerate=10/1' ! videoconvert ! filesink location=out.yuv | |
#play RAW video from file | |
gst-launch-1.0 filesrc location=out.yuv ! videoparse width=640 height=480 format=GST_VIDEO_FORMAT_YUY2 ! videoconvert ! autovideosink | |
how to work with gstreamer in windows environment....
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ssrc=(uint)1825678493, payload=(int)96, clock-base=(uint)4068866987, seqnum-base=(uint)24582" ! \
ssrc
,clock-base
andseqnum-base
would vary for every run of Gstreamer. The pipeline could be used generally without using these options on the receiver side.