腾讯云(Tencent Cloud)是腾讯集团倾力打造的云计算品牌,提供全球领先的云计算和人工智能等技术产品与服务,推动产业互联网建设。实时音视频(Tencent RTC)基于腾讯多年来在网络与音视频技术上的深度积累,包含多人音视频通话和低延时互动直播两大场景化方案。
TUIkit 是腾讯云音视频团队在5000+客户的服务积累中,结合业内主流的音视频场景,提炼出的开源解决方案,包含视频通话组件、直播组件、视频房间组件等多个客户端音视频组件,可以帮助开发者快速搭建诸如通话、客服、直播、语聊、教育等场景解决方案。
TUIPusher&TUIPlayer是Web端开源的含UI 直播互动组件。TUIPusher TUIPlayer基于腾讯云和 即时通信IM两个PaaS 服务的基础 SDK,为企业直播、电商带货、行业培训、远程教学等多种直播场景提供快速上线 Web 端直播推拉流工具的解决方案,目前官网提供了在线体验TUIPusher和TUIPlayer的入口,可点击此处进入: TUIPusher体验链接及 TUIPlayer体验链接。

1. 功能体验

1.1 组件集成

当用户集成时 TUIPusher&TUIPlayer时,需要一些 sdk 认证,这部分是需要用户购买的。如果用户是首次体验,可以在实时音视频控制台创建应用的腾讯云账号,可获赠一个10000分钟的免费试用套餐包。免费试用包可用于抵扣视频通话、语音通话、视频互动直播、语音互动直播的服务用量。用户需要登陆腾讯云官网,通过实时音视频控制台,创建应用。
在这里插入图片描述

1.2 项目准备

  1. 在github下载TUIPusher&TUIPlayer代码;
  2. 为TUIPusher&TUIPlayer安装依赖:
cd Web/TUIPusher
npm install
cd Web/TUIPlayer
npm install
  1. 将sdkAppld和secretKey填入 TUIPusher/src/config/basic-info-config.js的配置文件中:

  2. 本地开发环境运行TUIPusher:

cd Web/TUIPusher
npm run serve  //开发环境运行
npm run build  //打包cd Web/TUIPlayer
npm run serve  //开发环境运行
npm run build  //打包
  1. 随后可打开http://localhost:8080体验TUIPusher&TUIPlayer功能。

1.3 TUIPusher功能介绍

1.3.1 创建直播间

TUIPusher用户登陆之后,通过输入直播间名称来创建直播间,直播间名称是直播间的标志。创建直播间后,即可生成房间相关的信息。

 createRoom() {    //创建房间this.$message.warning(this.$t('Enter a live room name'));}},generateRoomId() { //生成房间信息 const { data: { roomId } } = await generateRoomId({userId: this.userId, //用户ID,可以由您的帐号系统指定token: this.token, // 验证用户tokentitle: this.roomName,// 直播间名称,可进行修改});},enterRoom();//进入房间handleLogout();//退出登陆

1.3.2 进入直播间

当主播进入直播间后,首先需要进行直播间设置,包含是否开启摄像头、是否开启美颜和开启录制。另外,等同于TUIRoom及其他音视频和IM产品,包含设备选择:麦克风选择、扬声器选择、摄像头选择。

1.3.3 开始直播

主播进行设置后进入直播间,点击开始直播后,进入直播间;随即弹出发布流成功和成功推流到CDN的通知。主播点击暂停直播或者结束直播,来控制直播间状态。

1.3.4 开播设置

主播可以选择摄像头、麦克风及美颜设置,无论是直播是否开启都可以进行设置,不受直播状态的约束。另外,主播在视频设置里可以选择不同的视频参数,包括直播分辨率、帧率和码率。主播点击美颜设置中的开启美颜,即可根据自己的选择,拖动美颜、高光和红润,来选择不同的美颜参数。


 showDevicePresettingDialog() ,    // 显示设置预设置弹窗showBeautyPresettingDialog() ,    // 显示美颜预设置弹窗handleAudioSetting();    //麦克风设置handleVideoSetting();    //摄像头设置handleBeautySetting();   //美颜设置// 初始化美颜插件
const beautyPlugin = new RTCBeautyPlugin();
await localStream.initialize();
// 生成美颜处理后的流
const beautyStream = beautyPlugin.generateBeautyStream(localStream);
// 发布经过美颜后的流
await client.publish(beautyStream);

1.3.5 共享屏幕

当主播点击开始直播后,随即可以点击左侧共享屏幕按钮,根据弹出的屏幕共享选项,选择需要共享的屏幕及区域,或选择需要直播的窗口及Chrome标签页。

const userId = 'share_userId';//生成的用户ID
const roomId = 'roomId';//生成的房间ID
// 仅采集屏幕视频流
const shareStream = TRTC.createStream({ audio: false, screen: true, userId });
// 采集麦克风音频及屏幕视频流
const shareStream = TRTC.createStream({ audio: true, screen: true, userId });
// 采集系统音频及屏幕视频流
const shareStream = TRTC.createStream({ screenAudio: true, screen: true, userId });

1.4 TUIPlayer功能介绍

1.4.1 选择直播间

当主播在TUIPusher创建直播间之后,在TUIPlayer中,即可看到所创建的直播间,点击进入即可进入TUIPlayer的的拉流画面。

1.4.2 进入TUIPlayer

用户进入TUIPlayer观看端之后,可根据自己的需求选择不同的拉流线路,分别为超低延时直播, 快直播以及标准直播。在讨论区可与直播间其他用户进行文字或表情包交流。当主播在TUIPusher开始直播后,用户即可在TUIPlayer点击中心播放按钮,选择拉流方式,开始观看直播。

2. 体验分享

2.1 TUIPusher&TUIPlayer功能介绍

TUIPusher 推流组件功能:
● 支持采集麦克风和扬声器的流并推流可根据需求设置视频参数(帧率,分辨率,码率);
●支持开启美颜并设置视频美颜参数;
● 支持采集屏幕分享流并推流;
● 支持推流到腾讯云实时音视频后台,推流到腾讯云 CDN;
● 支持在线聊天室,和在线观众进行聊天互动;
● 支持获取观众列表,对在线观众进行禁言操作。
TUIPlayer 拉流组件功能:
● 支持同时播放音视频流和屏幕分享流;
● 支持在线聊天室,和主播及其他观众进行聊天互动;
● 支持超低延时直播(300ms 延时), 快直播(1000ms 以内延时)以及标准直播(支持超高并发观看)三种拉流线路;
● 兼容桌面浏览器及移动端浏览器,支持移动端浏览器横屏观看。

2.2 详细业务流程

TUIPusher&TUIPlayer的详细业务流程可参考下图:

TUIPusher&TUIPlayer提供了快速集成腾讯云实时音视频 TRTC 及 腾讯云即时通讯 IM 用于直播场景的解决方案。在推拉流 UI 组件的基础上,用户可以结合用户管理系统及房间管理系统完善业务链路,增加点赞,口令红包,答题抽奖等个性化功能丰富业务场景。例如用户需要直播带货,即可增加直播商城功能,来实现直播销售的目的,等等类似功能用户可根据自己的需求进行实现。

2.3 特色功能

2.3.1 跨房连麦

在直播场景中,常常需要跨房连麦来支持不同直播间的主播实时互动的需求,因此 Web 端跨房间连麦及混流后推流到CDN 的实现,具体实现方式请参考:云端跨房连麦。

2.3.2 云端混流

Web SDK 提供client.startMixTranscode接口开启云端混流。当调用 startMixTranscode 接口发起混流转码时,SDK 会向腾讯云的转码服务器发送一条指令,目的是将房间里的多路音视频流混合为一路。开发者可以通过 config.mixUsers 来调整每一路混入流的参数,也可以通过 config.videoWidth、config.videoHeight、config.videoBitrate 等属性控制混合后音视频流的编码值。云端混流方式请参考:云端混流。

2.3.3 云端录制

在远程教育、秀场直播、视频会议、远程定损、金融双录、在线医疗等应用场景中,考虑取证、质检、审核、存档和回放等需求,常需要将整个视频通话或互动直播过程录制和存储下来。TRTC 的云端录制,可以将房间中的每一个用户的音视频流都录制成一个独立的文件:实现方式可参考,云端录制。

2.3.4 语音识别

目前有部分用户接入 TRTC(Tencent RTC)服务后,会有一些实时字幕、会议文字纪要的需求。本文档帮助 web 端用户在已经接入 TRTC 服务后,更方便的快速接入 ASR,完成语音转文字的需求。实现方式可参考,语音识别。

2.3.5 拉流路线

在TUIPlayer中,拉流的方式也是比较有特点的地方,超低延时直播(300ms 延时), 快直播(1000ms 以内延时)以及标准直播(支持超高并发观看)三种拉流线路可以保证用户在观看直播时,根据自己的情况选择合适的拉流路线。
超低延时直播和快直播是标准直播在超低延时播放场景下的延伸,比传统直播协议延时更低,为观众提供毫秒级的极致直播观看体验。 能够满足一些对延时性能要求更高的特定场景需求,例如在线教育、体育赛事直播、在线答题等。标准直播目前使用的是常见的 RTMP、FLV、HLS 等格式的播放协议,而这些播放协议的共同点就是它们都基于 TCP 协议实现,TCP 有延迟确认和捎带应答,例如接收到数据后不会立即对每个数据响应 ACK,而是攒一定的数据量才会响应,这就会带来延迟的感知,在弱网场景下,这甚至会导致几秒钟或几十秒钟的延迟。因此,超低延时直播和快直播的观看直播体验感是优于标准直播的。

2.4 集成感悟

TUIPusher 及 TUIPlayer UI 组件为用户提供了快速集成TRTC 及 IM 用于直播场景的解决方案。 对于TUIPusher 及 TUIPlayer UI的集成感受,整体体验与市面上的直播app功能或有相似之处,不仅包括直播,主播、观众等常见直播软件通用功能,另外还包括美颜、屏幕共享、推拉流等特色功能。而目前直播软件所存在的最大问题在于企业直播、拍卖直播、电商带货、知识传播、远程教学等直播场景中,如果主播、观众需要另外下载客户端,会因为繁琐而流失一部分用户;此外,移动端直播由于潜在的网络波动影响,隐藏着比较大的风险。
TUIPusher可通过采集麦克风和扬声器的流,根据用户的不同需求设置帧率、分辨率、码率等参数,并且可以推流到推流到腾讯云 CDN,可以在腾讯云实时音视频后台实时监测;TUIPlayer的特点是不仅同时可以播放视频流和屏幕分享流,最重要的是支持三种不同的拉流方式,分别以超低延时、快直播以及支持超高并发的标准直播,解决直播潜在的网络波动等风险,用户可以根据自己的需求以及状况进行选择。
对于 TUIPusher和TUIPlayer的功能性存在的不足,包括支持聊天内容的方式较简单,目前仅支持文字和表情,对于发送图片等聊天方式暂不支持。目前直播间的具体功能多样化实现较为简单,仅确保直播的基础功能实现,今后可以在不同需求下,以及推拉流 UI 组件的基础上,用户可以自行结合用户管理系统及房间管理系统完善业务链路,增加点赞,在线商城,口令红包,答题抽奖等个性化功能丰富业务场景。

腾讯视频互动直播TUIPusherTUIPlayer集成体验相关推荐

  1. 腾讯云互动直播SDK集成综述

    SDK构成 互动直播SDK由两部分构成,IMSDK和AVSDK 其中IMSDK为云通信SDK,为AVSDK提供账号登录.信令通道.IM弹幕消息.日志模块.日志上报等功能 AVSDK提供摄像头采集.编码 ...

  2. ​周锦民:腾讯在线教育视频互动直播间技术实践

    本文来自腾讯云技术沙龙,本次沙龙主题为在线教育个性化教学技术实践 演讲嘉宾:周锦民 | 2011年毕业进入腾讯, 现任在线教育部在线教育后台中心高级工程师,多年linux后台开发工作经验,目前主要负责 ...

  3. 腾讯互动直播php,【模块教程】腾讯云视频互动直播(tencentTrtcLiveRoom)教程

    ##**腾讯云视频互动直播** 腾讯云视频互动直播模块,提供互动直播的功能,包括直播.连麦PK.主播 PK.低延时观看.弹幕聊天等在互动直播场景下的相关能力. ##**技术支持** 原生模块本身使用复 ...

  4. 视频互动直播软件开发中的连麦问题分析

    直播行业发展至今,我们经常会听到很多朋友谈论"互动直播".那么何谓互动直播呢?其实互动直播的核心在于通过连麦技术,让视频直播有一个超过文字的更深层次的互动交流. 在视频互动直播软件 ...

  5. android 横屏直播界面,Android安卓腾讯云互动直播随心播横屏的实现方式1.8.2

    研究过腾讯云互动直播的人,估计很心烦,这能横屏吗?官方说:暂时不支持.二线客户说,有人做出来了.但是 这东西到底怎么横屏呢? 鉴于笔者研究了一天时间,终于做出来了,发表一片博客,为在腾讯云中爬坑的人垫 ...

  6. qq互动视频页面加载失败_腾讯视频互动视频 | 创作指南

    # 腾讯视频互动视频 | 创作指南 互动视频是传统影视的一种新的表现形式,它可以是综艺.电视剧.电影.动漫等等,也可以是小视频.短视频,旨在通过多样的互动形态和互动表现手法,增强观看者的代入感. 我们 ...

  7. 网易云信联手LOOK直播,互动直播提升音乐人体验

    说起音乐人,传统印象里可能是悠闲潇洒的民谣歌者,也可能是放荡不羁的摇滚乐手,他们有着对音乐的独特理解,但也有着理想照进现实的困顿.近几年,随着各类音视频平台的持续发展给了音乐人更多的曝光机会,而大众传 ...

  8. 视频互动直播软件开发中的连麦问题分析 1

    直播行业发展至今,我们经常会听到很多朋友谈论"互动直播".那么何谓互动直播呢?其实互动直播的核心在于通过连麦技术,让视频直播有一个超过文字的更深层次的互动交流. 在视频互动直播软件 ...

  9. 什么是视频互动直播,你会如何介绍

    视频互动直播,其实就是互动和直播结合起来的. 直播就像你们在电视上看新闻.看球赛一样的,但是电视上呢,是电视台放的节目,我们只能换台,你看的时候,觉得他好他听不到,觉得他不好他也听不到. 视频互动直播 ...

最新文章

  1. Java字节码浅析(—)
  2. mysql 日志文件mysql-bin文件清除方法,和mysql-bin相关文件的配置
  3. [云炬创业管理笔记]第四章把握创业机会测试3
  4. Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解
  5. jetty java 禁用目录列表_java – 如何禁用Jetty的WebAppContext目录列表?
  6. 【文末福利】元宇宙真的是人间天堂吗?元宇宙时代的5大风险
  7. ThinkPHP3.2 下载、导入、导出功能的设计与实现
  8. 上项线体表位置_心理成熟的人都有哪些具体表现呢?
  9. 2012年6月份第4周51Aspx源码发布详情
  10. linux 换行符 字节,linux的wc打印换行符,字和字节计数
  11. 共建信创生态,助力组织国产化进程
  12. 强化学习(RL)原理以及数学模型
  13. 台式计算机的打印机端口,打印机端口设置,高手教你如何搞定电脑打印机端口设置...
  14. 如何防止数据库的编码格式跟项目编码格式不一致产生乱码, 怎么让数据库的编码格式跟项目编码格式保持一致
  15. c语言面试(c语言面试基础知识)
  16. 使用云祺虚拟机备份软件备份H3C CAS 虚拟机
  17. 什么是ASCII码?
  18. mysql mybatis 不等于号写法
  19. 大数据_01【介绍】
  20. 我能想到最快乐的事,就是把所有异性都处成朋友

热门文章

  1. 用几何画板画七边形的方法
  2. Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了
  3. 所谓“尽人事,听天命”
  4. 不对工整型左右手节奏如何弹奏,如4对3,3对4。
  5. 禅意花园-WEB设计优秀的参考网站
  6. flac3d6.0教程 附安装教程
  7. 网页内容高度不够时,让footer处于页面底部的方法(不是固定在底部)
  8. 科学:只要国家做媒撮合他们俩,我国科技发展必定如虎添翼,赶英超美!
  9. 【计算机网络】思科实验(9):动态路由协议RIPv2
  10. linux系统下,利用appnode和kodexplorer搭建一个私有网盘