可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
我们先从普通的直播模式说起,目前常规的直播遵循如下图所示的模式:主播端(TXLivePusher)将音视频数据推送给云服务器,多个观众端(TXLivePlayer)就可以从云端拉流并播放音视频数据。
既然要做连麦,那么反向的一条线路就必不可少,我们这里做个假设,观众 A 从原来的普通观众变成了小主播,那么下图中就多出了一条直播流(图中红色虚线所示):
腾讯云 RTMP 直播支持跨房间连麦互动,所以小主播(们)可以是原房间里的普通观众,也可以是另一直播间里的其他主播。
从“单向”到“多向”,这看似很简单,而且直接用 RTMP SDK 按这个思路也是可以实现的。但效果却很难达到商用的要求,因为有两个难题需要我们去解决:
我们先看看怎么解决延迟问题,要解决延迟,先要弄明白延迟是怎么来的?
上图中红色标记的三处是整条链路的主要延迟来源,一场延迟大约 3 秒的直播中,以上三个模块“贡献”了 80% 的力量。
如果要做双向的语音通讯,回音消除是不可或缺的,我们从 RTMP SDK 1.8.2 开始,在 iOS 和 Android 两个平台引入了回音消除模块,从而避免主播在手机的喇叭里听到 1 秒前自己说话的声音。
从上图可以看出,AEC 模块是躲在 RTMP SDK 里面的,所以在使用上您不需要额外的编程。
腾讯云有两种技术可以实现混流:客户端混流和服务端混流。
由于观众端的表现由 App 自行控制,能够支持更灵活的界面排布 | 下行数据是多路,所以带宽消耗要高于服务端混流。 | |
下行数据只有一路,所以对于高并发的直播场景,能有效降低带宽消耗。 | 目前最多支持 1v3 混流。 | 需要调用混流 CGI 并正确设置混流参数 |
文档是否有帮助解决问题?
您已提交过反馈,无需再次提交
反馈收到,动动手指,帮我们明确下问题点
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
如果有其他疑问,你也可以通过提问形式与我们联系探讨
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
火星直播就是啊。这个很合规,里面好几个主播唱功都还可以,自己已经关注了好几个主播了,闲暇的时候就喜欢听他们唱唱歌。
大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等,汇集了当前IT领域热门流行的IT技术。
想要学好大数据需掌握以下技术:
Java编程技术是大数据学习的基础,Java是一种强类型语言,拥有极高的跨平台能力,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,是大数据工程师最喜欢的编程工具,因此,想学好大数据,掌握Java基础是必不可少的!
对于大数据开发通常是在Linux环境下进行的,相比Linux操作系统,Windows操作系统是封闭的操作系统,开源的大数据软件很受限制,因此,想从事大数据开发相关工作,还需掌握Linux基础操作命令。
Hadoop是大数据开发的重要框架,其核心是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算,因此,需要重点掌握,除此之外,还需要掌握Hadoop集群、Hadoop集群管理、YARN以及Hadoop高级管理等相关技术与操作!
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行,十分适合数据仓库的统计分析。对于Hive需掌握其安装、应用及高级操作等。
Avro与Protobuf均是数据序列化系统,可以提供丰富的数据结构类型,十分适合做数据存储,还可进行不同语言之间相互通信的数据交换格式,学习大数据,需掌握其具体用法。
ZooKeeper是Hadoop和Hbase的重要组件,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组件服务等,在大数据开发中要掌握ZooKeeper的常用命令及功能的实现方法。
HBase是一个分布式的、面向列的开源数据库,它不同于一般的关系数据库,更适合于非结构化数据存储的数据库,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,大数据开发需掌握HBase基础知识、应用、架构以及高级用法等。
API操作HBase的开源SQL引擎,其具有动态列、散列加载、查询服务器、追踪、事务、用户自定义函数、二级索引、命名空间映射、数据收集、行时间戳列、分页查询、跳跃查询、视图以及多租户的特性,大数据开发需掌握其原理和使用方法。
Redis是一个key-value存储系统,其出现很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用,它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便,大数据开发需掌握Redis的安装、配置及相关使用方法。
Flume是一款高可用、高可靠、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。大数据开发需掌握其安装、配置以及相关使用方法。
SSM框架是由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。大数据开发需分别掌握Spring、SpringMVC、MyBatis三种框架的同时,再使用SSM进行整合操作。
Kafka是一种高吞吐量的分布式发布订阅消息系统,其在大数据开发应用上的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。大数据开发需掌握Kafka架构原理及各组件的作用和使用方法及相关功能的实现!
Scala是一门多范式的编程语言,大数据开发重要框架Spark是采用Scala语言设计的,想要学好Spark框架,拥有Scala基础是必不可少的,因此,大数据开发需掌握Scala编程基础知识!
Spark是专为大规模数据处理而设计的快速通用的计算引擎,其提供了一个全面、统一的框架用于管理各种不同性质的数据集和数据源的大数据处理的需求,大数据开发需掌握Spark基础、SparkJob、Spark
Azkaban是一个批量工作流任务调度器,可用于在一个工作流内以一个特定的顺序运行一组工作和流程,可以利用Azkaban来完成大数据的任务调度,大数据开发需掌握Azkaban的相关配置及语法规则。
Python是面向对象的编程语言,拥有丰富的库,使用简单,应用广泛,在大数据领域也有所应用,主要可用于数据采集、数据分析以及数据可视化等,因此,大数据开发需学习一定的Python知识。
只有完整的学完以上技术,才能算得上大数据开发人才,真正从事大数据开发相关工作,工作才更有底气,升职加薪不成问题!