根據官網文檔上云API,先將官方提供的Demo部署起來,后端和前端服務環境搭建請參考官方文檔。因為官方文檔沒有對直播這塊的環境搭建進行說明,所以下面主要對直播功能環境搭建做一個記錄,僅供參考,如有不足之處,請評論區留言哦!
根據官方的文檔我們先把Demo部署起來,Mysql數據庫、Redis緩存、EMQX消息服務器安裝起來。然后將前后端源碼下載到本地,配置好前后端項目配置文件,保證Demo正常運行,瀏覽器正常訪問。接下來再看看直播功能...
直播功能主要是把無人機相機負載和大疆機場的視頻碼流發給第三方云平臺進行播放,用戶可以方便的在遠程web頁面點擊直播。直播功能支持直播的開始、停止、清晰度設置、鏡頭切換。
下面是我截取的官方對直播總體框架介紹圖,紅色文字方便理解加上去的。要實現的直播功能就是需要我們單獨部署流媒體服務負責對設備的推流進行接收和處理(轉協議、鑒權等)。
?流媒體服務器百度了解了有一些好用的開源項目,如使用mediamtx、ZLMediaKit進行搭建,也有很多文章關于搭建流媒體服務的介紹。因為考慮到后期流媒體服務最好能集成到后端項目中,使用Gitee上一個Java版開源的流媒體服務器項目——zlm4j。
zlm4j 是一個基于 ZLMediaKit 的 Java 封裝庫,旨在為 Java 開發者提供一個簡單易用的流媒體服務框架。通過 JNA(Java Native Access)技術,zlm4j 成功地將 ZLMediaKit 的 C API 封裝為 Java API,使得開發者可以在 Java 項目中輕松集成流媒體服務功能,無需額外部署流媒體服務器。
作者還提供了zlm4j集成示例Demo——j-media-server,直接下載這個示例項目部署就行了。
拖大佬的福項目成功運行,簡直太順利了!到這里流媒體服務器我們就有了,下面就是在大疆給的前后端項目配置文件配置好流媒體服務的相關配置。
大疆的Demo這里如果是rtmp協議才需要搭建流媒體服務器,并且配置該協議流媒體服務地址,如果是rtsp協議,直接配置用戶名、密碼和端口號。配置完成所有服務該啟動的啟動好,如果已經連接上設備的就可以去直播模塊測試直播功能了。如果和我一樣沒有設備的,可以使用FFmpeg 工具模擬設備推流,然后修改一下大疆的Demo中的接口,看一下拉流播放功能。
rtmp協議推流
ffmpeg -re -i "C:\Users\Administrator\Desktop\test.mp4" -c copy -f flv "rtmp://192.168.0.188:7935/live/test"
?
如果和我一樣動態的顯示推流動作,說明往服務器推流成功,不要關閉窗口。
?修改大疆Demo項目前端后端代碼,前端設備必選放行請求接口,后端接口直接返回成功推流的響應。
播放效果
?