JRtplib开发笔记(一):JRtplib简介、JThread库编译
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84785284
目錄
前話
2019年12月6日補充
JRTPLIB介紹
CMake介紹
JThread編譯
步驟一:下載JThread1.3.1并解壓,如下圖:
步驟二:新建jthread-1.3.1_build文件夾,打開CMake設置好源碼路徑和編譯路徑,如下圖:
步驟三:點擊Configure配置編譯環(huán)境和環(huán)境變量(筆者使用環(huán)境為VS2017)
步驟四:點擊Generate、打開工程
步驟五:編譯release和debug
無線同屏技術開發(fā)支撐技術
《JRtplib開發(fā)筆記(一):JRtplib簡介、JThread庫編譯》:?https://blog.csdn.net/qq21497936/article/details/84785284
《JRtplib開發(fā)筆記(二):JRtplib庫編譯、示例演示》:?https://blog.csdn.net/qq21497936/article/details/84785593
《JRtplib開發(fā)筆記(三):JRtplib庫編程使用說明》:?https://blog.csdn.net/qq21497936/article/details/84957120
《JRtplib開發(fā)筆記(四):JRtplib的VS開發(fā)環(huán)境搭建以及Demo》:?https://blog.csdn.net/qq21497936/article/details/84957708
?
? ? ? ? ? ? ? ? ? JRtplib開發(fā)筆記(一):JRtplib簡介、JThread庫編譯
?
前話
? ? ? ? 項目中局域網AP需要達到60個點的同屏,經過多方實測,最終根據實際效果采用rtp+fec,幀率可以達到每秒5-15幀(實測)。
因為應用層使用wpf開發(fā)(C#),方案選型時使用了微軟提供的rtp庫,在項目上線前的實測階段發(fā)現該庫存在重大bug(rtpSession會話掉線后,無法再加入,重啟軟件、重新連接網絡都不行,只能重啟,且同一時刻啟動電腦50臺固定隨機3-5臺出現),該庫是微軟高度封裝的rtp庫,無法解決,最終依據之前幾個項目的經驗,核心庫功能庫除非必須使用微軟提供的庫(C#)或者組件。
往后筆者將會盡量使用C、C++和平臺編程開發(fā),不論是cpu占用率,內存管控和效率,都有大量的提升,還能移植不同平臺。
?
2019年12月6日補充
該方案在2018年11月最終成功同屏,60臺在一個AP局域網下,真同屏效果預期達到原先預期,且已經跨windows、linux、android,優(yōu)化了庫底層源碼、壓縮比以及其他細節(jié),2019年3月至11月隨項目改進優(yōu)化幾個版本,優(yōu)化已超預期效果,目前得到行業(yè)內各大客戶好評,公開課常用,且僅因為同屏,多客戶選擇使用我司系統(tǒng)而放棄其他中大廠同類產品。
?
JRTPLIB介紹
? ? ? ? JRtplib是一個用C++編寫的面向對象的庫,旨在幫助開發(fā)人員使用RFC3550中描述的實時傳輸協(xié)議(RTP),該庫可以提供接口給開發(fā)者實現RTP發(fā)送和接收數據,而無需擔心SSRC沖突、調度和傳輸RTCP數據等。用戶只需要向庫提供發(fā)送的有效負載數據,并且味苦提供訪問傳入的RTP和RTCP數據即可。
? ? ? ? 編譯JRtplib封裝了多平臺的多線程,使用起來只需要固定的幾個類即可實現跨平臺,此處提到JThread庫是因為JRtplib中可以支持使用JThread庫。
?
CMake介紹
? ? ? ? 筆者使用的開發(fā)環(huán)境是VS2017, JRTPLIB封裝到C庫中給C#調用,我們先編譯JThread庫,需要使用到CMake。
? ? ? ? CMake是一個工程文件生成工具。用戶可以使用預定義好的CMake腳本,根據自己配置選擇開發(fā)環(huán)境(像是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配置編譯環(huán)境和環(huán)境變量(筆者使用環(huán)境為VS2017)
?? ? ? ?
?? ? ? ?
? ? ? ? 點擊Finished,等待配置:
? ? ? ??
? ? ? ?修改環(huán)境變量,并確認使用靜態(tài)編譯,如下圖
? ? ? ??
(補充:筆者為什么使用靜態(tài)編譯?情景一:項目測試時,50臺設備,同樣的硬件設備,同樣的ghost系統(tǒng),同樣的初始化步驟,存在幾臺總是出現運行無反應,實際時起來了,但是c/c++庫掛了;情景二:此臺開發(fā)機編譯后可直接exe運行,另外一臺開發(fā)機卻exe不行,搭建環(huán)境步驟一樣,本質原因是C/C++以及系統(tǒng)dll等問題;綜合以上原因,直接使用靜態(tài)編譯,避免出現這種因環(huán)境造成的運行問題)。
?
步驟四:點擊Generate、打開工程
? ? ? ? ?
步驟五:編譯release和debug
? ? ? ? ?
? ? 分別生成debug和release版本
? ? ? ?
? ? ? ??
?
?
《JRtplib開發(fā)筆記(一):JRtplib簡介、JThread庫編譯》:?https://blog.csdn.net/qq21497936/article/details/84785284
《JRtplib開發(fā)筆記(二):JRtplib庫編譯、示例演示》:?https://blog.csdn.net/qq21497936/article/details/84785593
《JRtplib開發(fā)筆記(三):JRtplib庫編程使用說明》:?https://blog.csdn.net/qq21497936/article/details/84957120
《JRtplib開發(fā)筆記(四):JRtplib的VS開發(fā)環(huán)境搭建以及Demo》:?https://blog.csdn.net/qq21497936/article/details/84957708
?
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84785284
總結
以上是生活随笔為你收集整理的JRtplib开发笔记(一):JRtplib简介、JThread库编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 社交网络影响力最大化
- 下一篇: c++万能源代码