新闻
怎么用小程序实现在线直播
2024-01-08 01:45  浏览:9
怎么用小程序实现在线直播

在线直播的应用场景有哪些?

在游戏直播、远程授课、以及企业内部的培训分享等场景中,都可能会用到在线直播功能,直播的应用场景可以遍及各行各业。

比如微信电竞是一款游戏直播产品,以小程序为产品呈现方式。

比如在医疗行业,专家医师往往需要全国各地飞进行学术交流和培训,出差本身耽误了医生大量时间,在线远程授课能大大减少这里的时间耗用。

小程序中的 <live-pusher> 和 <live-player> 两个组件 ,都有一个叫做live ( <live-pusher> 中对应 mode 属性为 SD, HD, FHD)的模式,专门为在线直播而设计,通过小程序的音视频接口的live 模式,可以实现上述应用场景。

2、在线直播的内部原理是什么?

主播端使用 <live-pusher> ,它在微信小程序的内部是一个推流引擎,它负责对手机摄像头和麦克风的数据进行采集和编码,并通过 url 参数指定的 rtmp 推流地址上传到云端。

云端的作用类似信号放大器,它负责将来自主播端的一路音视频流数据进行放大,将数据实时并且无差异的负责并扩散到全国各地,从而解决主播和观众端之间距离太远(比如,跨地区和跨运营商)的问题。

观众端使用 <live-player> 进行播放,它在小程序的内部是一个在线播放器,负责从云端实时拉取音视频数据并进行解码和渲染。由于云端的放大效应,每一个观众都能在离自己比较近的云服务器上拉取到实时且流畅的音视频流。


3、我怎么用小程序实现在线直播?

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 播放协议,推荐使用后者,因为这种播放地址各个云厂商都优化的比较好。

关于在线直播,你会有这样的疑问

1、时延太高是怎么回事?

在线直播的延时跟播放协议和播放器参数有很大的关系, <live-player> 的 min-cache 和 max-cache 用于控制播放器端的小时延和大时延。其中,这里所说的“小”和“大”是根据观众端当时的网络情况而定的,如果网络情况比较好,那么播放器的时延就会趋向于 min-cache,而如果网络情况比较差,那么播放器的时延就会趋向于 max-cache。

另外,rtmp 协议 和 http-flv 协议的播放地址延时一般比较低,而 hls(m3u8)协议的延时则相对较高。

2、***络不好怎么办?

在一场直播过程中,如果观众端的网络不好,那么观看体验仅仅影响到当前观众;如果主播的网络不好,那么所有观众的观看体验都会很糟糕。因此主播的上行网络质量很重要,如果主播的上行网络质量不理想,比如时好时坏,或者上行小水管,不足以支持基本的直播需求,有两种办法可以解决问题:

一种办法是设置 <live-pusher> 的 min-bitrate 参数,比如 400kbps, 这样一来,当***络不给力的时候, <live-pusher> 就会给主播的编码器发送降低画质的命令,通过降低编码器吐出的数据量来给主播的网络减负。但这种办法产生的副作用也非常明显,就是主播的画质会变差。

另一种方法则是借助 <live-pusher> 的 NET_BUSY 通知进行 UI 上的告警提示, <live-pusher> 在主播上行网速不给力时会通过 onPushEvent 通知抛出 PUSH_WARNING_NET_BUSY(1101) 事件,这个时候你可以提示主播通过靠近路由器或者切换 4G 的方法来改善当前的网络质量。


相关新闻
联系方式
公司:杭州壹驰创联科技有限公司
姓名:章先生(先生)
电话:13386531520
手机:13386531520
地区:浙江-杭州
地址:浙江省杭州市滨江区长河街道滨康路
拨打电话 请卖家联系我