GStreamer環境搭建篇


  GStreamer是一套強大的多媒體中間件系統,跟FFmpeg功能類似。官網鏈接點這兒

  各個Linux發行版(Ubuntu,fedora),大都集成了GStreamer相關工具,而作為軟件層次結構最上層的播放器,幾乎都是直接調用GStreamer相關庫/插件來快速軟件開發。

例如,播放器這類app的開發,只需重點關注各種菜單繪制、進度條更新、開始/暫停控件等,來響應用戶操作,真正工作的大頭都交給GStreamer庫去干,例如demux,decode,render,

這種上-中-下的開發模塊(軟件架構)層次分明,不同(擅長不同業務)人干不同的事情,避免了重復造輪子(讓做UI開發的再去重新開發個解碼器或解碼插件,肯定不現實)。

  本篇的目標,主要介紹GStreamer源碼如何編譯成so庫和bin,而不使用發行版自帶的已構建好的庫。因為Linux發行版常常滯后,而隨同其發布時構建的GStreamer庫也跟隨滯后。

1. 環境

  本人在Win10下虛擬機中進行代碼構建、調試、驗證,具體環境為:win10 + virtualbox + ubuntu16.04LTS + gstreamer1.17.0.1

  由於已是一年前做視頻編解碼插件時整的東西,有些知識點已經忘記了,但本人盡力保證信息的正確和完備性,特貼到博客中以備后面需要時查閱,有疑問的朋友們可以留言詢問。

2. 源碼下載

  兩種方式,一種是去官網下載,另外一種是去github上下載。前者提供各個版本的發行版(不帶歷史提交信息),后者是社區開發階段中的倉庫,可以方便查看歷史修改記錄。

3. 構建工具

  早版本(2016-8-12前,Release 1.9.1前)的GStreamer源碼編譯,使用CMake+make方式,后來切換到了meson+ninja,介紹說的是編譯速度加快了很多,如下描述:

  

  貌似很多構建工具開始向meson和ninja切換,以后的開源包的編譯可能會出現

由這種方式:

  ./autogen.sh && ./configure && make && sudo make install
變成了:
  meson build && ninja -C build && sudo ninja -C build install

4. 構建前准備工作

  上面一小節中已經介紹了要使用meson工具來構建,但是ubuntu16.04LTS是不帶這個工具的,因此需要安裝這個工具或由源碼編譯后安裝。下面介紹搭建時的一些注意點:

  4.1. python需要3.5以上版本,ubuntu16.04默認是2.7

  4.2. meson版本>=0.48

    meson的版本要求比較高,不能用apt-get直接安裝。下載高版本的meson源碼包(目前版本0.52.999),在meson包里面執行python3 setup.py install。

    安裝meson時又出現setuptools問題(sudo apt-get install python3-setuptools,再將meson工具從/usr/local/bin/meson默認安裝路徑中拷到/usr/bin下)。

  4.3. meson build出錯

    glib未安裝 -> sudo apt-get install glib-2.0,后面仍出問題顯示模塊未安裝(放棄,通過源碼編譯安裝)。

    sudo apt-get install glib2.0這個可以安裝。

  4.4. 其他東西安裝:flex,bison,直接使用apt-get來安裝

5. 構建流程

  meson build -Dprefix=/usr/gst-dev    //利用meson.build生成文件meson.ninja,並放置於build目錄
  ninja -C build             //進入目錄,利用配置文件build.ninja編譯
  meson install               //所有文件安裝於/usr/gst-dev目錄下

  其他常用命令

  meson build --reconfigure             //重新配置,例如安裝路徑的前綴-Dprefix

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM