"); //-->
在之前的820方案介绍中,我们介绍了多媒体框中的工具使用,基于上篇的应用程序篇,我们来进一步探讨关于组件和文件相关。
组件(Components)
• GStreamer包含一些高级(higher-level )组件,这些组件可以简化你
的应用程序。
• Playbin2是一个元件,它会处理播放的方方面面,从源经过解复用、解码到最后的显示。同时它也非常灵活,有很多设置项。playbin2 能够自动支持管道的所有特性,包括错误处理,标签支持,状态处理,得到流位置信息,查询等。简单地,可以通过命令行来测试"playbin2": "gst-launch-1.0
playbin2 uri=file:///path/to/file"。
uridecodebin
• 这个element从一个URI获得数据然后解码成原始媒体数据。它会
选择一个能处理给定的URI的source element,然后和decodebin2
连接起来。它在一个媒体里面发现多少流就ᨀ供多少source pad
来输出,这点和解复用很像。
• gst-launch-
0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_traile
r-480p.webm ! ffmpegcolorspace ! Autovideosink
• gst-launch-
0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_traile
r-480p.webm ! audioconvert ! autoaudiosink
decodebin2
• 这个element会自动用解复用插件和解码插件创建解码pipeline。它被使用起来更方便的uridecodebin作为一个source element集成在自己内部了。以前还有一个旧的decodebin,目前已经废弃不用了,uridecodebin一样,它也是在媒体里面发现多少流就ᨀ供多少source pad来输出。
• gst-launch-
0.10 souphttpsrc location=http://docs.gstreamer.com/media/sintel_tr
ailer-480p.webm ! decodebin2 ! autovideosink
文件输入/输出
• filesrc
这个element会读取一个本地文件然后用Caps来输出媒体数据。如果你想要获得一个正确地Caps,那么需要用typefind element来搜索流或者把filesrc的typefind属性设置成TRUE。
gst-launch-0.10 filesrc location=f:\\media\\sintel\\sintel_trailer-
480p.webm ! decodebin2 ! Autovideosink
• filesink
这个element会把所有收到的媒体数据存成文件。使用location属性来指
定路径和文件名。
gst-launch-0.10 audiotestsrc ! vorbisenc ! oggmux ! filesink location=test.og
Network
• souphttpsrc
这个element作为一个客户端,使用SOUP库经由HTTP来接收数据。
通过location属性来设置URL。
gst-launch-
0.10 souphttpsrc location=http://docs.gstreamer.com/media/sintel_tra
iler-480p.webm ! decodebin2 ! autovideosink
测试媒体数据生成
• Videotestsrc
这个element生成一个固定的video输出(通过pattern属性来设置),用来测试视频的pipeline。
gst-launch-0.10 videotestsrc ! ffmpegcolorspace !autovideosink
• audiotestsrc
这个element生成一个音频信号(通过设置wave属性来设置), 用来测试音频的pipeline。
gst-launch-0.10 audiotestsrc ! audioconvert ! autoaudiosink
音视频适配
• ffmpegcolorspace
这个element会把一个色彩空间转换到另一个色彩空间(比如从RGB转到YUV)。 它也可以在转换不同的YUV格式或者RGB格式。
gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! autovideosink
• videorate
这个element接受带时间戳的视频数据转换成匹配source pad帧率的流。通过丢弃或者复制帧来执行改正,而不是通过古怪的算法。
gst-launch-0.10 videotestsrc ! video/x-raw-rgb,framerate=30/1 ! videorate ! video/x-rawrgb,framerate=1/1 ! ffmpegcolorspace ! autovideosink
• videoscale
这个element可以修改视频帧的尺寸。
gst-launch-0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm ! videoscale ! video/x-rawyuv,width=178,height=100 ! ffmpegcolorspace ! autovideosink
• audioconvert
这个element会转化原始的不同音频格式之间的缓冲。它支持从整数到浮点数的转化,符号数/字节序转换以及声道转换。
gst-launch-0.10 audiotestsrc ! audioconvert ! autoaudiosink
• audioresample
这个element使用可配置的窗口函数重采样音频缓冲到不同的采样率来增强质量。
gst-launch-0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm ! audioresample ! audio/x-rawfloat,rate=4000 ! audioconvert ! autoaudiosink
其它组件
• 多线程
queue, queue2 , multiqueue, tee
• 调试
fakesink, identity
关于应用程序编写部分,我们就了解到这里,因为在实际项目中我们需要根据项目需求来自己编写完成功能,那么Gst的插件编写也是必备掌握的能力,那么在后续的博客中,我们将会对插件编写来进行讨论。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006
日本某些人的种族优越和精神自虐
石英晶体频率校准方法电路
电子科技大学--嵌入式系统应用开发技术09
秒信号发生电路(CC4518、CC4001)
由CC4060构成的秒信号发生器
全球智能手机市场短期回暖,未来或面临下滑压力
硅光子量产压力落晶圆测试链 「上电下光」结构成关键
浅谈上博士研究生之弊
[推荐]An Overview Tutorial of the VxWorks
相亲记《全功略》
先进封装成AI芯片新瓶颈
电子科技大学--嵌入式系统应用开发技术10
NAC神经链调整术六大步骤
精密秒脉冲发生器电路
整流二极管
11月北京见!ICCAD Expo 2026重磅启幕
低成本秒信号振荡器
三星主导垂直芯片研发:目标将HBM的 I/O 提升10倍、带宽提升 4 倍
机器视觉大变局,从“扫描”到“洞察”
32 抽头的数控电位器X93154
电子科技大学--嵌入式系统应用开发技术11
加码存储布局,积塔构建方案化代工新范式
Addison.Wesley.Rubyisms.in.Rails.Jul.2006
电子科技大学--嵌入式系统应用开发技术08
2026蓝牙亚洲大会暨展览开幕在即,聚焦下一代互联体验
电子科技大学--嵌入式系统应用开发技术12
下一代先进封装的关键抉择
74lvth16245
Day-0支持|摩尔线程率先完成MiniMax M2.7大模型适配