物聯網學習日記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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章