欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Gstreamer基礎知識教程

 更新時間:2022年07月21日 11:09:20   作者:代碼不好讀啊  
由于deepstream是基于gstreamer的,所以要想在deepstream上做拓展,需要對gstreamer有一定的認識,以下主要介紹Gstreamer整體框架和Gstreamer基礎概念,需要的朋友可以參考下

由于deepstream是基于gstreamer的,所以要想在deepstream上做拓展,需要對gstreamer有一定的認識。以下主要介紹Gstreamer整體框架和Gstreamer基礎概念。

一、Gstreamer整體框架

gstreamer是一個用于開發(fā)流式多媒體應用的開源框架。本身這個框架是為了更好的處理音視頻而設計開發(fā)的,但gstreamer不限于處理音視頻,只要是有明顯的數(shù)據(jù)流特征的應用,gstreamer都能很好的應用。

gstreamer的整體功能核心是pipeline框架以及用于擴展功能的插件:

1、pipeline用于安排數(shù)據(jù)流圖,明確數(shù)據(jù)流處理過程。通過gstreamer多媒體數(shù)據(jù)協(xié)商機制和同步機制,pipeline能夠很好的地處理流式數(shù)據(jù)。

2、插件用于擴展功能,開發(fā)者可以靈活利用已有插件,而且還可以自定義特定功能插件。

               

二、Gstreamer基礎概念

Gstreamer的基礎概念有如下四個,了解這四個概念是我們將Gstreamer玩起來的前提

1、Elements

Elements是一個pipeline中的基本組成功能實體,通過將不同功能的elements連起來,就可以實現(xiàn)一個數(shù)據(jù)流處理功能。如圖所示,通過將source filer sink三種element連起來,可以實現(xiàn)對pipeline中傳輸數(shù)據(jù)格式的過濾。

element主要有三種:

(1) source element,主要是作為一個pipeline中的source節(jié)點,是數(shù)據(jù)源。source element只有src pad,即只有輸出口。

(2) sink element ,作為pipline的end節(jié)點 。sink element 只有sink pad,即只有輸入口。

(3) common element,作為pipline中的中間數(shù)據(jù)處理單元,既有sink pad,也有src pad,通常有:Filters, convertors, demuxers, muxers and codecs等

2、pad

pad是element的輸入和輸出,作為協(xié)商鏈接和數(shù)據(jù)傳輸用,鏈接只能是兩個pad之間的,每個Pad都可以限定支持的數(shù)據(jù)格式。當兩個不同Pad之間的格式匹配,兩個Pad就可以進行鏈接,并傳輸數(shù)據(jù)。

3、bin和Pipeline

bin是element的一個集合,bin中的element理應互聯(lián),從而使bin也能提供某種功能,由于bin是element的子類,所以所有的element的操作,bin幾乎都繼承了。

pipeline是一個完整的流式數(shù)據(jù)處理流程,可以看成一個頂級的bin。pipeline如下圖所示

           

4、通信

Gstreamer為應用提供了幾種通信機制:

(1)buffer 用于element之間數(shù)據(jù)傳遞,buffer中包含的是媒體數(shù)據(jù),buffer的傳輸方向永遠是從src pad 到sink pad的,即向下傳輸。

(2) event element之間或者application到element的信息傳輸,包含的是控制數(shù)據(jù)。event既可以向下也可以向上傳輸。

(3)message 由element向application傳輸,用于傳輸 errors,tags,state changes, buffering state, redirects等信息。

(4)queries 通常由application向pipeline發(fā)送,用于請求一些持續(xù)時間和播放點等信息。queries的應答是同步的。element也可以使用queries來向相鄰element請求相應的信息

這邊只做簡單的介紹,詳細的可以查閱Gstreamer 官方用戶手冊

https://gstreamer.freedesktop.org/documentation/index.html

到此這篇關(guān)于Gstreamer基礎知識教程的文章就介紹到這了,更多相關(guān)Gstreamer基礎知識內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Qt編寫簡易的視頻播放器

    基于Qt編寫簡易的視頻播放器

    這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)編寫簡易的視頻播放器,可以支持pbonon/qmediaplayer/ffmpeg/vlc/mpv等多種內(nèi)核,感興趣的可以學習一下
    2022-12-12
  • C++ 操作系統(tǒng)內(nèi)存分配算法的實現(xiàn)詳解

    C++ 操作系統(tǒng)內(nèi)存分配算法的實現(xiàn)詳解

    本文主要介紹了在動態(tài)分區(qū)管理方式下采用不同的分配算法實現(xiàn)主存分配和實現(xiàn)主存回收,旨在幫助學生理解在動態(tài)分區(qū)管理方式下應怎樣實現(xiàn)主存空間的分配和回收。感興趣的可以了解一下
    2021-11-11
  • C語言宏函數(shù)container of()簡介

    C語言宏函數(shù)container of()簡介

    這篇文章介紹了C語言宏函數(shù)container of(),對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • 如何給隨機數(shù)加密

    如何給隨機數(shù)加密

    隨機數(shù)加密的簡單算法,需要的朋友可以參考一下
    2013-03-03
  • VSCode 配置C++開發(fā)環(huán)境的方法步驟

    VSCode 配置C++開發(fā)環(huán)境的方法步驟

    這篇文章主要介紹了VSCode 配置C++開發(fā)環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • C語言中調(diào)用Swift函數(shù)實例詳解

    C語言中調(diào)用Swift函數(shù)實例詳解

    這篇文章主要介紹了C語言中調(diào)用Swift函數(shù)實例詳解的相關(guān)資料,實現(xiàn)該功能可以通過定義全局的指向Blocks的對象指針來實現(xiàn),需要的朋友可以參考下
    2017-07-07
  • c++可變參數(shù)模板使用示例源碼解析

    c++可變參數(shù)模板使用示例源碼解析

    這篇文章主要為大家介紹了c++可變參數(shù)模板使用示例源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • C語言深入講解之從函數(shù)棧幀角度理解return關(guān)鍵字

    C語言深入講解之從函數(shù)棧幀角度理解return關(guān)鍵字

    在C語言中,一般情況下函數(shù)的返回值是通過函數(shù)中的return語句來實現(xiàn)的,每調(diào)用一次return語句只能從函數(shù)中返回一個值,這篇文章主要給大家介紹了關(guān)于C語言從函數(shù)棧幀角度理解return關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • C++中的循環(huán)引用

    C++中的循環(huán)引用

    雖然C++11引入了智能指針的,但是開發(fā)人員在與內(nèi)存的斗爭問題上并沒有解放,如果我門實用不當仍然有內(nèi)存泄漏問題,其中智能指針的循環(huán)引用缺陷是最大的問題。下面通過實例代碼給大家介紹c++中的循環(huán)引用,一起看看吧
    2017-09-09
  • C++實現(xiàn)LeetCode(116.每個節(jié)點的右向指針)

    C++實現(xiàn)LeetCode(116.每個節(jié)點的右向指針)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(116.每個節(jié)點的右向指針),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論