大疆無人機基于自搭建RTMP服務端推流直播
思路
大疆在手機端提供了軟件DJI GO 4控制飛行參數等,其中包含自定義RTMP接口來向第三方推流進行直播業務,而我們可以利用這種直播的思路來完成畫面傳輸。
環境
精靈Phantom 4 Pro V2.0
DJI GO 4(手機端)
win10(PC端)
步驟
一、搭建、啟動RTMP服務端
Notice:搭建RTMP服務端主要參考[1]、[2]鏈接中的步驟。因為我們是通過DJI GO 4來推流,所以其中的ffmpeg步驟可以跳過,只需考慮Nginx的搭建。
- 在http://nginx-win.ecsds.eu/download/下載nginx 1.7.11.3 Gryphon.zip,解壓后修改文件夾名稱為nginx-1.7.11.3-Gryphon;
- 下載nginx-rtmp-module(https://github.com/arut/nginx-rtmp-module/),將nginx-rtmp-module-master.zip解壓后復制到目錄nginx-1.7.11.3-Gryphon下;
- 在nginx-1.7.11.3-Gryphon\conf\nginx-win.conf文件中增加關于rtmp的設置rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }
rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }
- 打開cmd,進入nginx-1.7.11.3-Gryphon所在目錄,運行:
nginx.exe -c conf\nginx-win.conf
此時,RTMP服務端已啟動。
如果要關閉服務端:
nginx.exe -s stop # 快速停止
或
nginx.exe -s quit #完整有序的停止
二、設置DJI GO 4
1、手機端下載軟件DJI GO 4(https://www.dji.com/cn/downloads/djiapp/dji-go-4),打開軟件進行注冊、登錄等操作;
2、啟動遙控器、無人機,用數據線連接遙控器和手機,打開DJI GO 4進入精靈4 Pro V2.0對應頁面,如果設備正常連接則顯示“開始飛行”圖標;
3、點擊“開始飛行”進入配置頁面,右上角的通用設置中選擇直播平臺中的自定義直播,在其中填入rtmp地址:rtmp://192.168.x.xxx:1935/live/home(ip根據實際情況填寫),設置完成后,開啟直播;
4、在電腦端可安裝VLC(https://www.videolan.org/vlc/)打開網絡串流,填入rtmp://192.168.x.xxx:1935/live/home播放。
智能推薦
知識點最全的數據庫面試題
來源:https://zhuanlan.zhihu.com/p/150959652 13道sql,基本上覆蓋了所有sql的核心點。 要求寫出一下SQL語句 1、查詢位于“華東”或“華南”地區的供應商的ID、公司名稱、地區、城市和電話字段的值 a. 地區=”華東” OR a.地區=”華南”; 2、查詢&l...
面向切面編程(AOP)知識總結
目錄 1.存在問題 2.AOP的概念 3.AOP應用范圍 3.AOP實現方式 4.應用舉例 5.結束語 本文在學習【老張的哲學】系列文章AOP相關章節后,自己歸納總結的筆記。 1.存在問題 最近,其它項目小組在開發的過程中遇到了一個問題,在日志記錄時,用戶明明點擊的是更新操作,可翻看記錄時卻發現是查詢操作,起初是一頭霧水,后面跟蹤該更新操作的代碼后才發現,在日志記錄時確實是寫著查詢,說到這里,大家...
集合中出現的問題
1.Java集合框架的長處? 2.集合框架中的泛型有什么長處? 3.Java集合框架的基礎接口有哪些? 4.為何Map接口不繼承Collection接口? 5.Iterater和ListIterator之間有什么差別? 6.fail-fast與fail-safe有什么差別? 7.在迭代一個集合的時候,怎樣避免ConcurrentModificationException?8.在Java中,Hash...
猜你喜歡
三元運算符引起的bug
三元運算符引起的bug 前言 延伸 總結 前言 今天測試提交了一個bug,跟蹤發現了一段代碼,初看還沒什么問題,簡易后的代碼: 這段代碼想要實現的功能是返回 細看發現后面使用的是三元運算符,這就是造成這個bug的元兇。 解決方案:使用括號括起來。 延伸 在做這個例子的時候,使用ideal,習慣性的使用sonar掃描: 這里很明顯的提醒這里表達式有問題。 總結 三元運算符格式:expression1...
利用dom4j來生成xml
xml比較常用,處理xml的方式也比較多。現在就聊聊如何用dom4j來生成xml吧 先看看效果。。。 上傳代碼: 大概說下主要步驟吧: 1.創建document對象,創建root根節點,然后通過根節點繼續生成節點。其中也可以給該節點添加屬性,復制等。 2.創建輸出流,將該對象輸出到xml文件中去。需要設置好路徑和文件名等。...
Android輪播圖原理思路分析+實現方案
來自:http://blog.csdn.net/wubihang/article/details/52512597 ListView的headerView設置為輪播圖之后結合上/下拉刷新/加載的模式成為現在大多數APP的一個必須具備的功能,對于許多初學者來說想要實現輪播圖這樣一個集線程睡眠、自動處理、替換過程中刷新UI界面的組合功能非常困難,沒有思路,感覺無從下手,去搜索各種實現方案,發現目前充斥...
Lambda的編寫和使用---java8編程實戰
目錄 1.使用匿名類來表示不同的行為來實現行為參數,代碼有點啰嗦,解決這個問題的新工具--Lambda表達式。 2.Lambda的概念 3.Lambda語法測試 4.在程序中如何使用Lambda表達式 1.使用匿名類來表示不同的行為來實現行為參數,代碼有點啰嗦,解決這個問題的新工具--Lambda表達式。 Lambda可以讓你很簡潔地表示一個行...
Electron學習筆記[1]
什么是Electron Electron(最初名為Atom Shell[3])是GitHub開發的一個開源框架。它允許使用Node.js(作為后端)和Chromium(作為前端)完成桌面GUI應用程序的開發。 Electron 可以讓你使用純 JavaScript 調用豐富的原生 APIs 來創造桌面應用。你可以把它看作一個專注于桌面應用的 Node.js 的變體,而不是 Web 服務器。 很多很...