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
解壓後直接執行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