商城系統(tǒng) 注冊(cè)

微信小程序怎么做直播

2020-09-27|HiShop
導(dǎo)讀:怎么用小程序?qū)崿F(xiàn)在線直播? - step1:開(kāi)通一個(gè)云直播服務(wù)(比如騰訊云),或者自己搭建一個(gè)rtmp服務(wù)器(例如nginx-rtmp服務(wù))。 - step2:生成推流 url ,推流...

怎么用小程序?qū)崿F(xiàn)在線直播?

- step1:開(kāi)通一個(gè)云直播服務(wù)(比如 騰訊云 ),或者自己搭建一個(gè)rtmp服務(wù)器(例如 nginx-rtmp 服務(wù))。

- step2:生成推流 url ,推流地址一般以 “rtmp://” 打頭,比如  rtmp://8888.livepush.myqcloud.com/live/8888_test 就是一個(gè)典型 rtmp 推流 Url。

- step3:為你的小程序增加一個(gè) <live-pusher> 標(biāo)簽,并將 url 參數(shù)指定為你在 step2 中生成的推流 url。

同時(shí), <live-pusher> 的 mode 參數(shù)可以指定為 HD 或者 FHD,這是在線直播場(chǎng)景中比較推薦的畫(huà)質(zhì)。

同時(shí),你還可以通過(guò) <live-pusher> 的 beauty 和 whiteness 等參數(shù)設(shè)定美顏和美白等級(jí)。

- step4:生成推流 url 和播放地址,推流一般都是 rtmp:// 打頭的 url,而播放地址則有兩種選擇,分別是 “rtmp://” 開(kāi)頭的 rtmp 播放協(xié)議,“http://” 打頭和“.flv”結(jié)尾的的 http-flv 播放協(xié)議,推薦使用后者,因?yàn)檫@種播放地址各個(gè)云廠商都優(yōu)化的比較好。

- step5:為你的小程序增加一個(gè) <live-player> 標(biāo)簽 ,并將 src 參數(shù)指定為你在 step4 中生成的播放 url。同時(shí), <live-player> 的 mode 參數(shù)請(qǐng)指定為 live, orientation  和 object-fit 屬性可以用于調(diào)整畫(huà)面布局, min-cache 和 max-cache 則可以用于控制觀眾跟主播之間的延時(shí)大小,推薦的設(shè)置是 min-cache = 2, max-cache = 5。

關(guān)于在線直播

你會(huì)有這樣的疑問(wèn)

01時(shí)延太高是怎么回事?

在線直播的延時(shí)跟播放協(xié)議和播放器參數(shù)有很大的關(guān)系, <live-player> 的 min-cache 和 max-cache 用于控制播放器端的最小時(shí)延和最大時(shí)延。其中,這里所說(shuō)的“最小”和“最大”是根據(jù)觀眾端當(dāng)時(shí)的網(wǎng)絡(luò)情況而定的,如果網(wǎng)絡(luò)情況比較好,那么播放器的時(shí)延就會(huì)趨向于 min-cache,而如果網(wǎng)絡(luò)情況比較差,那么播放器的時(shí)延就會(huì)趨向于 max-cache。

另外,rtmp 協(xié)議 和 http-flv 協(xié)議的播放地址延時(shí)一般比較低,而 hls(m3u8)協(xié)議的延時(shí)則相對(duì)較高。

02主播網(wǎng)絡(luò)不好怎么辦?

在一場(chǎng)直播過(guò)程中,如果觀眾端的網(wǎng)絡(luò)不好,那么觀看體驗(yàn)僅僅影響到當(dāng)前觀眾;如果主播的網(wǎng)絡(luò)不好,那么所有觀眾的觀看體驗(yàn)都會(huì)很糟糕。因此主播的上行網(wǎng)絡(luò)質(zhì)量很重要,如果主播的上行網(wǎng)絡(luò)質(zhì)量不理想,比如時(shí)好時(shí)壞,或者上行小水管,不足以支持基本的直播需求,有兩種辦法可以解決問(wèn)題:

 一種辦法是設(shè)置 <live-pusher> 的 min-bitrate 參數(shù),比如 400kbps, 這樣一來(lái),當(dāng)主播網(wǎng)絡(luò)不給力的時(shí)候, <live-pusher> 就會(huì)給主播的編碼器發(fā)送降低畫(huà)質(zhì)的命令,通過(guò)降低編碼器吐出的數(shù)據(jù)量來(lái)給主播的網(wǎng)絡(luò)減負(fù)。但這種辦法產(chǎn)生的副作用也非常明顯,就是主播的畫(huà)質(zhì)會(huì)變差。

另一種方法則是借助 <live-pusher> 的 NET_BUSY 通知進(jìn)行 UI 上的告警提示, <live-pusher> 在主播上行網(wǎng)速不給力時(shí)會(huì)通過(guò) onPushEvent 通知拋出 PUSH_WARNING_NET_BUSY(1101) 事件,這個(gè)時(shí)候你可以提示主播通過(guò)靠近路由器或者切換 4G 的方法來(lái)改善當(dāng)前的網(wǎng)絡(luò)質(zhì)量。

03HLS(m3u8)協(xié)議為什么播放不了?

微信小程序在最早期的版本中就集成了 <video> 標(biāo)簽,該標(biāo)簽即可播放 HLS(m3u8)協(xié)議的播放地址,但是此種播放協(xié)議的時(shí)延一般都在 20 秒以上,所以如果對(duì)時(shí)延要求較高,則推薦使用 <live-player> 標(biāo)簽播放 http-flv 協(xié)議的直播地址。

電話咨詢 預(yù)約演示 0元開(kāi)店