物联网学习日记27

1.videorate
解析:这个element接受带时间戳的视频数据转换成匹配source pad帧率的流。

gst-launch-0.10 videotestsrc ! video/x-raw-rgb,framerate=30/1 ! videorate ! video/x-raw-rgb,framerate=1/1 ! ffmpegcolorspace ! autovideosink

2.videoscale
解析:这个element可以修改视频帧的尺寸。

gst-launch-0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw-yuv,width=178,height=100 ! ffmpegcolorspace ! autovideosink

3.audioconvert
解析:这个element会转化原始的不同音频格式之间的缓冲。它支持从整数到浮点数的转化,符号数/字节序转换以及声道转换。

gst-launch-0.10 audiotestsrc ! audioconvert ! autoaudiosink

4.audioresample
解析:这个element使用可配置的窗口函数重采样音频缓冲到不同的采样率来增强质量。

gst-launch-0.10 uridecodebin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm ! audioresample ! audio/x-raw-float,rate=4000 ! audioconvert ! autoaudiosink

5.audiorate
解析:这个element接受带时间戳的音频帧,然后通过增加或者降低采样来获得一个标准流。它不能修改采样率,只能通过移除重叠部分和填充空白部分来获得连续“干净”的输出。

6.ximagesink
解析:标准的基于X系统的视频sink。它实现了XOverlay接口,所以视频窗口可以嵌入其它窗口。它不支持视频缩放,需要实现这个功能必须使用其它的方法[比如videoscale element]。

7.xvimagesink
解析:一个基于X系统的视频sink,使用了XVideo_Extension(Xv)方法。它实现了XOverlay接口,所以视频窗口可以嵌入其它窗口。它支持在GPU上进行高效的视频缩放。它仅在硬件和驱动支持Xv扩充的情况下才可以使用。

8.cluttersink
解析:这个Gstreamer视频sink会给ClutterTexture发送数据用来显示。Clutter是一个跨平台的库,所以每个平台都可以使用这个sink。Clutter通过使用OpenGL作为后台渲染的方法来获得平台无关性,所以必须保证系统支持OpenGL。

9.alsasink
解析:这个音频sink会通过ALSA来输出到声卡。这个sink在几乎所有的linux平台上都有。它通常被看做声卡底层的接口,同时配置起来比较复杂。

10.plusesink
解析:这个sink在一个PulseAudio服务器上播放声音。它是比ALSA更高层级的抽象,而且使用更加方便并且提供更多地一些高级功能。但是,在一些旧的linux系统上不够稳定。

11.decodebin2
解析:decodebin2是动态加载机制实现的一个解码管道,动态加载核心便是在管道中加载了一个typefind的插件,该插件就是实现对于所注册插件的查找功能。

12.videoconvert
解析:Convert video frames between a great variety of video formats.

 gst-launch-1.0 -v videotestsrc ! video/x-raw,format=YUY2 ! videoconvert ! autovideosink

13.V4L2
解析:Video for Linux two[Video4Linux2]简称V4L2,是V4L的改进版。V4L2是linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。

14.queue
解析:queue只有一个src pad和一个sink pad,会在src pad上创建一个线程,减少src和sink的关联。queue有三个限制参数buffers、bytes、time[单位纳秒ns]。有最大阀值和最小阀值供6个参数。最大默认值:200 buffers、10MB、one second,最小默认值都是0。

15.GVA element gvawatermark
解析:visualizes detection and classification results on top of a playing video.

16.GStreamer支持的几种video sink解析
解析:
[1]ximagesink:使用XWindow输出,基本都支持
[2]xvimagesink:使用XVideo extension输出
[3]sdlvideosink:使用sdl库输出,需要装sdl库
[4]dfbvideosink:用DirectFB库输出,需要apt-get install directfb*安装后才能使用
[5]cacasink:使用的是libcaca库,是在控制台下用字符加颜色的方式显示图像的
[6]fpsdisplaysink:能在控制台上打印出当前的和平均的framerate
[7]aasink:用ascii字符的形式在控制台输出图像,与cacasink类似,但是不支持颜色

17.tcpclientsink
解析:如果想主动往服务器发送数据,可以通过tcpclientsink插件进行传输。

18.tcpserversink
解析:Send data as a server over the network via TCP.

# server:
gst-launch fdsrc fd=1 ! tcpserversink protocol=none port=3000
# client:
gst-launch tcpclientsrc protocol=none port=3000 ! fdsink fd=2

19.rtmp
解析:
[1]rtmpsink:Sends FLV content to a server via RTMP[Sink/Network]

gst-launch-1.0 -v videotestsrc ! ffenc_flv ! flvmux ! rtmpsink location='rtmp://localhost/path/to/stream live=1'

[2]rtmpsrc:Read RTMP streams[Source/File]

 gst-launch-1.0 -v rtmpsrc location=rtmp://somehost/someurl ! fakesink

20.flvmux
解析:flvmux muxes different streams into an FLV file.

21.ogg
解析:Ogg全称是OGG Vorbis,是一种音频压缩格式,类似于MP3等的音乐格式。但有一点不同的是,它是完全免费、开放和没有专利限制的。OGG Vorbis有一个特点是支持多声道。

22.解码器和分离器
解析:
[1]vorbis-decoder:音频解码器
[2]theora-decoder:视频解码器
[3]ogg-demuxer:分离器,它是把ogg文件中音/视频分开

23.gst-libav
解析:对libav封装,使其能在gstreamer框架中使用。

24.buffers
解析:用于从sources到sinks的媒体数据传输。

25.libav
解析:libav是一个完整的、跨平台的用于音频和视频录制、转换的解决方案,包含libavcodec编码器。

参考文献:
[1]GStreamer基础教程14——常用的element:https://blog.csdn.net/sakulafly/article/details/21748777
[2]GStreamer基础教程16——平台相关的element:https://blog.csdn.net/sakulafly/article/details/21825383
[3]gst-video-analytics Getting Started Guide:https://github.com/opencv/gst-video-analytics/wiki/Getting-Started-Guide-%5BR3%5D
[4]GStreamer支持的几种video sink解析:https://blog.csdn.net/wstarx/article/details/4512231
[5]GStreamer Base Plugins 0.10 Plugins Reference Manual:https://www.freedesktop.org/software/gstreamer-sdk/data/docs/2012.5/gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-tcpserversink.html
[6]flvmux:https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/gst-plugins-good-plugins-flvmux.html

发布了400 篇原创文章 · 获赞 423 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/105332906