gstreamer常用指令汇总

Gstreamer中一些gst-launch常用命令
用Linux系统中使用gstreamer架构做对媒体开发时,gst-inspect和gst-launch是两个非常使用的小工具,gst-inspect 在开发时用于查询库各个插件element的详细信息,后者用于在终端快速构建一条pipeline用于播放多媒体。下面列出我在以前的学习和项目开发时常用的gst-launch播放各种多媒体文件的实例:
一、gstreamer实现视频显示

gst-launch videotestsrc ! xvimagesink
1
二、gstreamer实现摄像头采集:
1、可以现实图像,但图像卡住不动

gst-launch v4l2src ! xvimagesink
1
2、摄像头视频显示正常

gst-launch v4l2src !video/x-raw-yuv,format=fourccYUY2,width=640,height=480,framerate=15/1 !videorate ! videoscale ! ffmpegcolorspace ! xvimagesink
gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=15/1 !queue2 ! videorate ! videoscale ! ffmpegcolorspace ! xvimagesink
1
2
三、摄像头视频现实及保存为avi格式文件

gst-launch -e v4l2src !video/x-raw-yuv,format=fourccYUY2,width=640,height=480,framerate=30/1 ! teename=srctee
srctee. ! queue2 name=squeue ! ffmpegcolorspace ! xvimagesink
srctee. ! queue2 name=fqueue ! videorate ! ffmpegcolorspace !ffenc_mpeg4 ! avimux ! filesink location=test.avi
1
2
3
四、将摄像头视频比例设置为16:9

gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=15/1 !aspectratiocrop aspect-ratio=16/9 ! ffmpegcolorspace ! xvimagesink
1
五、保存摄像头的视频为avi格式

gst-launch -e v4l2src ! video/x-raw-yuv, format=fourccYUY2,framerate=30/1, width=640, height=480 ! videorate ! ffmpegcolorspace !ffenc_mpeg4 ! avimux ! filesink location=test.avi
1
六、多个流数据同时录制

gst-launch -e avimux name=“muxer” ! filesink location=multi.avi
v4l2src ! video/x-raw-yuv, format=fourccYUY2, framerate=25/1,width=640, height=480 ! videorate ! ffmpegcolorspace ! ffenc_mpeg4 ! queue2 !muxer.
pulsesrc ! audioconvert ! audioresample! lamemp3enc target=1 bitrate=64cbr=true ! queue2 ! muxer.
1
2
3
七、画中画
1、videomixer可以将两个或多个视频流混合到一起:

gst-launch -e videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! videomixer name=mix !
ffmpegcolorspace ! xvimagesink videotestsrc !video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
1
2
2、GstVideoMixerPad能够改变Z轴和图像的位置

gst-launch videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 !
videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=0.5 sink_1::zorder=3 sink_2::xpos=100 sink_2::ypos=100sink_2::zorder=2 !
ffmpegcolorspace ! xvimagesink videotestsrc pattern=13 !video/x-raw-yuv, framerate=10/1, width=200, height=150 ! mix.
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.
1
2
3
4
3、GstVideoMixerPad可以制定每个sink

gst-launch
videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=0.5 sink_1::zorder=3 sink_2::xpos=100 sink_2::ypos=100 sink_2::zorder=2!
ffmpegcolorspace ! xvimagesink
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.sink_0
videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! mix.sink_1
videotestsrc pattern=13 ! video/x-raw-yuv, framerate=10/1,width=200, height=150 ! mix.sink_2
1
2
3
4
5
6
八、VideoBox可以用来制定视频框的大小和位置和apha混合透明度等
1、不透明

gst-launch -e videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! videobox border-alpha=0 top=-100left=-100 !
videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc !video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
1
2
2、指定透明度

gst-launch -e videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 !
videobox border-alpha=0 alpha=0.6 top=-20 left=-25 !videomixer name=mix ! ffmpegcolorspace ! xvimagesink
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.
1
2
3
3、添加边框

gst-launch -e videotestsrc pattern=“snow” ! video/x-raw-yuv,framerate=10/1, width=200, height=150 !
videobox border-alpha=1.0 top=-2 bottom=-2 left=-2 right=-2 !videobox border-alpha=0 alpha=0.6 top=-20 left=-25 !
videomixer name=mix ! ffmpegcolorspace ! xvimagesinkvideotestsrc ! video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
1
2
3
九、VideoWall视频墙

gst-launch -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink
videotestsrc pattern=1 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=0 left=0 ! mix.
videotestsrc pattern=15 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=0 left=-320 ! mix.
videotestsrc pattern=13 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=-180 left=0 ! mix.
videotestsrc pattern=0 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=-180 left=-320 ! mix.
videotestsrc pattern=3 ! video/x-raw-yuv, framerate=5/1,width=640, height=360 ! mix.
1
2
3
4
5
6
十、TextOverlay 在视频上面添加文本,由textoverlay插件实现,可以设置文本的属性

gst-launch videotestsrc !video/x-raw-yuv,width=640,height=480,framerate=15/1 ! textoverlaytext=“Hello” ! ffmpegcolorspace ! ximagesink
1
十一、TimeOverlay ,由timeoverlay插件实现
1、由timeoverlay插件实现

gst-launch videotestsrc ! timeoverlay ! xvimagesink
gst-launch -v videotestsrc ! video/x-raw-yuv, framerate=25/1, width=640,height=360 !
timeoverlay halign=left valign=bottom text=“Streamtime:” shaded-background=true ! xvimagesink
1
2
3
2、cairotimeoverlay

gst-launch videotestsrc ! cairotimeoverlay ! ffmpegcolorspace ! xvimagesink
1
3、clockoverlay时钟

gst-launch videotestsrc ! cairotimeoverlay ! ffmpegcolorspace ! xvimagesink
gst-launch videotestsrc ! clockoverlay halign=right valign=bottomshaded-background=true time-format="%Y.%m.%D" ! ffmpegcolorspace !ximagesink
1
2
十二、录制视频为ogg格式,带时间和日期overlay

gst-launch -e v4l2src ! video/x-raw-yuv, format=fourccYUY2,framerate=20/1, width=640, height=480 !
ffmpegcolorspace !
timeoverlay halign=right valign=top ! clockoverlayhalign=left valign=top time-format="%Y/%m/%d %H:%M:%S" !
tee name=“splitter” ! queue2 ! xvimagesinksync=false splitter. !
queue2 ! videorate ! ffmpegcolorspace ! theoraenc bitrate=256! oggmux ! filesink location=webcam.ogg
1
2
3
4
5
十三、视频墙

gst-launch videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=1.0 sink_1::zorder=3 sink_2::xpos=40 sink_2::ypos=40sink_2::zorder=2 ! ffmpegcolorspace ! xvimagesink
uridecodebinuri=file:///mnt/hgfs/fedshare/source/video/loveStyle.mp4 ! ffmpegcolorspace !videoscale ! mix.
uridecodebin uri=file:///mnt/hgfs/fedshare/source/video/davincieffect_480p30.mp4! ffmpegcolorspace ! videoscale ! mix.
videotestsrc ! video/x-raw-yuv, framerate=10/1,width=800, height=540 ! mix.
1
2
3
4
十四、播放视频文件,带声音

gst-launch uridecodebinuri=file:///mnt/hgfs/fedshare/source/video/loveStyle.mp4 name=decoder
decoder. ! audioconvert ! autoaudiosink
decoder. ! ffmpegcolorspace ! xvimagesink
1
2
3

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草丛中的蝈蝈

您的鼓励是我最大的动力....

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值