無(wú)人機(jī)能夠一躍進(jìn)入大眾視野,并迅速在大眾市場(chǎng)火熱發(fā)展,是很多人始料未及的。從剛開(kāi)始的空中攝錄,到后來(lái)的實(shí)時(shí)攝錄,方便的無(wú)人機(jī)圖傳功能無(wú)疑為無(wú)人機(jī)加足了籌碼,賺足了眼球。博主就來(lái)分析一下無(wú)人機(jī)圖傳技術(shù)。
一。觀念
從“圖傳”的叫法可以發(fā)現(xiàn),這并非一個(gè)專業(yè)的定義,大概是從某些資深航模玩家口中發(fā)展而來(lái)。專業(yè)的航空航天器并沒(méi)有獨(dú)立的視頻圖像傳輸設(shè)備。圖傳的概念只存在于消費(fèi)類無(wú)人機(jī)領(lǐng)域。
二。限制
1.成本:
不必去懷疑可以通訊多快多遠(yuǎn),無(wú)線通訊技術(shù)發(fā)展到今天,沒(méi)有人懷疑火星傳回的1080P圖像了。百公里以上無(wú)人機(jī)圖傳并非不可實(shí)現(xiàn),但百萬(wàn)元以上的價(jià)格也相對(duì)昂貴。目前市場(chǎng)上的1080P圖傳產(chǎn)品售價(jià)基本均在1700美元以內(nèi),成本也就成為了消費(fèi)類無(wú)人機(jī)圖傳設(shè)計(jì)的第一條限制。
2.法律:
中國(guó)無(wú)線電管理的最高法律文件是《中華人民共和國(guó)無(wú)線電管理?xiàng)l例》,立法機(jī)關(guān)為國(guó)務(wù)院和中央軍委,由各級(jí)無(wú)線電管理機(jī)構(gòu)執(zhí)行監(jiān)管。如果使用者希望給圖傳單獨(dú)申請(qǐng)執(zhí)照,則需要該圖傳首先獲得《無(wú)線電發(fā)射設(shè)備型號(hào)核準(zhǔn)證》,其依據(jù)是國(guó)家《無(wú)線電頻率劃分規(guī)定》中的有關(guān)無(wú)線電發(fā)射設(shè)備技術(shù)指標(biāo)的規(guī)定。取得專業(yè)電臺(tái)執(zhí)照并不是不可操作,只是在消費(fèi)類無(wú)人機(jī)領(lǐng)域沒(méi)有辦法推廣。對(duì)于專業(yè)航空航天器來(lái)說(shuō),頻譜劃分時(shí)已留有專門(mén)的測(cè)控頻段,而消費(fèi)類無(wú)人機(jī)只能老老實(shí)實(shí)地屈就于ITU-R(ITU Radio Communication Sector,國(guó)際通信聯(lián)盟無(wú)線電通信局)的ISM頻段(Industrial Scientific Medical,工業(yè)化科學(xué)醫(yī)療頻段)。
13.56Mhz、27.12Mhz、40.68MHz、433Mhz、915Mhz、2.4Ghz、5.8GHz都是1W以內(nèi)無(wú)需執(zhí)照發(fā)射的;
433MHz及以下頻段通常很難滿足高清圖傳的帶寬要求; 915Mhz頻段有一半已經(jīng)被GSM占用; L波帶寬并不富裕; S波段的2.4GHz也就成了1080P獲得遠(yuǎn)距離的首選,但4K或者更高清晰度的圖傳設(shè)計(jì)者卻很難在S波段的帶寬上找到便宜; C波段的5.8G則可以做得更寬,不過(guò)相同發(fā)射功率和接收靈敏度下5.8G與2.4G相比通訊距離僅為41.4%,并且其衰減對(duì)水氣更敏感,實(shí)際通訊距離則不到30%,兩者各有利弊。
圖1 無(wú)線頻譜
三。編碼技術(shù)
1.軟/硬件結(jié)構(gòu):OpenMAX IL + Venus 2.編碼標(biāo)準(zhǔn):H.264(APQ8074)/H.265(APQ8053) 3.碼率控制:CBR(Constant Bit Rate)網(wǎng)絡(luò)傳輸中所謂的 CBR 一般是 ABR(平均碼率),即單位時(shí)間內(nèi)的平均碼率恒定,編碼輸出有緩沖可以起到平滑波動(dòng)的作用。
圖2 碼率
4.碼率/幀率自適應(yīng):Dynamic video rate adaptation (rave)是Qualcomm提供的算法庫(kù),基于變化的Wi-Fi帶寬和信道質(zhì)量,計(jì)算出合適的視頻流碼率和幀率,這有助于最大限度地減少延遲和圖像損壞問(wèn)題。 5.I幀間隔調(diào)整:30fps幀率下,30幀或者60幀一個(gè)I幀。能在較低的碼率下達(dá)到較高的圖像質(zhì)量。 6.I幀重傳:如果I幀丟失或者損壞,圖像會(huì)有較長(zhǎng)時(shí)間的卡頓。當(dāng)接收端反饋此情況,發(fā)送端立即重傳I幀,會(huì)減少卡7.頓時(shí)間。 8.I幀攜帶SPS/PPS信息:缺少SPS/PPS信息,接收端將不能正確解碼,所以流中需要帶這些信息,防止斷線重連后黑屏。
四。通用協(xié)議
1.RTP
1.1.協(xié)議簡(jiǎn)單,易組入 1.2.jrtp開(kāi)源庫(kù):X許可,幾乎無(wú)限制。 1.3.針對(duì)H.264/H.265編碼特點(diǎn)進(jìn)行優(yōu)化:不同的組包策略。 1.4.擴(kuò)展可配置發(fā)包間隔:平衡碼率波動(dòng),防止瞬時(shí)碼率過(guò)大。 1.5.使用RTP擴(kuò)展頭:傳遞幀號(hào),用于算法的數(shù)據(jù)同步。 1.6.使用內(nèi)存池:減少模塊間內(nèi)存拷貝,降低延遲。
圖3 RTP
2.RTSP
2.1.支持組播:Live555開(kāi)源庫(kù) 2.2.LGPLv2.1許可,可以在商業(yè)軟件中引用。 2.3.相關(guān)類說(shuō)明
圖4 RTSP相關(guān)類
2.4.數(shù)據(jù)傳遞示意圖:RTSP server接收到RTSP開(kāi)始后,PreviewH264OnDemandMediaSubsession創(chuàng)建了H264PreviewSouce類和H264VideoStreamDiscreteFramer類之后H264PreviewSouce通過(guò)隊(duì)列從Rtspsink中獲取h264數(shù)據(jù),經(jīng)過(guò)處理后發(fā)送到手機(jī)端。
圖5 RTSP 數(shù)據(jù)流
3.圖傳開(kāi)發(fā)中遇到的問(wèn)題
實(shí)時(shí)播放過(guò)程,最難解決的問(wèn)題是圖像卡頓,圖像花瓶問(wèn)題,圖像在各個(gè)手機(jī)表現(xiàn)不一樣,在性能好的手機(jī)上面,會(huì)出現(xiàn)圖像抖動(dòng)厲害的情況等等。
要解決圖像卡頓的問(wèn)題,先要知道卡頓的原因: 1.由數(shù)據(jù)在傳輸過(guò)程中丟失,沒(méi)有數(shù)據(jù),造成的卡頓 2.app端接收不及時(shí),造成數(shù)據(jù)丟失而引起的卡頓 3.為了減少花屏,而造成的卡頓,比如說(shuō)剛好丟失了i幀,為了后面顯示不花屏,會(huì)對(duì)后面的p幀進(jìn)行拋掉,直到下一個(gè)i幀才開(kāi)始顯示
我們都知道花屏的原因是因?yàn)閬G幀造成的,比如說(shuō)丟失了 i幀,關(guān)鍵幀,后面的p幀送去給ffmpeg解碼得到的圖像是花屏,或者馬賽克等等(也有一種是大p,小p的說(shuō)法,這里就不詳細(xì)說(shuō)了),【注意,這個(gè)傳輸過(guò)程沒(méi)有用到b幀,整個(gè)傳輸過(guò)程只有兩種幀 i幀,個(gè)p幀】,多一點(diǎn)花屏,可以減少卡頓,客戶更能接受的是卡頓,而不是花屏。
解決方案: 第一個(gè)問(wèn)題:由數(shù)據(jù)在傳輸過(guò)程中丟失,沒(méi)有數(shù)據(jù),造成的卡頓,有外部環(huán)境的影響,也有圖傳板信號(hào)的穩(wěn)定性影響等等,app端沒(méi)有很好的解決方法,無(wú)非就兩個(gè)選擇,一個(gè)是tcp傳輸,一個(gè)是udp傳輸。根據(jù)實(shí)測(cè),tcp效果更好一點(diǎn)。 tcp :數(shù)據(jù)傳輸過(guò)程,能保正數(shù)據(jù)的完整,所以花屏少點(diǎn),距離相對(duì)upd會(huì)近一點(diǎn), udp:傳輸過(guò)程不保證數(shù)據(jù)的完整性,容易花屏,距離比較遠(yuǎn)
第二個(gè)問(wèn)題:app端接收不及時(shí),造成數(shù)據(jù)丟失而引起的卡頓,我這里遇到的情況是這樣的,之前的接收數(shù)據(jù)跟解碼同一個(gè)線程,顯示另外一個(gè)線程,這樣就有一種情況就是解碼不及時(shí),會(huì)造成接收線程阻塞,從而影響了數(shù)據(jù)的接收(udp),解決方案是接收數(shù)據(jù)自己一個(gè)線程,解碼跟顯示一個(gè)線程,中間通過(guò)緩存隊(duì)列來(lái)進(jìn)行數(shù)據(jù)的共享,即增加緩存,基本所有的在線播放都是用這個(gè)方式。
第三個(gè)問(wèn)題:就客戶需求而定,我這里為了不花屏,會(huì)直接丟掉
項(xiàng)目使用mpv+EventBus的方式非常靈活,模塊的替換,復(fù)用,重寫(xiě)都很靈活,而且java層沒(méi)有特殊必要,一般都不會(huì)動(dòng),優(yōu)化各個(gè)方面都是在jni層,也主要是圖傳的優(yōu)化,這樣也方便版本的迭代,要不客戶版本升級(jí)要多痛苦。
評(píng)論
查看更多