【GStreamer】gstreamer工具详解之:gst-launch-1.0

一、gst-launch-1.0

1、简介:

gst-launch-1.0构建和运行基本GStreamer管道的工具
官网:https://gstreamer.freedesktop.org/documentation/tools/gst-inspect.html?gi-language=c
命令格式:

gst-launch-1.0 [OPTIONS] PIPELINE-DESCRIPTION
2、OPTIONS参数选项:

–help
-v, --verbose
-q, --quiet 不打印信息
-m, --messages 输出管道总线上的消息
-t, --tags 输出标记tag(也称为元数据)
-o FILE, --output=FILE 将管道保存到XML文件中,并退出
-f, --no_fault 不安装故障处理程序
-T, --trace 打印内存分配跟踪。必须在编译时启用该特性才能工作。

3、PIPELINE-DESCRIPTION管道文本描述信息详解:

元件: ELEMENTTYPE [PROPERTY1 …]
元件属性:PROPERTY=VALUE …,多个值之间用空格
箱子Bin: [BINTYPE.] ([PROPERTY1 …] PIPELINE-DESCRIPTION),通常在gst_parse_launch()函数中使用,构建部分管道,而不是完整的顶级管道
链接Link:[[SRCELEMENT].[PAD1,…]] ! [[SINKELEMENT].[PAD1,…]],将SRCELEMENT通过“!”链接到SINKELEMENT
[[SRCELEMENT].[PAD1,…]] ! CAPS ! [[SINKELEMENT].[PAD1,…]],CAPS表示过滤器,链接符合CAPS的PAD
//能力CAP:MIMETYPE [, PROPERTY[, PROPERTY …]]] [; CAPS[; CAPS …]],使用给定的mimetype和可选的给定属性创建功能。
能力属性:NAME=[(TYPE)] VALUE in lists and ranges: [(TYPE)] VALUE

4、示例:
播放音频:

播放mp3:

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

播放oog:

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

播放wav:

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

使用GNOME-VFS播放:

	gst-launch-1.0 gnomevfssrc location=music.mp3 ! mad ! osssink
	gst-launch-1.0 gnomevfssrc location= ! mad ! audioconvert ! audioresample ! osssink
	gst-launch-1.0 gnomevfssrc location= ! mad ! audioconvert ! audioresample ! osssink
格式转换:

将mp3转换成ogg:

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

将mp3转换成flac:

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

将wav转换成ogg:

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

将wav转换成mp3:

 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第五轨道保存成mp3:

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

保存录音到ogg:

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

延时执行pipeline,同 gst_pipeline_set_latency()

gst-launch-1.0 pipeline. \( latency=2000000000 videotestsrc ! jpegenc ! jpegdec ! fakevideosink \)
播放视频

将MPEG-1显示到X窗口:

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

将vod(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
通过名称引用特定的pad,这里是 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= suburi=
播放网络流:
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=127.0.0.1 port=5000 sync=false

RTP 接收端:

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

生成空流并忽略,打印输出信息:

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

生成一个纯正弦音调来测试音频输出:

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

测试视频输出:

gst-launch-1.0 videotestsrc ! ximagesink
自动链接,使用“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=
过滤链接:

过滤YUY2或者YV12:

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

过滤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
5、环境变量:

GST_DEBUG:逗号分隔的调试类别和级别列表,eg:GST_DEBUG=totem:4,typefind:5。
GST_DEBUG_NO_COLOR:禁用彩色打印,一般在将信息打印到文件中时,使用这个环境变量。
GST_DEBUG_DUMP_DOT_DIR:设置保存“.dot”文件(管道可视化,可以通过 GraphViz 等软件查看)。
GST_REGISTRY:插件注册表文件的路径。默认值是 ~/.gstreamer-1.0/registry-CPU.xml,CPU取值’i486’,‘i686’,‘x86-64’,'ppc’等。
GST_REGISTRY_UPDATE:设置为“no”以强制GStreamer假设没有插件更改、添加或删除。这将使GStreamer跳过初始检查以确定是否需要重建注册表缓存。
这在安装的插件永远不会更改的嵌入式环境中非常有用。请勿在任何其他设置中使用此选项。
GST_PLUGIN_PATH:指定要扫描其他插件的目录列表。这些优先于系统插件。
GST_PLUGIN_SYSTEM_PATH:指定默认情况下始终加载的插件列表。如果未设置,则默认为系统安装的路径,以及安装在用户主目录中的插件
OIL_CPU_FLAGS:liboil环境变量。设置OIL_CPU_FLAGS=0在liboil的CPU检测时的valgrind或其他调试工具的行程。
相当多的重要GStreamer插件videotestsrc,audioconvert、audioresample使用liboil。
G_DEBUG:这是一个有用的GLib环境变量。设置 G_DEBUG=fatal_warnings为在发生断言失败等严重警告时使GStreamer程序中止。
如果您想要找出代码的哪个部分导致触发警告以及在什么情况下触发,这将非常有用。只需G_DEBUG如上所述设置并在gdb下运行程序(或让它进行核心转储)。然后以通常的方式获得堆栈跟踪。

你可能感兴趣的:(视频)