gstreamer的gst-inspect 和gst-launch
用gstreamer架构做对媒体开发时,gst-inspect 和gst-launch是两个非常使用的小工具,前者是用于查询库中已经包含的所有element以及他们的详细信息,后者用于快速构建一条pipeline,这个命令最爽,因为只要一句话,你就可以感受到播放的快感。废话不多说,直接看示例:
1 gst-inspect用法:
首先进入命令行下,然后键入:
gst-inspect, 所有element都显示;
gst-inspect >d:/c.txt 将所有element都导出到d盘根目录下的c。txt文件中,这个命令在你想要查找某个element但有不确定其全名时很有用
gst-inspect ffmpeg >d/c.txt 同上,只是导出的element范围缩小到ffmpeg范围内
gst-inspect ffdec_h264 . 显示ffdec-h264的详细信息,你可以输入想要查询的任何element,只要已经存在,就可以找到
2 gst-launch 构建链路用法:
最开始要构建链路,当然用playbin、playbin2,decodebin, decodebin2,uridecodebin这类上层的element是最简单省事的了。
比如,你想播放一个flv文件,位于d:/test_videos/1.flv,首先进入命令行下,然后键入:
gst-launch filesrc location=d:/test_videos/1.flv !decodebin !autovideosink 利用了filesrc decodebin 和autovideosink 3个element,其中设置了filesrc的location属性值为文件路径
gst-launch filesrc location=d:/test_videos/1.flv !decodebin2 !autovideosink 同上,只是decodebin用较新的decodebin2代替了
gst-launch uridecodebin uri=file:///d:/test_videos/1.flv !autovideosink 用uridecodebin 和autovideosink 2个element, 其中uridecodebin的属性uri设置了
gst-launch playbin uri=file:///d:test_video/1.flv 利用playbin一个element,设置了其属性uri 为file:///加文件路径
gst-launch playbin2 uri=file:///d:test_video/1.flv 同上,只是用较新的playbin2代替了playbin
如果想要自己用基本element而不用上层bin element 进行链路构建,那需要以下步骤。
比如, 你想播放一个flv文件,位于d:/test_videos/0.flv
首先你需要确定需要什么样的解码element来构建,所以,你首先需要确定该文件编码格式是什么,假如为h264
然后,在命令行下键入:
gst-launch filesrc location=d:/test_videos/0.flv !flvdemux !ffdec_h264 !autovideosink
其中,flvdemux用来分离多路数据的, ffdec-h264用来解码,最后由autovideosink播放
如果你想播放其他文件,只需要根据相应文件容器格式指定特定的demux,再根据编码格式指定特定的解码器便可以了,如果不清楚改用哪个element,最好的方法当然用是gst-inspect去查找和验证了
gstreamer的gst-inspect 和gst-launch的更多相关文章
- 使用 GStreamer appsrc 等插件实现视频音频混流,录制和推流
目前在做的在线直播教室,需要将老师分享的屏幕和老师的声音.学生的声音录制为一个视频文件,以便学生上课后还可以再看回放. 直播服务我们采用的是腾讯的视频服务,有现成的 SDK 可以用.但 SDK 自带的 ...
- GStreamer基础教程09 - Appsrc及Appsink
摘要 在我们前面的文章中,我们的Pipline都是使用GStreamer自带的插件去产生/消费数据.在实际的情况中,我们的数据源可能没有相应的gstreamer插件,但我们又需要将数据发送到GStre ...
- 【GStreamer开发】GStreamer基础教程09——收集媒体信息
目标 有时你需要快速的了解一个文件(或URI)包含的媒体格式或者看看是否支持这种格式.当然你可以创建一个pipeline,设置运行,观察总线上的消息,但GStreamer提供了一个工具可以帮你做这些. ...
- 【GStreamer开发】GStreamer基础教程05——集成GUI工具
目标 本教程展示了如何在GStreamer集成一个GUI(比如:GTK+).最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互. 在这个教程里面,我们可以学到: 如何告诉GStr ...
- 【GStreamer开发】GStreamer播放教程05——色彩平衡
目标 亮度,对比度,色度和饱和度都是常见的视频调节参数,也是GStreamer里面设置色彩平衡的参数.本教程将展示: 如何发现可用的色彩平衡通道 如何改变它们 介绍 <GStreamer基础教程 ...
- gstreamer-tips-picture-in-picture-compositing
http://www.oz9aec.net/index.php/gstreamer/347-more-gstreamer-tips-picture-in-picture-compositing htt ...
- 用MapX与C#开发地理信息系统
转:http://www.cnblogs.com/dachie/archive/2010/08/17/1801598.html 第四章 MapX与C#实例... 5 4.1 MapX图层建立... 5 ...
- HDU-简单计算器-1237
这道题我做了一天,把中缀表达式转化为后缀表达式,但遇到了储存的问题,考虑了好久,写出后又调试,弄了一天,下面说一下中缀表达式转换后缀表达式: 算法: 中缀表达式转后缀表达式的方法: 1.遇到操作数:直 ...
- 20165329 Java实验二:面向对象编程
实验内容: 面向对象程序设计-1 实验要求: 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图 实验步骤: 1.按照老师博客的要求新建一个MyUtil项目 在src内新建ja ...
- Educational Codeforces Round 65 选做
好久没更博客了,随便水一篇 E. Range Deleting 题意 给你一个长度为 \(n\) 的序列 \(a_1,a_2,\dots a_n\) ,定义 \(f(l,r)\) 为删除 \(l\le ...
随机推荐
- nginx 是如何分配 worker 进程连接数的
客户端连接过来后,多个空闲的进程,会竞争这个连接,很容易看到,这种竞争会导致不公平,如果某个进程得到 accept 的机会比较多,它的空闲连接很快就用完了,如果不提前做一些控制,当 accept 到一 ...
- Python——结束语句
条件语句: break 结束语句,表示达到某个目的后,将结束当前循环语句,break以下的代码都不执行.例如: for i in range(10): print("--------&quo ...
- centos7.5 配置sftp
1.创建sftp组 groupadd sftp 2.sftp组的用户的home目录统一指定到/u01/sftp下 mkdir -p /u01/sftp/ 3.创建一个sftp用户,用户名为devsft ...
- 【转】DATA_SECTION 和CODE_SECTION 的区别
请问#pragma DATA_ALIGN有什么作用? 下面是我在EDMA的一个例程中摘录的几句话:#pragma DATA_ALIGN(ping,128);#pragma DATA_ALIGN(pon ...
- 批处理引擎MapReduce应用案例
批处理引擎MapReduce应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MapReduce能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立 ...
- jmeter多机联合负载
操作步骤如下: 1.在负载机上部署Jmeter,确保Jmeter的bin目录下存在ApacheJMeter.jar与jmeter-server.bat两个文件. 2.双击启动负载机的jmeter-se ...
- 小顶堆第二弹-----堆降序排序(C语言非递归)
现在po一下C语言版本的,留作以后接口使用. 1 #include <stdio.h> #include <stdlib.h> #define HEAP_SIZE 100 #d ...
- 《3+1团队》【Beta】Scrum meeting 1
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...
- 语义(Semantics)
流计算语义(Semantics)的定义 每一条记录被流计算系统处理了几次 有三种语义: 1.At most once 一条记录要么被处理一次,要么没有被处理 2.At least once 一条记录可 ...
- 2019CCPC网络赛 HD6707——杜教筛
题意 求 $f(n,a,b)=\sum_{i=1}^n \sum_{j=1}^i gcd(i^a-j^a,i^b-j^b)[gcd(i,j)=1]\%(10^9+7)$,$1 \le n,a,b \l ...