娱乐社交行业连麦直播的实现方案

简介: 如何结合阿里云的音视频通信服务和直播服务实现连麦直播。

随着娱乐直播行业的发展,平台玩法越来越多。其中秀场连麦直播玩法人气较高,一方面改变了主播与观众对立的体验,另一方面拉近了主播与观众的距离,对于拉动主播收入平台营收起到了十分重要的作用。在此衍生出来的如PK,付费问答,语音连麦等玩法成为各大直播平台的标配。
本篇文章将介绍如何结合阿里云的音视频通信服务和直播服务实现连麦直播。

方案前提

  1. 已经开通了阿里云的直播服务并且配置了直播域名,可以完成基础的rtmp直播功能
  2. 已经开通了阿里云的音视频通信服务,可以完成多个用户的音视频通话

业务流程

下图所展示的基于音视频通信 RTC 和直播服务实现一次连麦直播的调用流程,其中灰色部分为您的自建开发程序或AppServer服务,橙色是阿里云的音视频通信 RTC 和直播服务。

image.png

  1. 主播调用RTC接口加入频道
  2. AppServer调用旁路直播接口进行直播
  3. 观众调用RTC接口加入和主播同一个频道

使用步骤

如何进行主播、观众加入RTC频道,直播如何生成直播地址已经方案前提里已经说明了,本章节就不会说明这两个环节的实现方法。主要描述旁路直播相关功能的实现

  1. 主播加入RTC频道12345后,AppServer按照直播地址的生成方法生成一个直播地址,比如:rtmp://push.rtctest.cn/12345/12345?auth_key=1577967820-0-0-f9a7e4a47feddbe7bc343cbfb559d552
  2. AppServer调用StartMPUTask接口配置RTC的旁路直播参数:https://help.aliyun.com/document_detail/93183.html?spm=a2c4g.11186623.6.628.497b5eaabJ9t0T
    示例代码如下:
from aliyunsdkcore.client import AcsClient
from aliyunsdkrtc.request.v20180111 import StartMPUTaskRequest
import aliyunsdkcore.request as rtc_request
import aliyunsdkcore.http.protocol_type as rtc_protocol_type

accessKeyID = 'xxx'
accessKeySecret = 'xxx'
region_id = 'cn-hangzhou'
app_id = 'xxx'
channel_id = '12345'

def StartMPU(client):
    request = StartMPUTaskRequest.StartMPUTaskRequest()
    request.set_AppId(app_id)
    request.set_ChannelId(channel_id)
    request.set_TaskId('abc')
    request.set_TaskProfile('2IN_720P')
    request.set_MediaEncode(1)
    request.set_BackgroundColor(0)
    LayoutIds = []
    LayoutIds.append(1)
    LayoutIds.append(2)
    request.set_LayoutIdss(LayoutIds)
    request.set_StreamURL('rtmp://push.rtctest.cn/1/1?auth_key=1577967820-0-0-f9a7e4a47feddbe7bc343cbfb559d552')
    rtc_request.set_default_protocol_type(rtc_protocol_type.HTTP)
    response = client.do_action_with_exception(request)
    return response

client = AcsClient(accessKeyID, accessKeySecret, region_id)

print StartMPU
  1. 观看直播的观众通过直播的播流地址观看主播的直播:rtmp://play.rtctest.cn/12345/12345?auth_key=1577967820-0-0-f9a7e4a47feddbe7bc343cbfb559d552
    |center|250x200
  2. 连麦观众也加入RTC频道12345
  3. 此时直播观众看到的画面就是主播和连麦观众两个人的直播内容了
    |center|250x200

注意事项

  1. 主播和连麦的观众必须加入同一个RTC频道
  2. 同一个StreamURL(直播推流地址)无法在不同的旁路直播任务中同时使用
  3. 旁路直播任务停止10S之内,无法使用同一个StreamURL(直播推流地址)再开始新的任务
目录
相关文章
|
存储 XML NoSQL
KV 存储那些事儿
开发中,我们总会需要存储些 KV 数据,虽然看上去简单,但考虑因素也是很多的,实现手段也就各有差异。今天,我们就来看看 Android 目前有哪些 KV 库可以供我们使用,以及其有哪些优缺点。
590 0
|
缓存 Java
认真阅读完这篇文章熟练掌握阿里巴巴规范创建Java线程池
认真阅读完这篇文章熟练掌握阿里巴巴规范创建Java线程池
967 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
272 10
AI Compass前沿速览:IndexTTS2–B站、HuMo、Stand-In视觉生成框架、Youtu-GraphRAG、MobileLLM-R1–Meta、PP-OCRv5
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
VideoGrain:零样本多粒度视频编辑神器,用AI完成换装改场景,精准控制每一帧!
VideoGrain 是悉尼科技大学和浙江大学推出的零样本多粒度视频编辑框架,基于调节时空交叉注意力和自注意力机制,实现类别级、实例级和部件级的精细视频修改,保持时间一致性,显著优于现有方法。
297 0
VideoGrain:零样本多粒度视频编辑神器,用AI完成换装改场景,精准控制每一帧!
|
Linux
网络IO管理
网络IO管理
654 0
|
编解码 Linux iOS开发
OBS使用
OBS使用
U盘复制文件到最后5秒会卡住怎么办解决
现在的U盘容量已经非常大了,一般都有16G以上,为了能放单文件大于4G的数据大多数时候我们都是把U盘格式化为ntfs格式的,所以会出现不管是大文件还是小文件,当你往U盘里复制文件或者使用发送到U盘功能的时候会出现一个怪现象,那就是不管U盘速度如何,都会在前部分拷贝的时候速度非常快,基本上达到U盘的正常速度,但当到达100%的时候就会卡住好久,短的5秒,慢的几分钟才会显示复制完成。
8361 0
|
JavaScript 前端开发 Java
继 CJS、AMD 之后又来一个 UMD,究竟是什么?有什么用?
最近研究了一下 Vue 和 React 编译出来的版本文件,我发现 Vue 提供了 CommonJS|ES Module|ES Module browser|UMD 四种格式,而 React 提供 CommonJS|UMD 两个版本,对于 CommonJS|ES Module 对应的八股可以说是很多了,而里面夹杂的 UMD 又是什么东西呢?
|
运维 关系型数据库 Linux
常用的网站建站面板有哪些?网站运维面板汇总
常用的网站建站面板有哪些?网站运维面板汇总
常用的网站建站面板有哪些?网站运维面板汇总
|
监控 小程序 网络安全
Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信
短信服务验证服务已经不是什么新鲜事了,但是免费的手机短信服务却不多见,本次利用Python3.0基于Twilio和腾讯云服务分别来体验一下国际短信和国内短信接口。
Python3利用Twilio(国际)以及腾讯云服务(国内)免费发送手机短信