微信小程序怎么做直播
怎么用小程序實現在線直播?
- step1:開通一個云直播服務(比如 騰訊云 ),或者自己搭建一個rtmp服務器(例如 nginx-rtmp 服務)。
- step2:生成推流 url ,推流地址一般以 “rtmp://” 打頭,比如 rtmp://8888.livepush.myqcloud.com/live/8888_test 就是一個典型 rtmp 推流 Url。
- step3:為你的小程序增加一個 <live-pusher> 標簽,并將 url 參數指定為你在 step2 中生成的推流 url。
同時, <live-pusher> 的 mode 參數可以指定為 HD 或者 FHD,這是在線直播場景中比較推薦的畫質。
同時,你還可以通過 <live-pusher> 的 beauty 和 whiteness 等參數設定美顏和美白等級。
- step4:生成推流 url 和播放地址,推流一般都是 rtmp:// 打頭的 url,而播放地址則有兩種選擇,分別是 “rtmp://” 開頭的 rtmp 播放協議,“http://” 打頭和“.flv”結尾的的 http-flv 播放協議,推薦使用后者,因為這種播放地址各個云廠商都優化的比較好。
- step5:為你的小程序增加一個 <live-player> 標簽 ,并將 src 參數指定為你在 step4 中生成的播放 url。同時, <live-player> 的 mode 參數請指定為 live, orientation 和 object-fit 屬性可以用于調整畫面布局, min-cache 和 max-cache 則可以用于控制觀眾跟主播之間的延時大小,推薦的設置是 min-cache = 2, max-cache = 5。
關于在線直播
你會有這樣的疑問
01時延太高是怎么回事?
在線直播的延時跟播放協議和播放器參數有很大的關系, <live-player> 的 min-cache 和 max-cache 用于控制播放器端的最小時延和最大時延。其中,這里所說的“最小”和“最大”是根據觀眾端當時的網絡情況而定的,如果網絡情況比較好,那么播放器的時延就會趨向于 min-cache,而如果網絡情況比較差,那么播放器的時延就會趨向于 max-cache。
另外,rtmp 協議 和 http-flv 協議的播放地址延時一般比較低,而 hls(m3u8)協議的延時則相對較高。
02主播網絡不好怎么辦?
在一場直播過程中,如果觀眾端的網絡不好,那么觀看體驗僅僅影響到當前觀眾;如果主播的網絡不好,那么所有觀眾的觀看體驗都會很糟糕。因此主播的上行網絡質量很重要,如果主播的上行網絡質量不理想,比如時好時壞,或者上行小水管,不足以支持基本的直播需求,有兩種辦法可以解決問題:
一種辦法是設置 <live-pusher> 的 min-bitrate 參數,比如 400kbps, 這樣一來,當主播網絡不給力的時候, <live-pusher> 就會給主播的編碼器發送降低畫質的命令,通過降低編碼器吐出的數據量來給主播的網絡減負。但這種辦法產生的副作用也非常明顯,就是主播的畫質會變差。
另一種方法則是借助 <live-pusher> 的 NET_BUSY 通知進行 UI 上的告警提示, <live-pusher> 在主播上行網速不給力時會通過 onPushEvent 通知拋出 PUSH_WARNING_NET_BUSY(1101) 事件,這個時候你可以提示主播通過靠近路由器或者切換 4G 的方法來改善當前的網絡質量。
03HLS(m3u8)協議為什么播放不了?
微信小程序在最早期的版本中就集成了 <video> 標簽,該標簽即可播放 HLS(m3u8)協議的播放地址,但是此種播放協議的時延一般都在 20 秒以上,所以如果對時延要求較高,則推薦使用 <live-player> 標簽播放 http-flv 協議的直播地址。
- 第 1 頁【小程序直播】小程序直播功能開發過程詳解
- 第 2 頁【音視頻組件】 微信小程序怎么做直播
- 第 3 頁【音視頻組件】 微信小程序視頻通話的實現步驟