Unity环境下RTMP推流+RTMP播放低延迟解决方案
在本文之前,我們發(fā)布了Unity環(huán)境下的RTMP推流(Windows平臺+Android平臺)和RTMP|RTSP拉流(Windows平臺+Android平臺+iOS平臺)低延遲的解決方案,今天做個整體匯總,權(quán)當拋磚引玉。
1. Unity環(huán)境下RTMP推流
Unity環(huán)境下,不管是camera還是窗體數(shù)據(jù)也好,主要是高效率的拿到原始數(shù)據(jù),采集端可用的數(shù)據(jù)格式是RGB的,拿到之后,通過高效率的數(shù)據(jù)傳遞,發(fā)給封裝后的原生SDK,完成數(shù)據(jù)編碼和RTMP推送。
需要注意的地方有幾點:
1. 數(shù)據(jù)采集投遞,確保高效率;
2. 屏幕分辨率發(fā)生變化,可實時適配;
3. Unity和原生SDK之間通信,比如event回調(diào)等;
4. 屏幕數(shù)據(jù)如有水平或垂直翻轉(zhuǎn),需要有一定的矯正。
相關(guān)博客:
Windows平臺實現(xiàn)Unity下窗體|攝像頭|屏幕采集推送
https://blog.csdn.net/renhui1112/article/details/117785180
Android平臺實現(xiàn)Unity3D下RTMP推送
https://blog.csdn.net/renhui1112/article/details/117669587
2. Unity環(huán)境下RTMP|RTSP播放器
Unity環(huán)境下RTMP或RTSP直播播放我們前幾年就有發(fā)布,并已應(yīng)用在好多傳統(tǒng)行業(yè)領(lǐng)域,比如教育或工業(yè)仿真或一些低延遲的控制場景。
相關(guān)實現(xiàn)邏輯如下:
1. Native RTSP或RTSP直播播放SDK回調(diào)RGB/YUV420/NV12等其中的一種未壓縮的圖像格式;
2. Unity3D創(chuàng)建相應(yīng)的RGB/YUV420等Shader;
3.Unity3D從各個平臺獲取圖像數(shù)據(jù)來填充紋理即可;
需要注意的有幾點:
1. 多實例支持:播放端和推送不一樣,比如智慧城市,播放端有多路場景,所以多實例支持是必備功能,多實例環(huán)境下,需要能有好的區(qū)分event狀態(tài)回調(diào)等;
2. 盡可能高效率的數(shù)據(jù)傳遞,確保資源占有最小化;
3. 視頻分辨率變化后,能自動適配;
4. Unity和原生SDK之間通信,比如event回調(diào)等;
5. 長時間運行穩(wěn)定性。
相關(guān)博客:
Windows平臺Unity3d下如何同時播放多路RTSP或RTMP流
https://blog.csdn.net/renhui1112/article/details/114674572
如何在Unity3d平臺下低延遲播放RTMP或RTSP流
https://blog.csdn.net/renhui1112/article/details/104154788
總結(jié)
以上是生活随笔為你收集整理的Unity环境下RTMP推流+RTMP播放低延迟解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学术相关】如何将半页纸论文写到十页?
- 下一篇: 【预训练模型】一文串起从NLP到CV 预