上云无忧 > 文档中心 > 腾讯云云函数实战教程 - SCF + TRTC 输入在线媒体流
云函数 SCF
腾讯云云函数实战教程 - SCF + TRTC 输入在线媒体流

文档简介:
案例: AI 互动课堂: 通过录播真人教学视频结合 AI 技术进行线上直播互动教学。 上课前,根据教师的课程设置,将知识点讲解、互动提问、问题反馈和解答等信息录制成视频片段,上传到视频库。课堂中,通过云函数将已有的录播视频推送到 TRTC 房间进行直播。学生通过语音、触屏实现互动式学习。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

使用场景

案例

AI 互动课堂

通过录播真人教学视频结合 AI 技术进行线上直播互动教学。
上课前,根据教师的课程设置,将知识点讲解、互动提问、问题反馈和解答等信息录制成视频片段,上传到视频库。课堂中,通过云函数将已有的录播视频推送到 TRTC 房间进行直播。学生通过语音、触屏实现互动式学习。服务端通过 AI 技术,智能识别学生的实时语音和作答,并根据学生的表现,无缝切换教学片段,实时给予不同的反馈,从而提供个性化的教学体验。

“一起看”房间服务

游戏直播、秀场、体育赛事等直播类内容,可以通过云函数将 RTMP 直播流推送到 TRTC 房间,实时交流,带动热点。电影、音乐等点播类节目,可以通过云函数将媒体文件转换为在线媒体流输入至TRTC房间,增值服务,打造社区圈层。云函数一键触发、免运维、弹性伸缩等特性可以快速支撑实时互动娱乐社交应用的构建。云函数的可编程性,可以快速整合其他云服务及三方服务,扩展业务边界,高效创新玩法。

业务流程

本文为您介绍如何 使用 API 网关集成云函数,将已有的录播视频或者 RTMP 直播流推送到实时音视频 TRTC 房间进行直播,提供开箱即用、灵活便捷、可编程的在线媒体流输入能力。如您需开启推流直播的实时记录,可以选择使用 Redis,API 网关会将进度实时写入 Redis。工作流程如下图所示:

API 网关调用涉及的参数如下:
参数名称
类型
必选
描述
VideoSrc
String
被推流的视频源,例如 https://test-123456789.cos.ap-shanghai.myqcloud.com/video/1.mp4
SdkAppId
Int
应用 ID,用于区分不同 TRTC 应用。
RoomId
Int
整型房间号 ID,用于在一个 TRTC 应用中唯一标识一个房间。
StrRoomId
String
字符串房间号 ID,RoomId 与 StrRoomId 必须配置一项,如果 RoomId 与 StrRoomId 同时配置,则使用 RoomId。
Mode
String
vod:点播模式,即推流为某个录制好的文件,默认模式。
live:直播模式,即推流为 rtmp 直播源。
UserId
String
推流用户 ID,用于在一个 TRTC 应用中唯一标识一个用户。
UserSig
String
推流用户签名,用于对一个用户进行登录鉴权认证。
Redis
Boolean
是否使用 Redis,默认为 false。
RedisHost
String
Redis 为 true 时,redis 的 host 地址。
RedisPort
Integer
Redis 为 true 时,redis 的访问端口号。
RedisPassword
String
Redis 为 true 时,redis 的访问密码。
说明
如果 Redis 值为 false,从 VideoSrc 视频源拉流进行直播推流,直播流将从最新开始。
如果 Redis 值为 true,对于同一个 VideoSrc 视频源,API 网关将先在 Redis 中查询是否有上一次直播流推流记录:
若存在记录,则恢复上一次推流。
若无记录,则重新开始推流。直播推流进度通过回调实时写入 Redis。

操作步骤

创建云函数

1. 登录 Serverless 控制台,进入函数服务页面。
2. 在“函数服务”页面上方选择北京地域,并单击新建进入新建函数页面,根据页面相关信息提示进行配置。如下图所示:

创建方式:选择模板创建
模糊搜索:输入“TRTC直播推流”,并进行搜索。 单击模板中的查看详情,即可在弹出的“模板详情”窗口中查看相关信息,支持下载操作。
3. 单击下一步,根据页面相关信息提示进行配置。如下图所示:

函数名称:默认填充。
异步执行:勾选以开启。开启后,函数将以异步执行模式响应事件,事件调用无需阻塞等待处理结果,事件将在被调用后进入异步执行状态。
状态追踪:勾选以开启。开启后,针对异步执行的事件,将开始记录响应事件的实时状态,并提供事件的统计、查询及终止服务,产生的事件状态数据将为您保留3天。
执行超时时间:可根据需要自行修改。
4. 配置 API 网关触发器,默认新建 API 服务,不开启集成响应。您也可以选择自定义创建,自定义创建时确保集成响应关闭。如下图所示:

5. 单击完成即可完成函数创建和 API 网关触发器创建。
6. 如需使用 Redis 实时记录推流进度,由于 Redis 只能私有网络访问,因此必须将云函数的 VPC 配置在与 Redis 在同一个私有网络下。如下图所示:

创建 TRTC 应用

1. 登录实时音视频控制台,选择左侧导航栏中的开发辅助 > 快速跑通 Demo
2. 填写 Demo 名称,单击创建完成应用创建。您可以根据自己的客户端选择模板试运行。

测试函数功能

1. 使用 Postman 构造 HTTP 请求。示例如下:

		
{
"SdkAppId": 1400000000,
"StrRoomId": "98915abc",
"UserId": "user_55952144",
"Mode": "vod",

"UserSig": "eJwtzN0KgkAQBeB32dtCZqcd-6CbMMRYIrGiu6jcZAhL1Nogev

dMvxxxxxxxxxxxxxxxxxAIdENM*c27uLV*552dj6iNRQCiVGgdNfjtVFecilApABS

g9OTTmXXFtOiciBIBBWy7xxxxxxxxRHbbjo-kFrN0UvOfuRH1tMyiDeLGcPu7ocxxxxxxxxxxx5uL7A0DEMb8_",

"Redis": false,
"VideoSrc": "https://test-123456789.cos.ap-shanghai.myqcloud.com/video/1.mp4"
}

如下图所示:

2. 请求发送后会收到异步函数响应 “Async run task submitted”,此次函数的 RequstId 会通过 HTTP 头部信息中的 x-scf-reqid 返回。如下图所示:

3. 在云函数控制台 函数服务页面中,单击上述 创建云函数 步骤中创建的云函数名称,进入“函数详情”页面。
4. 在“函数详情”页面中选择日志查询页签,可以查看到打印出的推流日志信息。
5. 切换至 实时音视频控制台,在“监控仪表盘”页面单击房间 ID,查看推流监控详情信息。如下图所示:

6. 如需在推流过程中停止推流,可以调用 终止异步函数接口 InvokeRequestId 参数停止推流(必须开启状态追踪)。 其中 InvokeRequestId 可从上述步骤2的响应头部信息 x-scf-reqid 中获取。
相似文档
  • 案例: 在线教育: 在一对一或一对多的小班课中,可以针对不同学生多维度进行录制: 对于单一学生,可以录制学生的单独数据流合成相关数据,实现记录每个学生的精彩瞬间并推送给家长。 对房间内数据进行定向录制,并生成回放,学生可以观看回放重复进行学习。 为了方便用户反复观看视频、重复学习,录制的过程可以去除冗余数据。
  • 案例: 在线教育: 在线教育的场景中,可以实现在上课的过程中将老师的音视频和学生的音视频进行合成录制,并且加入上课过程中的其他素材与人工智能分析,在真实还原上课场景的同时增加一些业务功能,增加回放视频观看效果。
  • 操作场景: 在视频、社交应用等场景下,用户上传的图片、音视频的总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。而上传的视频短片,可对应不同的清晰度使用多个云函数对其分别处理,以满足不同场景下用户的需求,同时适应移动网络带宽较小且不稳定的特性。
  • 操作场景: 在本文档示例中,我们用到了云函数 SCF、对象存储 COS、云数据库 MySQL。其中,COS 用来存储需要分析的日志文件,SCF 实现从 COS 下载日志文件并进行统计分析,把分析的结果写入到 MySQL 数据库中。
  • 实现场景: 注意: 1. 必须使用两个 COS Bucket。如果使用同一个存储桶作为源和目标,上传到源存储桶的每个缩略图都会触发另一个对象并创建事件,该事件将再次调用函数,从而产生无限的循环。 2. 请保证函数和 COS Bucket 位于同一个地域下。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部