内容来自: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