欢乐千炮捕鱼破解版|百乐千炮捕鱼游戏下载

首頁 > 上網技巧 > 電腦小技巧 > 微信小程序推流拉流示例 使用本地搭建RTMP服務

微信小程序推流拉流示例 使用本地搭建RTMP服務

時間:2019-08-01 15:59 作者:QQ地帶 我要評論

適用讀者:
 
對微信小程序已經有基本的了解。 例如:小程序賬號申請、 常用組件、小程序開發工具
對nodejs已經有基本的了解。
對微信小程序流媒體/實時音視頻組件感興趣的童鞋。
對小魚易聯/小魚在家,聲網的微信小程序內部實現感興趣的童鞋。
小程序實時音視頻的底層傳輸協議問題(TCP,UDP,QUIC)
如果您不滿足上面所述,這篇文章應該不適合您。
 
好吧, 正文開始:
 
微信小程序提供了倆個組件live-pusher以及live-player,但是因為官方文檔過于簡略,以至于很多人難以上手。而且在集成過程中有些問題,微信官方也逃避不回答。所以本文就幫助大家解決這個問題,我寫了一個開源的小栗子放在Github,方便大家自己測試。
 
Github地址在這里, 有詳細的readme文檔幫助大家如何使用
 
本倉庫包括的內容
 
使用開源組件搭建本地的RTMP服務給小程序使用
小程序live-pusher/live-player如何使用
使用網頁播放小程序推的視頻流
關于騰訊云實時流媒體服務
第1步:開源組件搭建本地的RTMP服務
命令行進入文件夾 Node-Media-Server, 執行
 
npm install
node index.js
程序默認將在1935端口提供RTMP服務, 8000端口提供HTTP流服務
 
程序使用第三方開源MIT協議組件 Node-Media-Server
 
第2步:小程序live-pusher/live-player如何使用
開始之前你需要在微信開放平臺注冊小程序開發賬號, 并申請小程序接口實時音視頻流權限 這一步很重要, 不完成這一步無法進行后面的開發.
 
個人賬號是可以申請此類接口權限的.
 
當小程序賬號注冊完成以及申請實時音視頻流權限之后.
獲取appid, 并使用微信開發者工具導入項目, 選擇 client 文件夾, 然后點擊 真機調試, 使用手機微信調試RTMP視頻流. 記住要先開啟本地的RTMP服務哦, 至于IP地址配置會在小程序頁面有提示的.
 
 
 
 
 
 
第3步:使用網頁播放小程序推的視頻流
前面兩步都完成的情況下, 可以在網頁上測試一下小程序推的視頻流. 命令行進入 web-client 文件夾, 然后命令行執行如下命令 :
 
// 如果你的npm已經全局安裝了http-server
http-server -p 8080
 
// 否則
npm install
npx http-server -p 8080
然后瀏覽器打開 http://localhost:8080, 根據網頁的提示填寫拉取流的名稱, 然后點擊開始按鈕, 如果不出意外你可以看到小程序推上來的視頻流.
 
網頁測試截圖 
 
 
 
 
總結:聊一聊關于騰訊云實時流媒體服務
有些同學如果關心騰訊云實時流媒體服務怎么用的話, 可以進入騰訊云申請直播服務即可, 騰訊云有免費的20GB流量 供大家測試使用。(結尾有鏈接)至于具體的使用方法與上面的例子是一樣的, 從騰訊云網頁獲取推流/拉流的地址就可以測試了。
 
如果你深入測試會發現騰訊云的速度比較快, 那是因為:騰訊云的RTMP服務是私有的 UDP + RTMP 協議, 傳輸層使用UDP協議在實時視頻中可以將延時控制在 400ms左右。實際測試過程中發現,騰訊云使用的傳輸層協議是Google的QUIC協議, QUIC協議是基于UDP的提供了一整套擁塞控制等方案的傳輸層協議。
 
而我們自己搭建的RTMP服務是基于 TCP 傳輸的, 我在測試過程中發現寬帶情況, 好的4G, 5G下, 基于TCP傳輸協議的實時視頻的延時大概在1秒鐘左右. 但是對于WIFI等網絡波動大的情況下大概會有2秒的延時。
 
那你就想問, 我們把自己的RTMP服務改成UDP傳輸不好嗎?
不行。在微信小程序環境只有騰訊云自家的RTMP服務才能使用UDP傳輸層協議,其它的企業和個人要么使用騰訊云的服務,要么使用自己搭建的基于TCP的服務。
 
你說坑不坑, 騰訊實在是坑啊!大家都知道實時音視頻場景,UDP傳輸是最佳實踐!你這是捆綁銷售自己的服務啊。
 
然后我測試了微信小程序環境其它家的產品:
 
聲網(agora) 實時音視頻 基于TCP傳輸
阿里云 - 實時音視頻 基于TCP傳輸
百度云 - 實時音視頻 基于TCP傳輸
數據真實可靠, 都是我測試或者從他們工程師那里詢問得知的。騰訊粑粑再一次靠著
 
但其實使用TCP的實時視頻服務沒那么糟糕, 在好的4G情況下 
1秒鐘的延時用戶完全是可以接受的,當然如果老板沒辦法接受,那就只能使用騰訊云了。
本人親測, 小魚易聯產品使用的就是騰訊云的直播服務.
 
 
 
那么微信小程序live-pusher可以獲取到原始的媒體數據流嗎?
 
問這個問題的人基本都做過HTML5 webrtc相關的開發工作,確實在HTML5里面,Javascript有能力通過瀏覽器的API獲取到原始的媒體數據流,然后開發者可以對原始的數據流進行編碼,轉碼,壓縮,美顏等預處理。但是在小程序環境,微信不允許!

標簽: 微信小程序
頂一下
(0)
0%
踩一下
(0)
0%

Google提供的廣告

欢乐千炮捕鱼破解版 老重庆时时开彩结果 北京pk10计划手机分析 牌九至尊手机版 牛牛什么牌抢庄 中国竞彩比分直播网 时时彩全天在线计划网页 色子的玩法 广西快3计划在哪里买 富翁3肖6码主论坛 双色球投注单详解