视频直播这一两年在移动互联网上可以说是非常的火,各种视频直播软件层出不穷。有的通过自己的推广宣传确实火了起来,比如:映客。
我之前也是在一家专门做视频直播的公司打酱油,当时对这个概念还是很模糊,后来才慢慢的了解清楚视频直播的这个概念。后来离开这家公司,到现在的公司,做了一段时间,又有需要做视频直播的需求。由于公司各方面原因,只能引用第三方的sdk,最后选择的腾讯云。所以我下面给大家讲一下开发过程。
前两点 说下视频开发的引言,腾讯云sdk相关直接跳入到第三步。
直播开发我所知道的有两种解决方案
1.自己公司有比较成熟的c++ 开发人员,自己开发sdk so库等 做 视频推流 ,转码 解码,美颜等功能。有人说github上 很多开源库都是 视频直播的框架,免费而且也不用自己开发,但是你要知道 这些东西如果出了问题,你怎么修改它,还是要自己有能懂这些东西的 开发人员,才能解决。道理和自己开发的意思差不多,但是可能会省一些时间。
2.用第三方sdk开发,我知道的 视频直播开发sdk有 金山云 ,腾讯云 ,网易云 等等,其实还有很多 ,我就不一一列举了。
两种方式优缺点 自己开发 sdk 耗费人员及大量时间 ,开发进度会慢很多。而且对技术要求也比较高,适合公司本身有c++且有相关经验的程序员。如果公司本身没有可以开发sdk的程序员,只有客户端及服务端程序员。且要求开发周期比较短。(本人推荐)。
如果是 选择第一种方案的 ,下面的就不用继续看了....
这个一般都从两方面考虑
每家的sdk计费模式不同,这个每家的首页文档里面都有详细的介绍,我就不一一截图说明了。
稳定性来说,之前一个大神给我推荐的是金山云 。但是由于后来我并没有用到 ,只能等待用过金山sdk的开发人员来说明了。
上面说了这么多废话,终于对应上标题了。大家久等了,不好意思....
和大家一样 百度 腾讯云视频直播 进入腾讯云首页
点播 直播 互动直播 微视频 这么多sdk..... 问题来了 这都是什么玩意? 别着急 等我细细来解答。
大家做直播前肯定也玩过其它家的直播 比如映客 花椒等
如果是经常玩 肯定知道连麦是什么意思,就是一个主播可以邀请另一个人和他一起直播 ,说白了就是多人直播。
倘若你们有这种需求 ,有多人互动 或者 多人视频会议的app 那么请直接选择 互动直播的sdk。
如果没有这种需求,就是原始的一个主播 直播,比如:老师授课,专家讲课等 在线教育类等 总之 就是一人直播的 ,我强烈建议选 直播sdk。不要用互动直播。后面说具体原因。
视频回放,录制会看的sdk。
简单来说就是 直播的视频保存下来然后回放功能。
还有就是 如果自己本地有一些视频资源 想让用户可以看到。也可以上传,然后观看。
选择好自己的sdk后 那么请直接申请加入 腾讯的官方 客服 技术支持群:
点播sdk:腾讯云点播产品交流
互动直播sdk:腾讯云互动直播交流
腾讯IM云通讯技术交流
还有一个很多人不知道的... 厉害了我的哥...
提前加 互动直播群 验证通过非常慢。
到现在为止 大家一定要清晰的知道 自己 是选用直播sdk 还是互动直播sdk ,因为是两套sdk 两套技术支持 两套开发过程 。
补充说明:小直播 是基于直播sdk开发的一套视频直播app源码 ,里面的直播基本的功能点 他们都有。但是 小直播是基于 直播sdk开发的。
所以如果大家 现在是选用的直播sdk 那么 我推荐用小直播的源码及文档研究 上面也有群。 小直播也是他们官方推的一个东西。
互动直播里面的源码 是随心播 里面缺的功能是 头像列表 和 回放功能。所以 我也建议 大家加一下 小直播群 下载一下源码。里面有功能后期你会参考用到(头像列表和回放功能,没有就算了)
有大神要喷我了...头像列表不就是一个listview就行吗..好吧 大哥我错了 别喷了 好吗.... 我只是推荐大家参考一下,不是打广告的。
具体代码开发流程 看demo源码。别看他们写的那些文档,文档只是个形式,为什么因为 文档上面很多都写的比较粗,而且文档很旧 落后sdk好几个版本。
最起码现在是这样 我的sdk用的是互动直播1.8.2
如果遇到比如一些so库相关的问题 可以参考我之前一篇文章:
互动直播参考 随心播源码 直播参考小直播源码
说了半天都是废话,看源码。 对 就是源码。因为说流程会遗漏一些细节,但是源码你跑通了 ,再整合到自己项目里面心里面就会比较有底气了。
注意点 我说几点:
1.配置文件里面的相关配置
2.腾讯云管理台 添加好应用的相关配置
4.IM云通讯相关的jar和so库都参考源码里面的就可以 不要去云通讯sdk里面再去拷贝一份
5.登录里面如果是独立模式 流程是 向业务服务器后台请求sig ,拿到sig 向腾讯云请求登录。登录成功后初始化 AVSDK
9.回放的视频 90分钟一个文件 ,超过90分钟就是下一个文件... 自然就是两个url 至于怎么合并 暂时还没研究...
开发过程中问题还会有很多 :
1.上面加的群里面问 直播的群 回答问题没有问题 互动直播就一个人回答问题..你没看错 就是一个人
小直播iOS代码: 小直播业务服务器代码:
想要随心播 ec源码的也可以直接加我们群 群号码下面有。
ps:小直播demo下载链接 我是从小直播群公告里面粘贴出来的链接。 他这个应该还要解压密码。密码大家可以加群联系 ,因为现在小直播还在申请软件著作权的阶段。大家直接加群 有问题直接去群里面问比较靠谱
在开发过程中走了很多弯路,虽然最后按期完成。但是很累 写这篇文章的目的就是让大家准备做开发的 在开发之前有个大概了解,让大家少走一些弯路。如果还有其它问题也可以加入我的qq群: Android开发经验交流群 ,互相交流解决。本人水平有限,如果哪里写的有问题,希望大家提出 ,肯定改正。
暂时只想到这些,后续会有补充,愿这个世界没有bug....
版权声明:本文为博主原创文章,未经博主允许不得转载。 /WHB/article/details/
视频直播的应用的场景:
即时通讯视频直播互动直播在线教育
网易云通信直播源自网易多年视频技术沉淀,基于专业的跨平台视频编解码技术和大规模视频内容分发网络,提供稳定流畅、低延时、高并发的实时音视频服务,有视频直播需求的用户可调用网易云通信直播提供的API或SDK即可将视频直播无缝对接到自身的业务应用系统。
本服务适用于各类音视频直播场景,比如教育行业的在线教育、网络课堂等,娱乐行业的美女直播、游戏直播等,广电行业的电视直播、赛事直播等,另外还适用于企业协作、远程医疗、云监控、庭审直播等其他视频相关行业。
大概就这么多,如果细说还有许多细节,比如音视频同步,传输过程中的QOS等等问题
android系统版本太多,直接用android 系统接口的话,会有很多坑,例如mediacodec有的支持编码264,有的不支持,所以要配合第三方库一起使用,如果只是单纯的会java,那么android直播这里是玩不转的
直播的完整 SDK选择方案:
即构科技:就在深南大道 :即构科技的CEO林友尧,是原腾讯QQ即通部门总经理
要分开一个一个说。我最熟悉的是花椒(huajiao),他们家技术牛逼,单向直播的功能是自己做的,
技术和产品和运营都是行业翘楚,没的说的。他们的互动直播(连麦,多主播)是在2016年的9月左右上线的吧,用的是即构科技(ZEGO)的互动直播方案/SDK。
不是说他们做不出来,而是他们不能短时间做出来,短时间内需要把主要精力放在主营业务上,所以就用了即构科技(
)的互动直播SDK,单向直播部分还是用他们自己的。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
看看一线的直播平台在用哪些第三方公司的直播SDK?比如说花椒和一直播用了即构科技的。====但是我没有看到SDK
不要用网易,功能不完全,推流有内建参数,无法设置高码流和高帧数,延迟高
不要用趣拍,稳定性差,延迟高,SDK太大 ,趣拍直播就很不错,SDK很好集成,芒果直播也在用
不要用百度,响应慢,低画质马赛克,高画质延迟高
大牛直播:有比较好的文档和技术支持
虎牙直播是YY的,自然是用YY的方案了
斗鱼用网宿,映客用腾讯云,熊猫用网宿和迅雷等
主流的视频和音频的解码
1).vitamio这个是功能很强大,但是企业收费版的,个人用户可以玩玩.美拍,结果对于非个人移动应用均需购买Vitamio使用授权
Vitamio支持各种常见的流媒体协议,可以点播或者直播音频和视频,例如如下常见协议均能无缝支持:
Vitamio使用了 FFmpeg 做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 /question//answer/
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
看看一线的直播平台在用哪些第三方公司的直播SDK?比如说花椒和一直播用了即构科技的。====但是我没有看到SDK
不要用网易,功能不完全,推流有内建参数,无法设置高码流和高帧数,延迟高
不要用趣拍,稳定性差,延迟高,SDK太大 ,趣拍直播就很不错,SDK很好集成,芒果直播也在用
不要用百度,响应慢,低画质马赛克,高画质延迟高
大牛直播:有比较好的文档和技术支持
虎牙直播是YY的,自然是用YY的方案了
斗鱼用网宿,映客用腾讯云,熊猫用网宿和迅雷等
主流的视频和音频的解码
1).vitamio这个是功能很强大,但是企业收费版的,个人用户可以玩玩.美拍,结果对于非个人移动应用均需购买Vitamio使用授权
Vitamio支持各种常见的流媒体协议,可以点播或者直播音频和视频,例如如下常见协议均能无缝支持:
Vitamio使用了 FFmpeg 做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 H.264/AVC、H.263、MPEG4 等常见的视频编码,覆盖上百种多媒体格式。
Vitamio 新浪微博(安卓客户端),搜狐视频(安卓客户端),风行网(安卓客户端),歌华有线,熊猫影音(91网龙),视讯中国(央视),法国航空,悬浮浏览器等等
2).ffmpeg是一个非常强大的音视频编解码开源库,目前市场上流行的播放器,大部分都是基于此开发的,包括暴风,腾讯,等等以及上面提到的vitamio,vlc,ijkplayer
关于ffmpeg源码分析,有兴趣的请看
静止的画面叫图像(picture)。连续的图像变化每秒超过24帧(frame)画面以上时,根椐视觉暂留原理,
人眼无法辨别每付单独的静态画面,看上去是平滑连续的视觉效果。这样的连续画面叫视频。
当连续图像变化每秒低于24帧画面时,人眼有不连续的感觉叫动画(cartoon)
用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。
一般我们用的单位是kbps即千位每秒。
帧/秒(frames per second)的缩写,也称为帧速率,测量用于保存、显示动态视频的信息数量。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。
每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅,可理解为1秒钟时间里刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,也就是指每秒钟能够播放(或者录制)多少格画面。
1.2 多媒体的格式分类
封装格式(专业上讲叫容器,通俗的叫文件格式),视频编解码,音频编解码
* MPEG : 编码采用的容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用于 HDTV.
* MP 3 :大名鼎鼎的 MP3,已经成为网络音频的主流格式,能在 128kbps 的码率接近 CD 音质
* 3GP : 3GPP视频采用的格式, 主要用于流媒体传送;3GP其实是MP4格式的一种简化版本,是手机视频格式的绝对主流.
* MOV : QuickTime 的容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java等,它的变种 MP4,3GP都没有这么厉害;广泛应用于Mac OS操作系统,在Windows操作系统上也可兼容,但是远比不上AVI格式流行
* AVI : 最常见的音频视频容器,音频视频交错(Audio Video Interleaved)允许视频和音频交错在一起同步播放.
* WAV : 一种音频容器,大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码
RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的
RTSP:(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控、点播成为可能。
数据源包括现场数据与存储在剪辑中的数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、多播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法
传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,比较能容忍网络延迟
RTP不像http和ftp可完整的下载整个影视文件,它是以固定的数据率在网络上发送数据,客户端也是按照这种速度观看影视文件,当影视画面播放过后,就不可以再重复播放,除非重新向服务器端要求数据。
RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然,RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。它时一种类似与http协议的网络应用层协议
缺点:就是服务器端的复杂度也比较高,实现起来也比较复杂。Ios端不支持该协议。
在国内视频网站多采用HTTP+MP4或者HTTP+FLV协议传输视频,而国外使用RTMP,RTSP等专门的流媒体格式。
质就是下载视频文件,而利用视频文件本身的特点,就是存在头部信息,和部分视频帧数据,就完全可以解码播放了。显然这种方式需要将视频文件的头部信息放在文件的前面
该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,
streaming)。效果就是客户端会根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且自动在二者间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。实现方法是服务器端提供多码率视频流,并且在列表文件中注明,播放器根据播放进度和下载速度自动调整。使用起来也非常简单。
为什么苹果要提出HLS这个协议,其实他的主要是为了解决RTMP协议存在的一些问题。比如RTMP协议不使用标准的HTTP接口传输数据,所以在一些特殊的网络环境下可能被防火墙屏蔽掉。
HLS支持的视频编码格式H264,支持的音频编码为Acc
直播有2种,一种是直播,还有一种是互动直播。
其中上行RTMP推流很普遍了,很多游戏直播都使用obs推RTMP流。
在整个过程中,涉及很多流媒体的基本概念,先说说GOP。
GOP即Group of picture(图像组),指两个I帧之间的距离。即几秒有一个关键帧。分析线上主流的移动直播APP,大都在2、3秒之间。
一般的云服务公司都会提供多种协议的拉流方式,优缺点如下:
l HLS协议,移动h5浏览器支持较好,但是延迟较大。移动端播放前需要产生三个分片,每个分片至少得是一个GOP。一个GOP即使是2秒,也意味着这个环节耗费了6秒的延时。
l RTMP协议,需要访问1935端口,支持双向互动,实时性很好, flash原生支持。
l HTTP-FLV,不支持双向互动,实时性和RTMP协议一致。
基于以下几点理由,小弟准备采用HTTP-FLV作为拉流协议:
1. 国内网络情况的恶劣程度,并不是每个网络防火墙都允许1935包通过。
2. RTMP协议和HTTP-FLV,实际传输的内容都是相同的FLV,实时性也一样。
3. RTMP协议握手方式比HTTP复杂。
确定好了拉流协议,再看看推流侧依赖的参数。
l FPS,每秒编码传输的视频帧数;
l 码率,每秒编码传输的音视频比特数;
l GOP,关键帧间隔;
1) 能完全运行起来的是金山云、百度云提供的SDK。
我们先看下搭建一个完整的手机直播都包含哪些必须的环节:
推流端(采集、前处理、编码、推流),
服务端处理(转码、录制、截图、鉴黄),
播放器(拉流、解码、渲染)、
互动系统(聊天室、礼物系统、赞)
直播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。CDN的全称是Content Delivery
手机直播SDK通过手机摄像头和麦克风直接采集视频数据和音频数据。其中,视频采样数据一般采用RGB或YUV格式、音频采样数据一般采用PCM格式。对于采集到的原始音视频的体积是非常大的,因此需要经过压缩技术来处理,降低视频的大小来提示传输效率。 在手机视频采集方面,iOS系统在硬件的兼容性方面做得比较好,系统本身提供了比较完整的视频采集的接口,使用起来也比较简单。但是,Android系统就比较麻烦了,千奇百怪的机型都有,适配起来非常难。我们在初期做了一项调研,发现Android的适配率还不到50%。
在这个环节主要处理美颜、水印、模糊等效果。特别是美颜功能几乎是直播的标配功能,没有美颜的直播主播们根本提不起兴趣。我们见过太多case是因为没有美颜功能被抛弃使用的。另外国家明确提出了,所有直播都必须打有水印并回放留存15天以上。所以,在选择直播SDK时,没有美颜和水印功能基本就可以选择放弃了。
美颜实际上是通过算法去识别图像中的皮肤部分,再对皮肤区域进行色值调整。通常情况下人的肤色与周边环境色调存在较大差异,通过颜色对比,找到皮肤的基本轮廓,进一步进行肤色检查还可以确定人脸范围。找到了皮肤的区域,可以进行色值调整、添加白色图层或调整透明度等来等来达到美白效果。美颜除了美白效果还需要磨皮功能,磨皮实际上就是用模糊滤镜实现的。滤镜有很多种,如高斯滤波,双边滤波,导向滤波,到底选择什么样的模糊滤镜各家也有自己的喜好。
在美颜处理方面,最著名的GPUImage提供了丰富的效果,同时可以支持IOS和Android,还支持自己写算法实现自己最理性的效果。GPUImage本事内置了120多种常见滤镜效果,添加滤镜只需要简单调用几行代码就可以了,比如大家可以试试使用GPUImageBilateralFiter的双边滤波滤镜来处理基本的磨皮效果,想要实现更理想的效果还是要通过自定义算法去实现的,各家也都有自己一套算法。
为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积。现在比较常用的视频编码是H.264,但具有更高性能的H.265编码技术正在飞速发展,并可能很快成为主流;在音频方面,通比较常用的是用AAC编码格式进行压缩,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。通俗点讲就是编码器将多张图像进行编码后产生一段段GOP(Group of Pictures),播放时解码器读取一段段GOP进行解码后读取图像并进行渲染显示。 在编码方面的核心是在分辨率、码率、帧率等参数中找到最佳平衡点,达到体积最小画面最优的效果,这些参数各家也都有自己的一套核心参数。
Coding),相较于之前的H.264标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于1.5Mbps的网络也能传输1080p的高清视频。国内,如阿里云、金山云都在推自己的H.265编解码技术,随着直播的快速发展和对带宽的依赖,H.265编解码技术已有全面取代H.264的趋势。当然,全面推开应用还需要些时间。
另外,硬件编码已经成为手机直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在IOS平台上硬件编码的兼容性比较好,可以直接采用,但在 Android
平台上,Android的MediaCodec 编码器,针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的成本还是非常高的。
要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。 在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。
当然,在网络传输方面全部自己来做基本不现实,找提供推流服务的CDN服务商提供解决方案是最好的选择,可参考文章开头介绍的云视频服务商。据了解,阿里云是国内唯一能自研CDN缓存服务器的厂商,性能还是非常有保障的。通常,大多数直播平台都会同时接入多个视频云服务提供商,这样可以做拉流线路互备,对推流后视频集群再进行优化也可提高直播的流畅性和稳定性。
服务端处理需要做哪些工作?要想适配各终端和平台,服务端还需要对流进行转码,如支持RTMP、HLS、FLV等格式拉流,支持一路转多路适配不同网络和分辨率的终端设备。另外,像现在必备的鉴黄功能也需要服务端完成。
像阿里云、金山云、UCloud等云服务商都提供了实时转码技术将用户推流码率较高(比如720P)实时转化成较低清晰度(比如360P)的流以适应播放端的需求。如果要自己搭建实时转码系统,这个成本是极高的。一台8核设备只能实时转10 路流,如果一个正常的直播平台有1000路流,那至少就需要100台设备,加上后期的运维成本,一般公司就吃不消了。实时截图功能和实时转码类似,只是一般单机可以处理100路流。市面上云服务提供商基本上都提供了服务端转码、截图、录制功能,建议选择好的云服务提供商即可,可以节约大量成本。
2016年,4月14日上午10时,文化部公布了一则消息,斗鱼、虎牙、YY、熊猫TV、战旗TV、龙珠直播、六间房、9158等网络直播平台因涉嫌提供含宣扬淫秽、暴力、教唆犯罪等内容的互联网文化产品,被列入查处名单。文化部已部署相关执法机构查处涉案企业,将及时公布处罚结果。在前期的野蛮生长后,国家介入管制一定程度上遏制了直播的发展速度,但更有利于直播行业打造健康的生态,进入良性发展。这也意味着直播行业鉴黄成了必须环节,使用技术手段去鉴黄是手机直播平台必然采用的方案。
市面上提供鉴黄服务的方案主要有两种,第一种是对视频进行截图,然后对图片进行鉴黄,返回鉴黄结果和分值。典型的企业有阿里(绿网)、图谱科技,他们目前都支持直接传入视频,经过服务端分析返回结果,鉴黄的结果分为色情、疑似色情、正常或性感,并对每种结果进行打分。通常由业务系统接入鉴黄服务,根据鉴黄结果对直播流进行控制,如切断直播流、禁用用户的账号等。第二种是和CDN结合,直接对直播流进行分析,识别结果也分为色情、疑似色情、性感和正常,业务系统根据识别结果直接控制直播流。典型的企业是Viscovery,这套方案的优点是实时性保证比较好,缺点是必须部署到CDN或自己的机房,使用成本相对高一些。
趣拍微视频云服务作为一站式直播解决方案提供商,我们的主旨是让用户以最短时间、最小成本接入直播服务。因此,用户只需在控制台对鉴黄服务进行配置就可以针对每个应用,每一路直播流进行实时审核,审核内容包括色情、暴恐、时政敏感等。在控制台中,趣拍微视频服务实时将鉴黄结果返回,用户可以直接查看色情直播和违规界面的截图,同时可以对直播流进行控制,切断问题直播流。我们提供了短信、邮件和站内信提供功能,避免漏洞一个非法视频,给平台造成损失。数据统计功能让用户可以把握平台最新的动态信息,为进一步采取必要的措施提供可靠的依据。同时,为了满足用户定制化需求,我们还提供了丰富的接口,可以很方便的将鉴黄服务接入到自己的业务系统。
播放器端需要做哪些工作?在播放器端如何做到秒开,在直播过程中保证画面和声音清晰度的同时,稳定、流程、无卡顿的直播流量,这些工作都需要播放器端配合服务端来做优化,做到精确调度。
拉流实际是推流的逆过程。首先通过播放端获取码流,标准的拉流格式有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、HLS、FLV三种格式,满足不同业务场景的需求,如对即时性要求较高或有互动需求的可以采用RTMP或FLV格式进行直播拉流播放;对于有回放或跨平台需求的,推荐使用HLS。当然,三种协议是可以同时使用的,分别用到自己的场景就可以了。
拉流获取封装的视频数据后,必须通过解码器解码、渲染后才能在播放器上播放。它是编码的逆过程,是指从音视频的数据中提取原始数据。前面介绍的H.264和H.265编码格式都是有损压缩,所以在提取后的原始数据,并非原始采样数据,存在一定的信息丢失。因此,在视频体积最小的情况下通过各种编码参数保留最好的原始画面,成为了各视频公司的核心机密。
考虑对高清的支持,解码肯定还是要选择硬解码的。前面介绍过,IOS系统由于硬件比较单一、比较封闭,支持的比较好,Android系统由于平台差异非常大,编解码要完全兼容各平台还需要很多工作要做。
渲染最大的难点不在与画面绘制,而在于画音同步,业内大部分直播平台在这块做的都还是不够的。我们在这方面积累了一些经验和大家分享。
手机直播中最常见的交互有聊天室(弹幕)、点赞、打赏和礼物等,有些比较有特色的手机直播平台也加入了和主播互动的游戏功能。交互系统涉及消息的实时性和互动性,在技术实现上大多是使用IM的功能来实现的,对服务器的压力也是比较大。 对于在线人数比较多的房间,弹幕消息量是非常大,主播与用户其实都看不过来,为了缓解服务器压力,在产品策略可以做一些必要的优化,比如对于发送消息的频率进行限制或对每条消息发送对象的上限进行限制等。
手机直播中的弹幕交互功能已经成为直播必不可少的部分,是用户和主播互动的主要方式。手机直播中的弹幕实际上就是IM中的聊天室功能。聊天室和群聊功能类似,但聊天室的消息是不需要分发给不在线的用户的,对于历史消息也不需要查看,用户只有进入聊天室后才能查看聊天消息和群成员信息。要面对复杂多变的网络状况,还需要根据用户位置就近选择近对应运营商的单线机房接入弹幕消息服务,让弹幕更及时。当然,可以根据团队情况选择自己搭建还是选择第三方的聊天服务。
趣拍直播SDK提供丰富的聊天室功能和接口,以最简单的方式对接自己的聊天系统或第三方的聊天系统。
礼物系统已是绝大多数手机直播平台的标配了,它是这些平台主要的收入来源。在手机直播平台上我们常常可以见到土豪秒榜、土豪对刷的情景,据报道,明星直播一场礼物收入几十万也是常有的事,一年千万收入的网红也不少,可见国内有礼物消费习惯的土豪还不少。另一方面,送礼物的形式增强了用户和主播之间的互动交流,也是主播依赖平台的最主要原因。
礼物的收发在技术实现上也是用聊天室接口做的,通常采用IM中的自定义消息实现,当用户收到或发送礼物时将自定义消息对应的礼物图形渲染出来。另外,面对大量用户刷礼物时,礼物系统对一致性要求就比较高了,所以在实现上存一份数据建多条索引是一种很好的选择,也可以降低对事务的依赖。
手机直播行业现在如此火热,我们认为这个火热会在很长一段时间内持续,并且在未来通过和各行业的整合,会成为具有无限可能性的行业。所以直播SDK的选择也成为一些企业的转折点,就比如趣拍直播SDK吧,拥有视频开发行业长达10年的历史,和阿里云、支付宝、钉钉、芒果直播有着紧密的合作,关于趣拍直播的云服务和技术总是能跑在行业的前面,选择趣拍直播SDK是一种信任。
往主要原因包括如下几点:
第一,手机直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,全民直播时代将内容生产潜力发挥到最大。如今,“网红经济”如此火热,更是刺激更多人去创造和传播优质内容。作为网红经济的代表,papi酱融资1200万,估值2亿,广告招标沟通会门票8000元/张,单条贴片广告中标价2200万,一个个数字都如此刺激大众眼球。手机直播中的网红价值也在被更多创业者重视,拥有极大的增涨空间。
第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,4G乃至今后的5G也会像今天的有线网络那么廉价,为手机直播提供一个极佳的发展环境。技术的发展,手机可以承载的内容也就越丰富,文字、声音、视频、游戏等都会在手机直播中呈现,创造更加丰富的用户体验。各行业都可以将直播作为一种工具接入到自己的应用中,教育、社交、电商、金融等行业都可以通过手机直播形式开展新业务,增强与用户之间的互动,提高用户粘性。比如,教育领域中的课后辅导完全可以以直播的形式开展业务,电商也可借助直播让用户挑选商品,促进销售。
第三,一个与VR/AR技术相结合的手机直播为整个行业的未来提供了新的发展空间。VR/AR直播能够让用户身临其境,带动主播与观众更贴切真实的互动,大大提高平台的用户参与度。更加创新的硬件设备与直播的结合,如穿戴设备,更加丰富的传感器,更方便的采集信息,也将会大大拓展手机直播未来的应用场景。哪家公司如果在VR/AR和穿戴设备上取得突破性进展势必会在直播行业取得领先地位。
总之,手机直播欣欣向荣的发展已是必然趋势,尽管国家层级在加强管控、内容创作上还比较单一,红海一片搏死拼杀,但是它的未来是一个具有无限可能的超级市场,这个领域必然将会诞生千亿市值的巨头。
播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、封装,然后推流到CDN进行分发。
|