gstreamer部分命令

2021-10-01 13:26:52 字數 2555 閱讀 9879

usb 攝像頭

攝像頭接入系統後,會在/dev目錄下面顯示對應的裝置videox,x可以是0,1,2等等,取決於接入的攝像頭數量。

$ gst-launch v4l2src device=/dev/videox ! ffmpegcolorspace ! ximagesink

在當前情況下,我們可以通過」top」命令看到目前cpu占有率為77.9%

另外,也可以通過設定一些引數來設定顯示效果如尺寸,幀率等,如下面示例限定顯示尺寸為320x240,此時cpu占有率下降為28.2%

$ gst-launch v4l2src device=/dev/videox ! 『video/x-raw-yuv,width=320,height=240,framerate=30/1』 ! ffmpegcolorspace ! ximagesink

2). 同時顯示兩路usb攝像頭

使用下面通道來同時顯示兩路攝像頭,這裡我們使用logitech hd 720p攝像頭和另外一種普通的mjpeg攝像頭,在這種情況下cpu佔用率為64.8%。

$ gst-launch v4l2src device=/dev/videox ! 『video/x-raw-yuv,width=320,height=240,framerate=30/1』 ! ffmpegcolorspace ! ximagesink v4l2src device=/dev/video1 『video/x-raw-yuv,width=320,height=240,framerate=30/1』 ! ffmpegcolorspace ! ximagesink

$ gst-launch --eos-on-shutdown v4l2src device=/dev/videox ! ffenc_mjpeg ! ffmux_mp4 ! filesink location=video.mp4

//–eos- on-shutdown引數用於正確關閉檔案。ffenc_mjpeg元件是mjpeg格式編碼器。ffmux_mp4是mp4格式合成器。 filesink元件宣告來自v4l2的源資料會被儲存為檔案而不是顯示於ximagesink元件,另外也可以任意指定檔案儲存位置。

在這種情況下,cpu佔用率為40%左右。

vf61 ip = 192.168.0.8

ubuntu ip = 192.168.0.7

在vf61上面執行下面管道

$ gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! ffenc_mjpeg ! tcpserversink host=192.168.0.7 port=5000

$ gst-launch tcpclientsrc host=192.168.0.8 port=5000 ! jpegdec ! autovideosink

這裡使用logitech hd 720p攝像頭,cpu占有率為65%左右。

在vf61上面使用d-link ip 攝像頭

在這種情況下,cpu占有率為40% 左右。

ubuntu ip = 192.168.0.12

在vf61上面執行下面管道

在這種情況下,vf61 cpu佔用率為95% 左右。

Gstreamer 排程模式

翻譯自part scheduling.txt 排程在gstreamer中,排程模式是基於pad是主動積極地推送 產生 資料還是從其他的pad拉資料。推模式 push 乙個pad能夠產生資料,並且推送給下乙個pad,按這種模式工作的pad有乙個loop函式,loop函式被重複呼叫直到返回false。l...

gstreamer元件狀態

gstreamer元件狀態 gst state null 預設狀態 該狀態將會 所有被該元件占用的資源。gst state ready 準備狀態 元件會得到所有所需的全域性資源,這些全域性資源將被通過該元件的資料流所使用。例如開啟裝置 分配快取等。但在這種狀態下,資料流 仍未開始被處 理,所以資料流...

GStreamer 安裝測試

include include 定義訊息處理函式,static gboolean bus call gstbus bus,gstmessage msg,gpointer data default break return true int main int argc,char argv 建立管道和元...