微信直播系统
一、什么是微信直播
微信直播是基于云数据流媒体的传输、编辑、分发平台,创建直播频道后将直播地址嵌入到对应的微信公众号,即可发起微信直播。接入直播系统后,任何人可以通过微信好友转发、朋友圈分享等方式观看直播视频。微信直播打造了全新的用户体验,利用微信裂变,指数级成倍放大了活动的影响力。
二、微信直播应用场景
在直播风口下,直播与微信的结合是连接用户、提升影响力和传播度的全新媒介形式,可广泛应用于企业年会、体育赛事、演唱会、婚礼现场、产品发布、营销推广、峰会论坛、项目推介、渠道招商业务例会、互动培训、远程教育、用户大会、视频会议、众筹路演等各行业。
三、微信视频直播的特点
1、微信直播表现形式丰富,互动性、实时性强,相比传统电视直播更具有人际传播和大众传播的特点;
2、相比点播,微信直播有更高的稳定性要求;
3、致力于良好用户体验的低延迟要求直播技术底层更高;
4、观众对于微信直播卡顿非常敏感,因而微信直播对网络和码率要求比较高;
5、其传播性只有1次,这意味着点播直播必须打通以最大化直播内容的价值,即微信直播功能需要更完善。
四、微信直播的优势
1、省去下载APP的麻烦,可以直接在微信端观看;
2、微信直播没有地域限制,可以实现全球同步直播;
3、微信直播链接一键轻松分享,可迅速零成本裂变式推广传播;
4、直播嵌入到微信公众号中,可轻松搭建专属的企业直播间;
5、微信直播表现形式丰富,互动性、实时性强。
五、微信直播流程:
微信直播的过程包括采集-编码-传输-分发-播放-互动-回看。其中采集、编码、传输和分发是构成微信直播系统最重要的环节。
1、采集。根据直播内容需求的三种采集方式:
A、摄像机是采集的通用设备。专业高清摄像机保证原始画画清晰度,用户可以选用多种型号的摄像机;
B、通过实体导播台切换输出视频源;
C、如果对视频质量没有严格的考量,可以选择用电脑连接摄像头、手机作为采集前端,借助软件编码可以直接进行视频信号传输。
2、编码。编码即视频压缩技术,是计算机处理视频的前提。视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此计算机很难对之进行保存和处理。采用压缩技术通常数据带宽降到1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理。这一工作可以传输。
3、传输。将视频码流上传仅通过连接编码器的网线即可(无线编码器则直接通过无线网络传输),上传的视频文件将通过云服务器进行处理和储存。对于网络的要求根据设定的上行码率确定,为了保障传输稳定,通常要求上行速度是设定码率的2倍。比如4M上行速度的网络最高可支持2000kbps码率视频格式上传。
4、分发。分发机制主要处理观众高并发访问视频直播。在直播观看中会有观众大量涌入,由此产生巨大的带宽流量需要有强大的服务器支持。CDN分发网络能够提供稳定的直播观看,支持无上限级观众观看请求。
六、专有名词解释
1、RTMP地址
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写,是一种设计用来进行实时数据通信的网络协议。
在微信直播平台中,Rtmp地址是直播数据上传地址,唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务地址、上传目录名(APP)和上传节点(stream)三部分组成。
2、VOD
VOD (Video On Demand)即视频点播技术的简称,也称为交互式电视点播系统。视频点播是计算机技术、网络技术、多媒体技术发展的产物,是一项全新的信息服务。它摆脱了传统电视受时空限制的束缚,解决了一个想看什么节目就看什么,想何时看就何时看的问题。有线电视视频点播,是指利用有线电视网络,采用多媒体技术,将声音、图像、图形、文字、数据等集成为一体,向特定用户播放其指定的视听节目的业务活动。包括按次付费、轮播、按需实时点播等服务形式。
3、码率
码率又叫做比特率,是指每秒传送的比特(bit)数。单位为bps(Bit Per Second),比特率越高,传送数据速度越快。声音中的比特率是指将模拟声音信号转换成数字声音信号后,单位时间内的二进制数据量,是间接衡量音频质量的一个指标。 视频中的比特率(码率)原理与声音中的相同,都是指由模拟信号转换为数字信号后,单位时间内的二进制数据量。
通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来的cbr(固定码率)与vbr(可变码率),都是在这方面做的文章,不过事情总不是绝对的,举例来看,对于一个音频,其码率越高,被压缩的比例越小,音质损失越小,与音源的音质越接近。
码率影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。
4、帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。
影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。如果码率为变量,则帧率也会影响体积,帧率越高,每秒钟经过的画面越多,需要的码率也越高,体积也越大。
5、关键帧间隔
一帧就是视频中的一个画面。视频编码是按“组”进行的,每一组也叫一个GOP,GOP与GOP之间是没有联系的,编码关系只在GOP中间产生。每一个GOP组都从一个关键帧开始。
关键帧是一辐完整的画面,GOP中间的那些帧都是不完整的,需要由关键帧、前面的帧或者也包括后面的帧一起,运算后得到。
对于普通视频文件,加大GOP长度有利于减小体积;从原理上可知,GOP长度也不能过大,太大则会导致GOP后部帧的画面失真。一般建议GOP长度在250帧以下为宜。
由于PAL制式每秒有25帧(N制为30帧),如果是用于实时视频,如电视、网上视频等,GOP长度应在15至25之间。这样可以在一秒内完成视频快进或回退。
6、分辨率
分辨率可以从显示分辨率与图像分辨率两个方向来分类。
显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。
图像分辨率则是单位英寸中所包含的像素点数,其定义更趋近于分辨率本身的定义。分辨率影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。
7、清晰度
清晰度指影像上各细部影纹及其边界的清晰程度。
在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越不清晰,分辨率越低,图像越清晰。
在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。
8、带宽
数字信号系统中,带宽用来标识通讯线路所能传送数据的能力,即在单位时间内通过网络中某一点的最高数据率,常用的单位为bps(又称为比特率—bit per second,每秒多少比特)。在日常生活中中描述带宽时常常把bps省略掉,例如:带宽为4M,完成的称为应为4Mbps。
一般来说,带宽是以 bit(比特)表示,而电信,联通,移动等运营商在推广的时候往往忽略了这个单位。
正常换算情况如下:
1Mbit=128KB
2Mbit=256KB
(以此类推)
而换算后的速度才是用户真实上网的速度,比如运营商开通的带宽是10M,那么10/8=1.25M,也就是说如果用户开通10M带宽,可以达到最高1.25M的速度。
七、视频直播嵌入到微信公众号的方式
视频直播嵌入到微信公众号有三个方式:
1.把直播间连接放到微信公众号的自定义菜单键里;
2.图文的阅读原文或者图片文字的超链接;
3.自定义回复发送直播间连接。
八、微信直播与传统电视直播的不同
微信直播可搭建专属的企业直播间,直播用户可以自主配置多种形式的互动工具,扩展观众的参与性。传统电视直播的功用很有限。
微信直播区别于传统电视直播的另一个优势在于数据反馈,基于电视信号的收视率不能全面反应观看行为的真实数量和时长。比如实时查看观看人次、峰值、时长等,通过数据分析得到用户的观看时段、所在区域、观看终端等。
九、微信直播与互动
在微信直播的互动中,真实的不同直播场景会吸引不同的人群,用户对直播内容的认同会产生用户粘性。在直播与用户的互动碰撞中即时的反馈又能拉近空间距离,而金钱打赏的商业模式又能在更深一步推动直播的火热的同时产生市场经济效应。
微信直播互动方式包括签到、聊天、投票、发言、点名、问答、打分、弹幕、抽奖、踢人、点赞、打赏等形式。微信直播界面可自定义装饰、直播倒计时、互动留言、嵌入第三方WEB网页、嵌入第三方移动WEB页面、广告自由植入、云导播、直播视频实时储存、分嘉宾打赏、全场打赏、红包摇一摇、手机端观看、电脑端观看、手机观看、打赏观看、主流在线投票、粉丝意见反馈、节目投票等互动应用。
十、微信直播系统开发
目前市场上的微信直播,一种只能看视频不能评论打赏的娱乐直播,另一种是能够微信登陆,在微信里进行观看视频、评论和打赏等操作。
微信中是不能发起直播的,这些直播的发起端都是第三方发起,把直播平台上直播间的链接放到微信公众号里,页面会跳转至h5的直播页面,然后就可以进行微信公众号的视频直播。
微信开发是基于H5来做的,直播也得用h5来开发。直播中常用的协议比如rtmp、http在h5上都是需要做插件才能使用的,唯一不使用插件就能进行开发的协议是hls协议,hls协议能直接支持h5,但延时比较高,在5-20s之间。
h5上直播页面开发成本较低,目前各平台上提供的拉流地址一般都支持三种格式:
1、rtmp(h5中不支持这样的协议)
2、http+flv
3、hls (一般手机都支持这样协议)
只需要h5页面中加入一个支持hls(.m3u8格式)的直播播放器即可:
以免费开源的videojs为例,safari的h5原生支持hls(m3u8)播放,chrome等浏览器需要安装videojs-contrib-hls插件自己写解码。
关于评论点赞这块,可以利用微信登陆做为评论的用户来源;如果需要结合自己平台上的会员,只需要做一个简单的登录即可,评论可通过第三方的IM工具来做实现。
解决了直播播放互动的问题,那么如何实现直播的推流呢?
各大云平台提供的推荐SDK和播放器SDK在微信中都是不能调用的,如需要发起直播,可以选用第三方的PC端的推流工具(OBS、XSplit、wireCast等)或者手机端推流工具(live:Air Solo 下载地址Live:Air Solo – Stream Live Video On The Go!:在 App Store 上的内容);
目前如阿里云,金山云,腾讯云是以接口的方式来产生推流地址的,这会给技术带来一定的学习过程以及开发过程;目前专门做直播SAAS应用的平台,可以比较方便的在控制台中直播生成直播推流地址,这样一来,非技术人员也可以比较简单的获取推流地址:如 http://play.lss.qupai.me/niuba/niuba-21EKA.m3u8
这个地址就是在1中在h5直播页面的直播URL,将这个地址在自己业务后台输入并重新生成即可;
产生的推流地址主要是在OBS、XSplit、wireCast、live:Air Solo等使用。
OBS:OBS是Open Broadcaster Software的简称,它是一款永久免费的直播软件。OBS直播软件相比XSplit占用资源相对较少,对配置要求相对要低一点,是目前最好用的第三方直播软件,并且支持MAC的OSX系统。
live:Air Solo:此软件支持使用手机进行直播,并可以将直播视频推送到专业直播平台,支持直播手机本地视频,摄像头拍摄内容,支持添加本地图片、logo、文字、标题、比分等功能,应用场景广泛。
下图是以保利威视为例的微信直播系统及其他相关系统开发。