一、實時視頻投放的原理是?
將rtsp的視頻流利用websocket推送給前端,video元素來播放視頻。在三維場景中設置視頻投放觀察者的位置(監控設備的位置)和相關參數,形成一個固定方向和范圍的視錐體,該視椎體與三維模型緩存相交的部分,即為投放視頻或者圖片的區域。(如下圖)

WebGL中對應的接口:ProjectionImage,相關的參數說明如下:
l direction : Number,獲取或設置視頻投放時投影儀的方位角,即順時針與正北方向的夾角,取值范圍:0度~36度。
l distance : Number,獲取或設置觀察點到投影儀的距離。
l hintLineColor : Color,獲取或設置視頻投放時提示線的顏色。
l hintLineVisible : Color,獲取或設置視頻投放時提示線的可見性。
l horizontalFov : Number,獲取或設置視頻投放時投影儀的水平視角范圍,單位:度。
l pitch : Number,獲取或設置視頻投放時投影儀的俯仰角,該角指相機方向和水面方向的夾角,取向上為正,單位:度。
l verticalFov : Number,獲取或設置視頻投放時投影儀的垂直視角范圍,單位:度。
l viewPosition : Array,獲取或設置視頻投放觀察者的位置。位置由經度、緯度和高程組成的數組表示
二、實時視頻投放的參數如何獲取?
1、准備一份要投放區的離線視頻(目前iDesktop只支持avi格式)
2、在idesktop中打開對於區域的三維場景,這里以CBD的范例數據為例:

3、選擇三維分析里面的視頻投放

4、將場景調整到你要投放視頻的區域,添加觀察點

5、可以看到自動生成了一個視椎體,如下

6、在右側的工具欄,設置你要投射的視頻文件,三維場景中會自動更新

7、通過右側工具欄的參數設置以及投放信息來動態調整視頻投放的效果

8、效果ok后,可以將當前保存的相關參數信息導出保存為三維點數據集

9、保存的三維點數據集中的參數對應webgl中投放的相關參數值。可以將該數據集所在的數據源,保存工作空間,發布成數據服務。Webgl前端即可通過數據服務查詢的方式獲取相關信息

三、實時視頻投放如何與三維場景中的真實場景校准
1、接上面的處理流程,發現調整好的視頻中深灰色的區域和實際場景中的道路不平行(測試的視頻和場景不對應,理解處理流程即可)

2、勾選右側工具欄中的同名點配准,點擊按鈕后彈出一個操作頁面,左側是你的投放視頻,右側是你的三維場景。

3、點擊左上的按鈕,在視頻上刺幾個特征點,如下:

4、同理,在右側的三維場景中,刺幾個對應的配准點

5、點擊確定,三維場景中的視頻就已經配准成果,具體見下圖(這里刺點不是很准確,理解原理即可)

6、此時將視頻投放的結果輸出。保存為三維點數據集,供webgl端加載顯示
