GStreamer

包含如下三个可执行程序
  • gst-inspect-1.0
    输出GStreamer安装插件情况
  • gst-launch-1.0
    构建GStreamer Pipeline,简单来说就是管道模型,在一堆数据流上面叠加一些处理,获取输出结果。
  • ges-launch-1.0
    GStreamer编辑服务原型工具

GStreamer Pipeline Examples

视频测试源
# 播放测试源
 gst-launch-1.0 videotestsrc ! autovideosink
 
 # 产生一个 1280*720的视频源然后播放
 gst-launch-1.0 -v videotestsrc  ! video/x-raw, framerate=25/1,width=1280,height=720 ! autovideosink
摄像头数据
# 播放摄像头内容
gst-launch-1.0  v4l2src ! autovideosink

# 设置我们需要的大小、格式和帧率,
gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2, width=320,height=240,framerate=20/1 ! autovideosink
调整和裁剪
gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2,width=640,height=480,framerate=15/1  \
 ! aspectratiocrop aspect-ratio=16/9 !  videoconvert ! autovideosink
编码和多路复用技术
单路流
# 使用x264将视频编码到H.264,并将其放入MPEG-TS传输流:
gst-launch-1.0 -v videotestsrc ! video/x-raw,framerate=25/1, width=640, height=360 \
! x264enc ! mpegtsmux ! filesink location=test.ts

# 播放本地文件
gst-launch-1.0 -v playbin uri=file:///home/frank/test.ts
RTMP到RTP
gst-launch-1.0 -v  rtmpsrc location=rtmp://172.17.230.220/live/123 ! flvdemux ! h264parse ! rtph264pay config-interval=-1 pt=111 ! udpsink host=121.199.37.143 port=15004

gst-launch-1.0 -v rtmpsrc location=rtmp://172.17.230.220/live/123 \
    ! flvdemux name=demux demux.audio ! queue ! decodebin ! audioconvert ! audioresample  \
    ! opusenc ! rtpopuspay timestamp-offset=0  ! udpsink  host=121.199.37.143  port=15002 \
    demux.video! queue ! h264parse ! rtph264pay timestamp-offset=0 config-interval=-1  \
    ! udpsink  host=121.199.37.143 port=15004

GStreamer API使用

参考资料


frank2020
13 声望3 粉丝

Go、C/C++、 Webrtc


引用和评论

0 条评论