GStreamer基础教程16——平台相关的element
2014-03-25 11:20
387 查看
目标
虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin2或者autovideosink这些element时不需要考虑跨平台的问题,但是,当你使用仅仅在特定的平台存在的sink时,这个问题就绕不过去了。本教程会介绍这些element的一些特性。
Linux
ximagesink
标准的基于X系统的视频sink。它实现了XOverlay接口,所以视频窗口可以嵌入其他窗口。它不支持视频缩放,需要实现这个功能必须使用其他的方法(比如videoscale element)。
xvimagesink
一个基于X系统的视频sink,使用了XVideo_Extension(Xv)方法。它实现了XOverlay接口,所以视频窗口可以嵌入其他窗口。它支持在GPU上进行高效的视频缩放。它仅在硬件和驱动支持Xv扩充的情况下才可以使用。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
alsasink
这个音频sink会通过ALSA来输出到声卡。这个sink在几乎所有的linux平台上都有。它通常被看做声卡底层的接口,同时配置起来比较复杂。
plusesink
这个sink在一个PulseAudio服务器上播放声音。它是比ALSA更高层级的抽象,而且使用更加方便并且提供更多地一些高级功能。但是,在一些旧的linux系统上不够稳定。
Mac OS X
osxvideosink
这是在Mac OSX系统上唯一提供的视频sink。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
osxaudiosink
这是在Mac OSX系统上唯一提供的音频sink。
Windows
directdrawsink
这是Windows下最老的基于DirectDraw的视频sink。它仅需要DirectX7,所以在目前几乎所有的Windows平台上都支持。
dshowvideosink
这是基于DirectShow的一个视频sink。它可以使用不同的后端做渲染,比如EVR,VMR9或VMR7。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
d3dvideosink
这是最新的基于Direct3D的视频sink。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
directsoundsink
这是Windows默认的音频sink,基于所有Windows版本都支持的DirectSound。
dshowdecwrapper
DirectShow是类似于GStreamer的一个多媒体框架。但它们也有很多的不同,pipeline是不能相互连接的。但是,通过这个element,GStreamer就可以使用DirectShow的解码element的输出了。dshowdecwrapper可以包装多个DirectShow的解码器,然后放进GStreamer的pipeline。
Android
eglglessink
这个视频sink是基于OpenGLES和EGL的。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
openslessink
这是GStreamer在Android平台上唯一的音频sink,它基于OpenSL ES。
androidmedia
android.media.MediaCodec是一个支持在设备侧编解码包括硬件编解码的一个Android上的API。它在JellyBean之后就可以用了,GStreamer可以通过androidmedia插件来用这个API做音频和视频的解码。
iOS
eglglessink
这个视频sink是基于OpenGLES和EGL的。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
osxaudiosink
这是iOS上唯一支持的音频sink。
iosassertsrc
读取iOS设备上内容(比如:照片,音乐,录像等等)的source element。当你使用playbin2并且URI使用assets-library://这个格式的时候会用到这个element。
iosavassetsrc
读取iOS设备上音视频内容(比如:照片,音乐,录像等等)的source element。当你使用playbin2并且URI使用ipod-library://这个格式的时候会用到这个element。这里的解码是针对系统优化过的。
虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin2或者autovideosink这些element时不需要考虑跨平台的问题,但是,当你使用仅仅在特定的平台存在的sink时,这个问题就绕不过去了。本教程会介绍这些element的一些特性。
Linux
ximagesink
标准的基于X系统的视频sink。它实现了XOverlay接口,所以视频窗口可以嵌入其他窗口。它不支持视频缩放,需要实现这个功能必须使用其他的方法(比如videoscale element)。
xvimagesink
一个基于X系统的视频sink,使用了XVideo_Extension(Xv)方法。它实现了XOverlay接口,所以视频窗口可以嵌入其他窗口。它支持在GPU上进行高效的视频缩放。它仅在硬件和驱动支持Xv扩充的情况下才可以使用。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
alsasink
这个音频sink会通过ALSA来输出到声卡。这个sink在几乎所有的linux平台上都有。它通常被看做声卡底层的接口,同时配置起来比较复杂。
plusesink
这个sink在一个PulseAudio服务器上播放声音。它是比ALSA更高层级的抽象,而且使用更加方便并且提供更多地一些高级功能。但是,在一些旧的linux系统上不够稳定。
Mac OS X
osxvideosink
这是在Mac OSX系统上唯一提供的视频sink。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
osxaudiosink
这是在Mac OSX系统上唯一提供的音频sink。
Windows
directdrawsink
这是Windows下最老的基于DirectDraw的视频sink。它仅需要DirectX7,所以在目前几乎所有的Windows平台上都支持。
dshowvideosink
这是基于DirectShow的一个视频sink。它可以使用不同的后端做渲染,比如EVR,VMR9或VMR7。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
d3dvideosink
这是最新的基于Direct3D的视频sink。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
cluttersink
这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。
directsoundsink
这是Windows默认的音频sink,基于所有Windows版本都支持的DirectSound。
dshowdecwrapper
DirectShow是类似于GStreamer的一个多媒体框架。但它们也有很多的不同,pipeline是不能相互连接的。但是,通过这个element,GStreamer就可以使用DirectShow的解码element的输出了。dshowdecwrapper可以包装多个DirectShow的解码器,然后放进GStreamer的pipeline。
Android
eglglessink
这个视频sink是基于OpenGLES和EGL的。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
openslessink
这是GStreamer在Android平台上唯一的音频sink,它基于OpenSL ES。
androidmedia
android.media.MediaCodec是一个支持在设备侧编解码包括硬件编解码的一个Android上的API。它在JellyBean之后就可以用了,GStreamer可以通过androidmedia插件来用这个API做音频和视频的解码。
iOS
eglglessink
这个视频sink是基于OpenGLES和EGL的。它支持视频图像尺寸调节并且可以过滤调节过得图像来避免混淆。它实现了XOverlay的接口,所以视频窗口可以嵌入其他窗口中。
osxaudiosink
这是iOS上唯一支持的音频sink。
iosassertsrc
读取iOS设备上内容(比如:照片,音乐,录像等等)的source element。当你使用playbin2并且URI使用assets-library://这个格式的时候会用到这个element。
iosavassetsrc
读取iOS设备上音视频内容(比如:照片,音乐,录像等等)的source element。当你使用playbin2并且URI使用ipod-library://这个格式的时候会用到这个element。这里的解码是针对系统优化过的。
相关文章推荐
- 【GStreamer开发】GStreamer基础教程16——平台相关的element
- GStreamer基础教程14——惯用的element
- GStreamer基础教程14——常用的element
- GStreamer基础教程14——常用的element
- 【GStreamer开发】GStreamer基础教程14——常用的element
- Hadoop基础教程-第5章 YARN:资源调度平台(5.2 YARN参数解读与调优)
- Hadoop基础教程-第5章 YARN:资源调度平台(5.6 YARN的命令)(草稿)
- 【solr基础教程之一】Solr相关知识点串讲
- 【GStreamer开发】GStreamer基础教程06——媒体格式和pad的Capabilities
- 通信相关基础知识0(FFT相关第一篇--傅里叶分析之掐死教程完整版)
- GStreamer基础教程10——GStreamer工具
- GStreamer基础教程09——收集媒体信息
- MySQL基础教程16-Mysql数据类型-浮点型和定点型
- 【Nutch2.2.1基础教程之1】nutch相关异常 分类: H3_NUTCH 2014-08-08 21:46 1549人阅读 评论(2) 收藏
- GStreamer基础教程01——Hello World
- Hadoop基础教程-第5章 YARN:资源调度平台(5.3 YARN集群配置)(草稿)
- 数据库基础教程(3):相关理论知识
- www.94wechat.com 小程序商店 小程序导航 小程序教程基础 小程序众推平台
- GStreamer基础教程04——时间管理
- Java EE 7 教程 第二部分 平台基础 第3章 创建资源