如何快速搭建一个完整的移动直播系统?
移动直播行业的火热会在很长一段时间内持续,通过和各行业的整合,从而成为具有无限可能性的行业。主要因为以下三个原因:
第一,移动直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,能刺激更多人去创造和传播优质内容。
第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,为移动直播提供一个极佳的发展环境。文字、声音、视频、游戏等都会在移动直播中呈现,创造出更加丰富的用户体验。直播可以以SDK的形式接入到自己的应用中,比如,教育领域中的课后辅导完全可以以直播的形式开展业务、电商也可借助直播让用户挑选商品,促进销售。
第三,一个与VR/AR技术相结合的移动直播为整个行业的未来提供了新的发展空间。VR/AR直播能够让用户身临其境,带动主播与观众更贴切真实的互动,大大提高平台的用户参与度。
当下,有技术实力和流量优势的互联网从业者都不愿错过直播这个风口,如何快速搭建一个直播系统成了大家关心的问题,我想和大家分享下我的经验。我从事于一家直播产品开发商,我们的产品为了快速赶上市场,并没有自己完全去自己做,而是使用了趣拍云服务提供的直播SDK。
从业者都知道,一个完整直播产品应该包含以下环节:推流端(采集、前处理、编码、推流),服务端处理(转码、录制、截图、鉴黄),播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞)。下面我就一一讲述下直播SDK在各个环节所做的工作。
一、移动直播推流端需要做哪些工作?
直播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。
1、采集
移动直播SDK通过手机摄像头和麦克风直接采集音视频数据。其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式。采集到的原始音视频的体积是非常大的,需要经过压缩技术处理来提高传输效率。
2、前处理
在这个环节主要处理美颜、水印、模糊等效果。美颜功能几乎是直播的标配功能。我们调研中发现太多case是因为没有美颜功能被抛弃使用的。另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上。
美颜实际上是通过算法去识别图像中的皮肤部分,对皮肤区域进行色值调整。通过颜色对比找到皮肤区域,可以进行色值调整、添加白色图层或调整透明度等来等来达到美白效果。在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持iOS和Android,支持自己写算法实现自己最理性的效果。GPUImage内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了。
3、编码
为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积,现在比较常用的视频编码是H264。在音频方面,比较常用的是用AAC编码格式,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。
相较于之前的H264,2012年诞生的H265编解码标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于15Mbps的网络也能传输1080p的高清视频。像阿里云、金山云都在推自己的H265编解码技术,随着直播的快速发展和对带宽的依赖,H265编解码技术已有全面取代H264的趋势。
H264和H265个模块技术差异:
另外,硬件编码已经成为移动直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在iOS平台上硬件编码的兼容性比较好,可以直接采用,但在Android平台上,MediaCodec编码器针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的成本还是非常高的。
4、推流
要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1_3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。
当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,可参考文章开头介绍的云视频服务商。据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能非常有保障。当然,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。
二、服务端处理需要做哪些工作?
要想适配各终端和平台,服务端还需要对流进行转码,如支持RTMP、HLS、FLV等格式拉流,支持一路转多路适配不同网络和分辨率的终端设备。
1、截图、录制、水印
像阿里云等云服务商都提供了实时转码技术,将用户推流码率较高(比如720P)实时转化成较低清晰度(比如360P)的流以适应播放端的需求。如果要自己搭建实时转码系统,这个成本是极高的,一台8核设备只能实时转10路流,如果一个正常的直播平台有1000路流,就需要100台设备,加上后期的运维成本,一般公司就吃不消了。
2、鉴黄
2016年4月14日,文化部查出了斗鱼、虎牙、YY、熊猫TV、六间房、9158等涉嫌提供含宣扬*秽、暴力、教唆犯罪的网络直播平台,被列入查处名单。政府介入管制有利于直播行业打造健康的生态,进入良性发展。这也意味着为了安全直播产品鉴黄成了必需环节,使用技术手段去鉴黄是移动直播平台必然采用的方案。
市面上提供鉴黄服务的方案主要有两种,第一种是对视频进行截图,然后对进行鉴黄,返回鉴黄结果和分值。典型的企业有阿里(绿网)、图谱科技,他们目前都支持直接传入视频,经过服务端分析返回结果。通常由业务系统接入鉴黄服务,根据鉴黄结果对直播流进行控制,如切断直播流、封禁账号等。第二种是和CDN结合,直接对直播流进行分析,识别结果分为色情、疑似色情、性感和正常,业务系统根据识别结果直接控制直播流。典型的企业是Viscovery,这套方案的优点是实时性保证比较好,缺点是必须部署到CDN或自己的机房,使用成本相对高一些。
还有像趣拍云服务这种一站式直播解决方案提供商,他们的做法是,用户只需在控制台对鉴黄服务进行配置就可以针对每个应用、每一路直播流进行实时审核。在控制台中,趣拍视频云服务实时将鉴黄结果返回,用户可以直接查看色情直播和违规界面的截图,同时可以对直播流进行控制,切断问题直播流。该服务商还提供了短信、邮件和站内信功能,避免漏掉任何一个非法视频,给平台造成损失,我们就使用了这种方式。
三、播放器端需要做哪些工作?
在播放器端如何做到秒开,直播过程中保证画面和声音清晰度的同时,稳定、流程、无卡顿的直播流量,这些工作都需要播放器端配合服务端来做优化,做到精确调度。
1、拉流
拉流实际是推流的逆过程。首先通过播放端获取码流,标准的拉流格式有RTMP、HLS、FLV等。RTMP是Adobe的专利协议,开源软件和开源库都支持的比较好,如开源的librtmp库,播放端只要支持flashPlayer的就能非常简单的播放RTMP直播,直播延迟一般在1_3秒。HLS是苹果提出的基于HTTP的流媒体传输协议,HTML5可以直接打开播放,通过微信、QQ等软件分享出去,用户也可以直接观看直播,可以说移动直播app,HLS拉流协议是必须支持的,缺点是延迟通常大于10秒。FLV(HTTP-FLV)协议是使用HTTP协议传输流媒体内容的一个协议,也不用担心被Adobe的专利绑架,直播延迟同样可以做到1_3秒。
各拉流协议的差异:
我们使用的趣拍视频云服务的直播拉流技术提供了以上三种格式,满足不同业务场景的需求,如对即时性要求较高或有互动需求的可以采用RTMP或FLV格式进行直播拉流播放;对于有回放或跨平台需求的,推荐使用HLS。当然,三种协议是可以同时使用的,分别用到自己的场景就可以了。
2、解码和渲染
拉流获取封装的视频数据后,必须通过解码器解码、渲染后才能在播放器上播放。它是编码的逆过程,是指从音视频的数据中提取原始数据。前面介绍的H264和H265编码格式都是有损压缩,所以在提取后的原始数据,并非原始采样数据,存在一定的信息丢失。因此,在视频体积最小的情况下通过各种编码参数保留最好的原始画面,成为了各视频公司的核心机密。
考虑对高清的支持,解码肯定还是要选择硬解码的。前面介绍过,iOS系统由于硬件比较单一、比较封闭,支持的比较好,Android系统由于平台差异非常大,编解码要完全兼容各平台还需要很多工作要做。
四、移动直播中的交互系统
移动直播中最常见的交互有聊天室(弹幕)、点赞、打赏和礼物等,交互系统涉及消息的实时性和互动性,在技术实现上大多是使用IM的功能来实现的。对于在线人数比较多的房间,弹幕消息量是非常大,主播与用户其实都看不过来,为了缓解服务器压力,在产品策略需要做一些必要的优化。
1、聊天室
移动直播中的弹幕交互是用户和主播互动的主要方式,实际上就是IM中的聊天室功能。聊天室和群聊功能类似,但聊天室的消息是不需要分发给不在线的用户的,历史消息也不需要查看,用户只有进入聊天室后才能查看聊天消息和群成员信息。面对复杂多变的网络状况,还需要根据用户位置就近选择近对应运营商的单线机房接入弹幕消息服务,让弹幕更及时。
2、礼物系统
礼物系统更是绝大多数移动直播平台的标配了,它是这些平台主要的收入来源。送礼物的形式也增强了用户和主播之间的互动交流,也是主播依赖平台的最主要原因。
礼物的收发在技术实现上也是用聊天室接口做的,通常采用IM中的自定义消息实现,当用户收到或发送礼物时将自定义消息对应的礼物图形渲染出来。
以上就是我们在使用了第三方SDK服务后总结出来的直播产品经验,希望能帮助到创业者和从业者们。
网络视频直播系统可以应客户的要求把活动现场的音频或视频信号经压缩后,传送到多媒体服务器上,在Internet上供广大网友或授权特定人群收听或收看。
现在网络直播系统分:直播软件或是硬件直播,硬件直播的优势在于网络延迟低,唇音同步的效果。同时还支持客户端分辨率自适应调整。
1简介
随着Internet的飞速发展,网上现场直播已经从实验阶段走向了实用阶段。各式各样的社会活动都可以借助网上现场直播方式传遍全世界,如新闻发布会、体育比赛、商贸展览、商业宣传、远程会议、远程看护、开学开业典礼、校友聚会、周年庆典、结婚庆典等等。 最近为贯彻国家建立 “三网融合”,网络电视直播在广电业大力兴起,各广播电视台、新闻媒体都逐步开始建立自己的网络电视直播系统。根据当前网络电视直播系统的发展情况,以及各电视台或媒体对网络电视直播的需求,提出了一套具有针对性的网络电视直播解决方案,该方案依托于深厚的技术服务保障为客户提供多样化的功能及个性化服务。
2系统组成
一个完整的流媒体系统应包括以下几个组成部分。
◇编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式,这可以由带视音
频硬件接口的计算机和运行其上的制作软件共同完成。
◇流媒体数据.
◇服务器:存放和控制流媒体的数据。
◇网络:适合多媒体传输协议或实时传输协议的网络.
◇播放器:供客户端浏览流媒体文件。
网络视频直播系统应用流媒体技术在网络上进行直播,同时支持进行录播(系统自动录制,方便用户随时点播),用户访问指定的直播网站页面(URL),其访问请求导向发布服务器节点,获得流媒体数据,通过网页浏览器直接观看直播视频内容。
3软件功能
节目/频道管理 为用户传送不同码率的视频提供了方便,用户可以给不同的频道设定不同的视频码率进行直播或者存储。根据用户的需求提供对音视频采集的选择。
定时存储 在视频采集频道中,可以在进行直播的同时保存视频节目。系统还给用户提供一套更完善的自动保存机制。用户可以控制某一频道进行不同时间段进行保存。
定时启动 为用户提供定时启动某路频道功能,可以根据用户自定义时间进行设置。
定时传送 根据存储的文件节目,可以通过定时传送技术直接进行VOD节目的制作和上传。
自动录制 在直播的同时进行录制,提供视频点播系统供用户收看。
预览控制 在采集服务器上,管理员可以通过预览进行对采集设备的图像预览,可以进行一路、四路、八路和十六路的选择。
系统监控 记录系统各模块的日志,记录管理员/用户操作日志,如采集工作站在直播时出现问题的记录、管理员操作步骤、服务器运行出现的问题等。查看正在直播节目的码流数,播放状态等等。
用户管理 对管理员/普通用户进行管理,可添加/删除/修改用户属性,修改用户权限,对用户频道直播收看进行计费、统计;用户登陆系统时进行认证。
与点播结合 在系统配置中设置直播系统和点播系统的交互参数,就可以直接或定时对采集下来的视频资源上传到点播系统服务器中,并且直接制作成一个节目进行点播。
4软件特色
自定义动态节目单:
支持动态定义节目单,节目、广告时段可自由设定。系统可按用户设定,直播选定的节目源和广告。
采集任意电视信号并在源节目上加上网络直播方的LOGO、动态文字广告:
网络直播方的LOGO和所需文字一方面可以宣传电视台,另一方面也无形中打造自己电视台的网络直播形象,观众能根据LOGO或文字准确无误的选择网络直播平台。
支持节目点播,可让观众跨地域,不受时间限制来收看电视台节目视频:
网络电视直播系统提供节目点播功能,观众进入电视台直播界面,在点播节目列表里选择节目收看,真正的让观众跨地域的收看自己喜欢的电视节目,同时也不用害怕没有时间去看现场直播而让自己有遗憾。另外直播页面也会展示相关的点播节目表,并对视频点播进行热度排名和播放统计。
直播网络的互动功能,让直播网络更具人情味"
网络电视直播系统在互动上着重体现节目预告,节目点评,短信、电话接入等。通过这些互动功能实现边看边聊,即网友通过网页聊天室进行对节目的实时评论,网络电视直播系统的互动让观众不再死板的只是收看视频,可以跟主播方进行互动,让整个网络直播更具有人情味。
直播系统也保障应用和个性定制:
如果企业对于现有直播系统的功能不能满足需求的话,可以提供自身的需求,根据需求为客户进行个性定制,协助客户打造最适合客户的网络直播系统。
5性能指标
采用组播技术,轻松实现跨网段、跨路由广播;
时段定时自动录制,可以省去管理员大量工作;
实时视频流解压技术,保证了客户端画质的流畅;
音视频交互技术,使客户端音视频达到完美的同步效果;
同时提供转播服务,能更有效利用网络带宽;
扩展性强,系统在不停机的情况下,轻松扩展。
简洁直观的用户操作界面,使用户操作更加简单;
支持AVI、DAT、MPG、H264等文件的广播;
支持一机多卡,支持客户端多频道选择;
6应用范围
多媒体网络教学
校园广播
综合教案培训
数字图书馆
信息查询
学生社区服务远程教育
电子阅览室
学生活动中心
数字培训中心
如果有人都把**共享了,这下可好了,很多**都不用重复下载了。不过,每次都要下载后再看,有的文件有1GB多,下载需要很多时间,有没有不用下载就直接观看**的好办法。的确,动辄几百兆的大片,同学之间共享也非常麻烦。如果在宿舍内搭建一个VOD视频点播系统,就可以解决这个问题:收看**是只要在自己电脑上打开点播系统的网页,不用下载就能收看自己想看的**。而且多个同学可以同时点播同一个**,互不干涉。而组建这样一个点播系统并不复杂,这里我们以美萍VOD点播系统(共享软件)为例介绍,它的客户端支持WEB界面点播和应用程序界面点播两种。
1、设置**服务器
运行程序后,单击系统设置按钮,进入到程序设置界面。
第一步:首先在服务器设置项中的系统设置界面在本服务器IP地址项中输入本机的IP地址,如19216813,随后在端口项中输入端口值,程序默认为6666(图1)。
进行基本系统设置
第二步:切换到点播设置界面,在该界面的点播方式设置项中点选客户机通过VOD服务器点播节目。如果你想只允许特定用户点播**,在下面的客户端IP地址限制项中输入允许点播的用户的IP地址即可。
第三步:切换到播放软件选择窗口,程序列出了多种播放格式。在此我们还可以添加其他的**格式,添加时,切换到播放软件选择项中,在新格式文件夹中输入需要添加格式的扩展名,单击添加即可。随后在客户端使用的播放器中选择需要使用的播放工具。
第四步:在下面的选择播放器项中点选客户机使用系统默认程序播放, 设置后单击保存设置按钮,返回程序主界面。
2添加**文件
接下来我们在**服务器上添加点播的**文件。在程序界面的左侧列表中选择某个分类,进入下层的分类后,在程序右侧窗口中单击鼠标右键,选择项目添加弹出项目添加窗口,此处我们可以直接输入**文件的路径、网址(图2)。
直接输入**路径网址
提示:程序支持拖放功能,我们可以将电脑中的某个或多个**文件用鼠标拖到相应文件夹中即可。
一、直播的技术架构:
直播视频采集SDK(PC/IOS/Anddroid)——直播CDN
(直播流分发加速)——直播视频播放器SDK(PC/IOS/Android)
二、音视频处理的一般流程:
数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示
1、数据采集:
摄像机及拾音器收集视频及音频数据,此时得到的为原始数据
涉及技术或协议:
摄像机:CCD、CMOS
拾音器:声电转换装置(咪头)、音频放大电路
2、数据编码:
使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据
涉及技术或协议:
编码方式:CBR、VBR
编码格式
视频:H265、H264、MPEG-4等,封装容器有TS、MKV、AVI、MP4等
音频:G711μ、AAC、Opus等,封装有MP3、OGG、AAC等
3、数据传输:
将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输
涉及技术或协议:
传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
控制信令:SIP和SDP、SNMP等
4、解码数据:
使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音
涉及技术或协议:
一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等
5、播放显示:
在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音
涉及技术或协议:
显示器、扬声器、3D眼镜等
三、常见的视频直播相关协议:
1、RTMP(Real Time Messaging Protocol,实时消息传送协议)
RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。它有三种变种:
1)、工作在TCP之上的明文协议,使用端口1935;
2)、RTMPT封装在HTTP请求之中,可穿越防火墙;
3)、RTMPS类似RTMPT,但使用的是HTTPS连接;
RTMP协议是被Flash用于对象、视频、音频的传输。这个协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的。
2、RTSP(Real Time Streaming Protocol,实时流传输协议)
RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP提供了一个可扩展框架,数据源可以包括实时数据与已有的存储的数据。该协议目的在于控制多个数据发送连接,为选择发送通道如UDP、组播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法。
RTSP语法和运作跟HTTP/11类似,但并不特别强调时间同步,所以比较能容忍网络延迟。代理服务器的缓存功能也同样适用于RTSP,并且因为RTSP具有重新导向功能,可根据实际负载情况来切换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
3、RTP(Real-time Transport Protocol,实时传输协议)
RTP是针对多媒体数据流的一种传输层协议,详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通系统(配合H323或SIP),使它成为IP电话产业的技术基础。
RTP是建立在UDP协议上的,常与RTCP一起使用,其本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。
RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性,只管发送,不管传输是否丢包,也不管接收方是否有收到包。RTP 实行有序传送,RTP中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,如在视频解码中,就不需要顺序解码。
4、RTCP(Real-time Transport Control Protocol,实时传输控制协议)
RTCP是RTP的配套协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。
RTCP的主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。
0条评论