1. 程式人生 > >JRtplib開發筆記(一):JRtplib簡介、JThread庫編譯

JRtplib開發筆記(一):JRtplib簡介、JThread庫編譯

原博主部落格地址:https://blog.csdn.net/qq21497936
本文章部落格地址:https://blog.csdn.net/qq21497936/article/details/84785284

 

                  JRtplib開發筆記(一):JRtplib簡介、JThread庫編譯

 

 

前話

        專案中區域網AP需要達到50個點的同屏,經過多方實測,最終根據實際效果採用rtp+fec,幀率可以達到每秒5-15幀(實測),因為應用層使用wpf開發(C#),使用了微軟提供的rtp庫,在專案上線前的實測階段發現該庫存在重大bug(rtpSession會話掉線後,無法再加入,重啟軟體、重新連線網路都不行,只能重啟,且同一時刻啟動電腦50臺固定隨機3-5臺出現),該庫是微軟高度封裝的rtp庫,無法解決,最終依據之前幾個專案的經驗,核心庫功能庫除非必須使用微軟提供的庫(C#)或者元件,往後筆者將會盡量使用C、C++和平臺程式設計開發,不論是cpu佔用率,記憶體管控和效率,都有大量的提升,還能移植不同平臺。

 

JRTPLIB介紹

        JRtplib是一個用C++編寫的面向物件的庫,旨在幫助開發人員使用RFC3550中描述的實時傳輸協議(RTP),該庫可以提供介面給開發者實現RTP傳送和接收資料,而無需擔心SSRC衝突、排程和傳輸RTCP資料等。使用者只需要向庫提供傳送的有效負載資料,並且味苦提供訪問傳入的RTP和RTCP資料即可。

        編譯JRtplib封裝了多平臺的多執行緒,使用起來只需要固定的幾個類即可實現跨平臺,此處提到JThread庫是因為JRtplib中可以支援使用JThread庫。

 

CMake介紹

        筆者使用的開發環境是VS2017, JRTPLIB封裝到C庫中給C#呼叫,我們先編譯JThread庫,需要使用到CMake。

        CMake是一個工程檔案生成工具。使用者可以使用預定義好的CMake指令碼,根據自己配置選擇開發環境(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程檔案。

        Cmake下載地址:http://download.csdn.net/download/qq21497936/10154545

        解壓後直接執行cmake-gui.exe

       https://img-blog.csdnimg.cn/20181122150240470.png

       解壓後直接執行cmake-gui.exe

       

JThread編譯

        當前版本最新的是1.3.1版本:

        官網地址:http://research.edm.uhasselt.be/jori/page/CS/Jthread.html

        CSDN地址:https://download.csdn.net/download/qq21497936/10826029

步驟一:下載JThread1.3.1並解壓,如下圖:

        

步驟二:新建jthread-1.3.1_build資料夾,開啟CMake設定好原始碼路徑和編譯路徑,如下圖:

        

        

步驟三:點選Configure配置編譯環境和環境變數(筆者使用環境為VS2017)

        

        

        點選Finished,等待配置:

        

       修改環境變數,並確認使用靜態編譯,如下圖

        

(補充:筆者為什麼使用靜態編譯?情景一:專案測試時,50臺裝置,同樣的硬體裝置,同樣的ghost系統,同樣的初始化步驟,存在幾臺總是出現執行無反應,實際時起來了,但是c/c++庫掛了;情景二:此臺開發機編譯後可直接exe執行,另外一臺開發機卻exe不行,搭建環境步驟一樣,本質原因是C/C++以及系統dll等問題;綜合以上原因,直接使用靜態編譯,避免出現這種因環境造成的執行問題)。

 

步驟四:點選Generate、開啟工程

         

步驟五:編譯release和debug

         

    分別生成debug和release版本

       

        

 

後續

     《JRtplib開發筆記(二):JRtplib庫編譯、示例演示》:https://blog.csdn.net/qq21497936/article/details/84785593

 

原博主部落格地址:https://blog.csdn.net/qq21497936
本文章部落格地址:https://blog.csdn.net/qq21497936/article/details/84785284