首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底

摘要: 想要快速实现直播能力,并对原有业务不产生任何影响,依托如阿里云一样的直播平台,来搭建移动直播系统,将技术难题交给阿里云,把更多的精力放在核心业务的本身,是最为稳妥和高效的选择。本文介绍阿里云直播系统架构、核心能力、技术实现和接入流程。

点此查看原文: https://yq.aliyun.com/articles/394552?spm=a2c41.11181499.0.0

关注直播行业的人都知道, 2016年是移动直播的元年,那一年,网红被我们挂在嘴边,直播平台数量呈大规模增长。模式从最开始的秀场直播,转向UGC全民直播,内容从最开始的美女、色情,逐渐与各垂直领域进行探索与结合。最近,直播抓娃娃机和直播答题的接连风靡,也让我们看到了移动直播场景延伸和创新的可能性。

移动直播的应用场景

直播是内容高级的展示手段,移动直播和垂直领域结合,会碰撞出更好场景,为原有业务增值。

比如一些常见的场景应用:

直播+电商:更容易很促成销售,数据显示超过6成的观众会浏览商品,而购买率达到2成;
直播+教育:可以使远程教育更接近现场授课,并通过实时互动,能有效提升学习质量;
直播+金融:通过理财师分析大盘、实时资讯风向,可以实现从资讯到交易的全流程,促进理财产品的购买等等。

当然以上场景都是建立在稳定、完整、高性能、可扩展的直播系统之上。接下来,视频云产品经理弦望将为我们介绍阿里云直播系统解决方案和背后的核心技术能力。

直播系统解决方案

阿里云的直播技术架构,提供了从端到端的完整解决方案,可以助力用户快速搭建直播系统,实现直播功能。

下图中,左边是推流端,有Android、iOS的推流SDK,也可借助类OBS的推流工具和专业设备结合进行推流。直播流推上来后,会在直播中心进行实时处理,比如实时转码、截图、录制、水印、直播时移等,再通过CDN进行分发。播放端接收整个视频流的播放,可以支持10万以上路流输出、1000万以上观众同时在线。

图片描述
(直播技术架构图)

我们可以看到,整个链路上都有SDK或者OpenAPI开放给用户使用,用户只需要基于SDK做一些接口的对接,就可以完成整个直播系统的开发。

技术能力介绍

下面我们看下整个直播系统都涉及到哪些具体环节,每个环节都是怎么实现的。

一、推流端

直播推流端即主播端,主要通过手机摄像头采集视频数据和麦克风采集音频数据,经过一系列前处理、编码、推流,直到CDN进行分发。

图片描述

1、 高级美颜

前处理是对视频进行渲染,比如美颜、水印、贴图、混音、降噪等处理。其中直播平台必备的美颜功能,是通过算法去识别人脸的皮肤部分,对皮肤区域进行色值调整从而实现的。现在,阿里云以技术普惠大众的价值观将基于人脸识别的瘦脸、小脸、大眼、腮红等高级美颜功能完全免费开放。同时,通过标准化封装,推流SDK提供标准接口,可支持第三方美颜能力的接入,让用户基于自身业务做选择。

2、 实时混音

在推流阶段,阿里云还开放了时下热门的混音技术,它是将采集的人声和音乐声进行混合后输出,并支持降噪和耳返功能。整个技术流程是:将背景音乐解码成PCM音频数据,同时,将麦克风采集的PCM音频数据进行降噪处理,二者合成,在主播端直接播放PCM音频,在观众端则先进行音频编码再通过RTMP推送音频流并完成播放。

图片描述

二、直播服务端处理

在推流完成后,直播服务端需要进行技术实现,包括实时转码,鉴黄,直播截图,直播录制,添加水印,时移观看,直播答题等,同时确保稳定、流畅和实时数据可见性。

图片描述

1、 实时转码

实时转码是将一路流转成多路不同清晰度的流,在移动直播场景应用较少,但在PC端推上来的流一般是比较高清的,所以较为有效。阿里云提供的窄带高清技术,使用高配转码集群,高度复杂编码算法,在同等质量下提供更好的压缩率,节省20%-30%的流量带宽。

图片描述

2、直播鉴黄

为了确保平台内容的合规,直播鉴黄是十分必要的一环。大型的直播平台通过人工鉴黄,成本高昂且不够精准。所以,选择人工智能技术鉴别黄色内容,可以减少审核人力,有效降低平台涉黄风险。

在直播系统中接入API后,人工智能技术可以对秒级截图的甄别,判定这个直播的色情程度,进行合理打分,也会给出建议处理方式,帮助平台实现内容管控。

3、 直播时移

直播时移是一种点播和直播想结合的能力,简单来说就是支持已经直播过的内容的实时回看。这个功能是结合播放器SDK,通过简单的几个接口调用就能实现。在网络电视、网络直播中,是十分常见的。

4、 直播答题

针对最近十分火热的直播答题,阿里云也推出了解决方案。在技术上是这么实现的:主持人发出答题信号,现场导播人员通过接入方的AppServer,调用阿里云的OpenAPI,在视频帧中插入SEI信息,播放器在解析SEI帧 并回调给APP,在播放端上进行展示。这其中比较关键的点是,SEI信息在CDN分发和转码等处理过程中,是不会被丢掉的。这也确保了所有用户端都能顺利完成推题。另外,整个方案通过同步服务器,进行同一传输通道同时传输,可实现高精度画题同步,保证用户体验。

图片描述

通常,直播答题场景都是通过现场人员在改造之后的OBS端,实现SEI信息插入的操作,同时,阿里云直播答题解决方案也即将提供移动端出题的能力,满足主播直接出题的业务场景需求。

图片描述

三、拉流端

拉流端的核心处理在播放器端的解码和渲染,在互动直播中还需集成聊天室、点赞和礼物系统等功能。

拉流端现在支持RTMP、HLS、HTTP-FLV三种协议,RTMP是Adobe的专利协议,开源软件和开源库都支持的比较好,延时一般在1-3秒。HLS是苹果提出的基于HTTP的流媒体传输协议,优先是跨平台性比较好,HTML5可以直接打开播放,移动端兼容性良好,但是缺点是延迟比较高。FLV(HTTP-FLV)协议是使用HTTP协议传输流媒体内容的一个协议,不用担心专利问题,直播延迟同样可以做到1–3秒。

这三种播放协议都是可以支持的,我们可以根据自己的场景来选择。比如说在端上播放可以使用FLV,如果将视频流分享出去就建议使用HLS。

图片描述

核心技术

那么在整个阿里云直播系统中,都有哪些移动端的核心技术呢。弦望认为:动态码率、高级美颜、播放器首帧秒开三点非常重要。

一、 推流SDK——动态码率

动态码率技术实现原理是,首先在应用层配置时,设置一个最大的码率和最小的码率,圈定码率的浮动范围。然后通过实时上报当前码率,根据带宽的情况作出动态码率调整,在网络情况良好的时候提高视频清晰度,在网络情况不佳的时候则优先保证流畅度。这个技术可以让视频清晰度和卡顿做到一个平衡的状态。

图片描述

弦望表示,目前视频云正在探索动态丢帧的策略,在未来,可能编码的帧率和分辨率也可以是动态调整的。

二、推流SDK——实时美颜

阿里云的实时美颜,其实是将美颜相关的算法,比如线性滤波、非线性滤波、PS大法的图像细节增强等等,做了融合与优化。最新的美颜算法通过多种滤镜的组合,已经达到了非常高的性能,总共耗时6毫秒。

通常视频在移动端推流是每秒15-20帧,每帧50毫秒的处理时间,6毫秒的处理时间其实是基本不会产生性能瓶颈的。

三、播放器——首帧秒开

在播放端,首帧秒开决定用户体验的关键性技术。其基本原理是,当用户在发起请求的点不是视频的关键帧,没办法直接渲染和播放的时候,读取已经在服务端缓存的最近一个GOP,在播放端读取到关键帧就可以直接展示,再通过PTS校正、丢帧、追帧等策略,去动态的处理视频流,降低延时。经过测试,秒开的时间在200毫秒-1秒之间。

图片描述

接入流程

整个PC端直播的流程为:

图片描述

首先,我们需要进行添加域名、绑定CNAME、配置鉴权等直播前筹备工作,然后使用第三方推流软件,或者OBS进行推流,最后获取播放地址,在web页面或者VLC上进行播放预览。

虽然背后的技术相对复杂,但是用户端的操作是十分简单方便的。

总结

想要快速实现直播能力,并对原有业务不产生任何影响,依托如阿里云一样的直播平台,来搭建移动直播系统,将技术难题交给阿里云,把更多的精力放在核心业务的本身,是最为稳妥和高效的选择。

为了方便用户在接入前进行体验,阿里云也提供了产品DEMO,扫码下载推流、播放器和短视频等客户端SDK,有任何的想法和建议,欢迎你在云栖社区原文下方进行留言和互动。

想要业务咨询的用户,也可扫码加入钉钉群,与阿里云技术专家和产品经理面对面交流。
图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《云栖社区2017年度内容特辑》新鲜出炉!800+份大会PPT、20+技术专题、100+话题...快抱走!...

回首2017,云栖社区承载了太多的精彩内容,这一年大量的优秀团队入驻社区,600博主成为云栖专家,他们为读者奉献了无数精彩的内容——100W博文,300场直播,用户互动问答数超过6W;与此同时&#xff0…

K8S精华问答 | K8S 是什么?不是什么?

kubernetes,简称K8S,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应…

FaaS如何在云2.0时代发挥优势,又将走向何方?

摘要: 过去十年,云服务深刻地改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进。在基础设施云化之后,容器、Serverless等技术迅猛发展,开始推动业务能力的云化,云计算进入2.0时代。 点此查…

解锁新姿势 | 如何用配置中心实现全局动态流控?

摘要: 当资源成为瓶颈时,服务框架需要对消费者做限流,启动流控保护机制。流量控制有多种策略,比较常用的有:针对访问速率的静态流控、针对资源占用的动态流控、针对消费者并发连接数的连接控制和针对并行访问数的并发控…

53K!拿下阿里Python岗,这些技术点全考了!

Python又上热搜了!”,最近笔者在逛脉脉时,发现这样的一条信息:看完后,我相信大家和我一样,what,Python这么时候值钱了?本篇文章,我将帮大家搞定两大疑问:1. P…

用WEB技术栈开发NATIVE应用:WEEX SDK原理详解

摘要: WEEX依旧采取传统的web开发技术栈进行开发,同时app在终端的运行体验不输native app。其同时解决了开发效率、发版速度以及用户体验三个核心问题。那么WEEX是如何实现的?目前WEEX已经完全开源,并捐给Apache基金会&#xff0c…

什么是java枚举_什么是java枚举

什么是java枚举?java 枚举的定义与用法一、枚举的定义:枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁,安全性以及便捷性。…

基于阿里云Serverless架构下函数计算的最新应用场景详解(一)

摘要: Serverless概念是近年来特别火的一个技术概念,基于这种架构能构建出很多应用场景,适合各行各业,只要对轻计算、高弹性、无状态等场景有诉求的用户都可以通过本文来普及一些基础概念,看看这些场景是否对用户有一些…

浪潮云完成6亿元B轮融资,正推进上市;VMware收购AI初创公司Bitfusion;小爱同学App在苹果应用商店下架……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 华为Mate30 Lite贴膜曝光&am…

基于阿里云Serverless架构下函数计算的最新应用场景详解(二)

摘要: Serverless概念是近年来特别火的一个技术概念,基于这种架构能构建出很多应用场景,适合各行各业,只要对轻计算、高弹性、无状态等场景有诉求的用户都可以通过本文来普及一些基础概念,看看这些场景是否对用户有一些…

增长黑客系列:今天比昨天增长多少?快使用环比函数来分析日志

摘要: 增长黑客系列:今天比昨天增长多少?快使用环比函数来分析日志 在我们平时分析业务时,一个最重要的指标就是,今天比昨天增长多少,本周比上周增长多少;或者同上一个周期相比增长最大的分类是…

云计算将会让数据中心消失?

戳蓝字“CSDN云计算”关注我们哦!作者 | 王洪鹏出品 | CSDN云计算(ID:CSDNcould)近年来企业应用云化明显,越来越多的企业开始将自己的公司业务转移到云平台之上,可能是迁到公有云,也可能是私有云…

巧用 Img / JavaScript 采集页面数据

摘要: 当我们有一个新内容时(例如新功能、新活动、新游戏、新文章),作为运营人员总是迫不及待地希望能尽快传达到用户,因为这是获取用户的第一步、也是最重要的一步。 点此查看原文:http://click.aliyun.com/m/40929/…

时间序列数据的存储和计算 - 开源时序数据库解析

摘要: Prometheus 开源时序数据库解析的系列文章在之前已经完成了几篇,对比分析了Hbase系的OpenTSDB、Cassandra系的KairosDB、BlueFlood及Heroic,最后是tsdb ranking top 1的InfluxDB。 点此查看原文:http://click.aliyun.com/m/…

flowable modler为任务节点增加自定义属性

如何在modler设计器中为任务节点,添加自定义的属性。 文章目录1、modler设计器中所有元素的定义2、flowable如何处理stencilset_bpmn.json文件3、为UserTask任务节点添加一个扩展属性3.1. 添加属性的名称3.2. 为任务节点添加扩展属性3.3. 查看效果1、modler设计器中…

微软对OpenAI投资10亿美元欲开发AI技术;华晨宝马宣布建成全球首个5G汽车生产基地;传苹果将收购英特尔调制解调器芯片业务...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 索尼Xperia 1R信息曝光&…

java se 与j2se_javaSE和 j2SE的区别?

javaSE和 j2SE的区别?关注:71 答案:4 mip版解决时间 2021-01-28 18:29提问者耍硪ミ倪配么2021-01-27 20:19javaSE和 j2SE的区别?最佳答案二级知识专家自然卷的气质2021-01-27 21:53JavaEE 比 se多了许多包,用于开发大规模的,分布式的Java应用/服务器…

[高速通道进阶一]如何理解高速通道的就近接入和一点接入连接全球

摘要: 经常有用户问,我在上海有个IDC,在北京有个VPC,我想通过专线把IDC和VPC连接起来,我是不是要找运营商直接拉一根上海到北京的专线?其实不是这样的,用户只需要接入到最近的接入点即可。高速通…

Flowable决策任务(decision task)

摘要:Flowable中引入了一个decision task(我们可以将其称之为决策任务)。在讲解decision task之前,我们不妨看一下dmn引擎。因为如果大家不了解dmn,那肯定不知道如何使用decision task了。 dmn是decision Modeling Not…

5G精华问答 | 5G技术已经成熟了吗?

1G时我们用手机打电话,2G时我们能互发短信、看文字信息,3G时上网看图片,而4G时我们看视频和直播,从1G到4G,不仅信号越来越好,安全性越来越高,上网也越来越快了。1Q:5G技术已经成熟了…