gstreamer: 官方参考内容 gst-launch-1.0命令行工具

内容来自:https://gstreamer.freedesktop.org/

但是我想看中文版>>>>>>

gst-launch-1.0 是构建和运行基本GStreamer管道的工具。
gst-launch-1.0接受以下选项:

--help

打印帮助简介和可用的FLAGS

-v,--verbose

输出状态信息和属性通知

-q, --quiet

不要打印任何进度信息

-m, --messages

输出消息发布在管道总线上

-t, --tags

输出标签(也称为元数据)

-o FILE,--output = FILE

将管道的XML表示保存到FILE并退出

-f,--no_fault

不要安装故障处理程序

-T, --trace

打印内存分配跟踪。必须在编译时启用该功能才能工作。
管道由elements和inks组成。元素可以放入不同种类的bins中。Elements, links, 和 bins可以在管道描述中以任何顺序指定。

Elements/元素:

ELEMENTTYPE [PROPERTY1 ...]

创建类型的元素ELEMENTTYPE并设置其PROPERTIES。

Element Properties/元素属性

PROPERTY=VALUE ...

将属性设置为指定值。您可以gst-inspect-1.0用来查找不同元素的属性和允许的值。枚举属性可以通过名称,昵称或值来设置。

Bins/容器

[BINTYPE.] ([PROPERTY1 ...] PIPELINE-DESCRIPTION)

指定BINTYPE创建类型的bin 并设置给定的属性。括号之间的每个元素都放入垃圾箱。请注意在后面必须使用的点BINTYPE。您几乎永远不需要此功能,它仅对将gst_parse_launch()API与binbintype 一起使用的应用程序真正有用。这样,可以构建部分管道而不是成熟的顶级管道。

Links/链接

[[SRCELEMENT\].[PAD1,...]] ! [[SINKELEMENT].[PAD1,...]]

将名称为SRCELEMENT的元素链接到名称为SINKELEMENT的元素。可以使用name属性在元素上设置名称。如果省略名称,则使用直接在链接之前或之后指定的元素。这适用于各个垃圾箱。如果指定了填充名称,则使用该填充完成链接。如果未指定打击垫名称,则将尝试所有可能性,并使用兼容的打击垫。如果指定了多个填充名称,则双方必须指定相同数量的填充,并且以给定的顺序进行多个链接。最简单的链接是简单的感叹号。这会将元素左侧的元素与右侧的元素链接在一起。

以下内容使用CAPS中指定的上限作为过滤器,将名称为SRCELEMENT的元素链接到名称为SINKELEMENT的元素:

[[SRCELEMENT].[PAD1,...]] ! CAPS ! [[SINKELEMENT].[PAD1,...]]

Caps/瓶盖

MIMETYPE [, PROPERTY[, PROPERTY ...]]] [; CAPS[; CAPS ...]]

使用给定的mimetype和可选的给定属性创建功能。可以使用"或转义mimetype '。如果要链接大写字母,则可以在以后以相同格式添加更多大写字母。

瓶盖性能

NAME=[(TYPE)] VALUE in lists and ranges: [(TYPE)] VALUE

在功能中设置请求的属性。名称是字母数字值,并且类型可以具有以下不区分大小写的值:
• i或int用于整数值或范围;
• f或float用于浮点值或范围;
• 4或fourcc用于FOURCC值;
• b,bool或boolean布尔值;
• s,str,或string字符串;
• fraction 对于分数(帧速率,像素长宽比);
• l或list列表。
如果没有给出类型,则尝试以下顺序:整数,浮点数,布尔值,字符串。整数值必须可由解析,由 strtol()浮动strtod()。FOURCC值可以是整数或字符串。布尔值是(不区分大小写)yes,no,true或false 与可能喜欢与字符串进行转义"或’。范围都是这种格式:[ VALUE, VALUE]; 列表使用以下格式:(VALUE [, VALUE …])。

管道控制

管道可以由信号控制。SIGUSR2将停止管道(GST_STATE_NULL); SIGUSR1将其放回播放(GST_STATE_PLAYING)。默认情况下,管道将在该PLAYING状态下启动。当前没有定义明确进入就绪或暂停(GST_STATE_READY和GST_STATE_PAUSED)状态的信号。

管道实例

以下示例假定您具有正确的可用插件。一般情况下,osssink可以用插件如另一音频输出被取代directsoundsink,esdsink,alsasink,osxaudiosink,或 artsdsink。同样地,xvimagesink可以用被取代d3dvideosink, ximagesink,sdlvideosink,osxvideosink,或aasink。请记住,尽管不同的接收器在不同的机器上可能接受不同的格式,甚至同一接收器也可能在不同的机器上接受不同的格式,所以您可能需要添加转换器元素(例如audioconvert和audioresample用于音频)或 videoconvert在接收器的前面,以使事情正常进行。

Audio playback/音频播放

使用基于libmad的插件播放mp3音乐文件“ music.mp3”,然后输出到OSS设备:

gst-launch-1.0 filesrc location=music.mp3 ! mad ! audioconvert !
audioresample ! osssink

播放Ogg Vorbis格式的文件:

gst-launch-1.0 filesrc location=music.ogg ! oggdemux ! vorbisdec !
audioconvert ! audioresample ! osssink

使用GNOME-VFS播放mp3文件:

gst-launch-1.0 gnomevfssrc location=music.mp3 ! mad ! osssink

使用GNOME-VFS播放HTTP流:

gst-launch-1.0 gnomevfssrc location=<http://domain.com/music.mp3> ! mad
! audioconvert ! audioresample ! osssink

使用GNOME-VFS播放SMB服务器上的mp3文件:

gst-launch-1.0 gnomevfssrc location=<smb://computer/music.mp3> ! mad ! audioconvert ! audioresample ! osssink

Format conversion/格式转换

将mp3音乐文件转换为Ogg Vorbis文件:

gst-launch-1.0 filesrc location=music.mp3 ! mad ! audioconvert ! vorbisenc ! oggmux ! filesink location=music.ogg

转换为FLAC格式:

gst-launch-1.0 filesrc location=music.mp3 ! mad ! audioconvert ! flacenc ! filesink location=test.flac`

Other/其他

播放包含原始音频数据(PCM)的.WAV文件:

gst-launch-1.0 filesrc location=music.wav ! wavparse ! audioconvert ! audioresample ! osssink

将包含原始音频数据的.WAV文件转换为Ogg Vorbis或mp3文件:

gst-launch-1.0 filesrc location=music.wav ! wavparse ! audioconvert ! vorbisenc ! oggmux ! filesink location=music.ogg
gst-launch-1.0 filesrc location=music.wav ! wavparse ! audioconvert ! lame ! filesink location=music.mp3

翻录CD中的所有曲目,并将它们转换为单个mp3文件:

gst-launch-1.0 cdparanoiasrc mode=continuous ! audioconvert ! lame ! id3v2mux ! filesink location=cd.mp3

从CD翻录音轨5,并将其转换为单个mp3文件:

gst-launch-1.0 cdparanoiasrc track=5 ! audioconvert ! lame ! id3v2mux ! filesink location=track5.mp3

使用gst-inspect-1.0,可能会发现与上述“ cdparanoiasrc”类似的设置,该设置将告诉您翻录整个CD或仅读取其轨道。或者,您可以使用URI并gst-launch-1.0 找到一个为您支持该协议的元素(例如cdparanoia),例如:

gst-launch-1.0 [cdda://5] ! lame vbr=new vbr-quality=6 !
filesink location=track5.mp3

记录音频输入中的声音并将其编码为ogg文件:

gst-launch-1.0 osssrc ! audioconvert ! vorbisenc ! oggmux !
filesink location=input.ogg

使用特定的用户定义的延迟来运行管道(请参阅

gst_pipeline_set_latency()):
gst-launch-1.0 pipeline. \( latency=2000000000 videotestsrc ! jpegenc ! jpegdec ! fakevideosink \)

Video/视频

仅显示MPEG-1视频文件的视频部分,并输出到X显示窗口:

gst-launch-1.0 filesrc location=videofile.mpg ! dvddemux ! mpeg2dec ! xvimagesink

显示.vob文件(在DVD上使用)的视频部分,输出到SDL窗口:

gst-launch-1.0 filesrc location=flflfj.vob ! dvddemux ! mpeg2dec ! sdlvideosink

播放MPEG电影的视频和音频部分:

gst-launch-1.0 filesrc location=movie.mpg ! dvddemux name=demuxer demuxer. ! queue ! mpeg2dec ! sdlvideosink
demuxer. ! queue ! mad !  audioconvert ! audioresample ! osssink

播放带有外部文本字幕流的AVI电影:

gst-launch-1.0 filesrc location=movie.mpg ! mpegdemux name=demuxer demuxer. ! queue ! mpeg2dec ! videoconvert ! sdlvideosink demuxer. ! queue ! mad ! audioconvert ! audioresample ! osssink

本示例显示了如果元素(此处为:textoverlay)具有多个接收板或源板,则如何按名称引用特定的板:

gst-launch-1.0 textoverlay name=overlay ! videoconvert ! videoscale ! autovideosink filesrc location=movie.avi ! decodebin2 !  videoconvert ! overlay.video_sink
filesrc location=movie.srt ! subparse ! overlay.text_sink

使用playbin播放带有外部文本字幕流的AVI电影:

gst-launch-1.0 playbin uri=<file:///path/to/movie.avi>
suburi=<file:///path/to/movie.srt>

Network streaming/网络流

使用RTP和网络元素流式传输视频
该命令将在发送器上运行:

gst-launch-1.0 v4l2src !
video/x-raw-yuv,width=128,height=96,format='(fourcc)'UYVY !
videoconvert ! ffenc_h263 ! video/x-h263 ! rtph263ppay pt=96 !
udpsink host=192.168.1.1 port=5000 sync=false

在接收器上使用以下命令:

gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,
clock-rate=90000,payload=96 ! rtph263pdepay queue-delay=0 ! ffdec_h263
! xvimagesink

Diagnostic/诊断

生成一个空流并忽略它(并打印出详细信息):

gst-launch-1.0 -v fakesrc num-buffers=16 ! fakesink

生成纯正弦音调以测试音频输出:

gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! osssink

生成熟悉的测试模式以测试视频输出:

gst-launch-1.0 videotestsrc ! ximagesink

Automatic linking/自动连结

您可以使用“ decodebin”元素自动选择正确的元素以获取有效的管道。
播放任何支持的音频格式:

gst-launch-1.0 filesrc location=musicfile ! decodebin ! audioconvert !
audioresample ! osssink

使用视频和音频输出播放任何受支持的视频格式。线程是自动使用的:

gst-launch-1.0 filesrc location=videofile ! decodebin name=decoder
decoder. ! queue ! audioconvert ! audioresample ! osssink
decoder. ! videoconvert ! xvimagesink

为了使上述操作更加容易,您可以使用playbin元素:

gst-launch-1.0 playbin uri=<file:///home/joe/foo.avi>

Filtered connections/过滤的连接

这些示例向您展示了如何使用过滤帽。
显示测试图像并为此使用YUY2或YV12视频格式:

gst-launch-1.0 videotestsrc ! 'video/x-raw-yuv,format=(fourcc)YUY2;video/x-raw-yuv,format=(fourcc)YV12' ! xvimagesink

录制音频并将其写入.wav文件。强制使用带符号的16到32位样本以及32kHz至64KHz之间的采样率:

gst-launch-1.0 osssrc !
'audio/x-raw-int,rate=[32000,64000],width=[16,32],depth={16,24,32},signed=(boolean)true'
! wavenc ! filesink location=recording.wav
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值