8

使用 Serverless 云函数为 TRTC 输入在线媒体流

 2 years ago
source link: https://serverlesscloud.cn/best-practice/2021-05-10-trtc
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
发布于: 2021-5-10
归档于:

标签:Serverless云函数

Serverless 云函数具有一键触发、免运维、弹性伸缩等特性,TRTC 实时音视频通过接入云函数的服务可以快速支撑实时互动娱乐社交应用的构建,降低延迟的同时降低存储成本。并且云函数的可编程性,可以快速整合其他云服务及三方服务,扩展业务边界,高效创新玩法。

01. 应用场景

AI 互动课堂

通过录播真人教学视频结合 AI 技术进行线上直播互动教学。

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

“一起看” 房间服务

  • 游戏直播、秀场、体育赛事等直播类内容,可以通过云函数将 RTMP 直播流推送到 TRTC 房间,实时交流,带动热点。
  • 电影、音乐等点播类节目,可以通过云函数将媒体文件转换为在线媒体流输入至 TRTC 房间,增值服务,打造社区圈层。

02. 操作场景

将已有的录播视频或者 RTMP 直播流推送到实时音视频 TRTC 房间进行直播。如您需开启推流直播的实时记录,可以选择使用 Redis,API 网关会将进度实时写入 Redis。工作流程如下图所示:

5235c29b6e52833ab7531436c38d39b0.png

API 网关调用涉及的参数如下:

88129f66a09f0dfa168fb7428d49f301.png
  • 如果 redis 值为 false,从 videoSrc 视频源拉流进行直播推流,直播流将从最新开始。
  • 如果 redis 值为 true,对于同一个 videoSrc 视频源,API 网关将先在 redis 中查询是否有上一次直播流推流记录:
  • 若存在记录,则恢复上一次推流。
  • 若无记录,则重新开始推流。直播推流进度通过回调实时写入 redis。

03. 操作步骤

1. 创建云函数

1.1 登录云函数控制台,选择左侧导航栏中的「函数服务」,单击「新建」进入新建函数页面,根据页面相关信息提示进行配置。如下图所示:

5867086695b23d1eb04ff417cf1379b2.png
  • 创建方式:选择「模板创建」。
  • 模糊搜索:输入「TRTC 直播推流」,并进行搜索。单击模板中的「查看详情」,即可在弹出的「模板详情」窗口中查看相关信息,支持下载操作。

    1.2 单击「下一步」,根据页面相关信息提示进行配置。如下图所示:

7e9503bedfcf980cde8fa7c6c98187cc.png
  • 函数名称:默认填充。
  • 异步执行:勾选以开启。开启后,函数将以异步执行模式响应事件,事件调用无需阻塞等待处理结果,事件将在被调用后进入异步执行状态。
  • 状态追踪:勾选以开启。开启后,针对异步执行的事件,将开始记录响应事件的实时状态,并提供事件的统计、查询及终止服务,产生的事件状态数据将为您保留 3 天。
  • 执行超时时间:可根据需要自行修改。

    1.3 配置 API 网关触发器,默认新建 API 服务,不开启集成响应。您也可以选择自定义创建,自定义创建时确保集成响应关闭,单击「完成」即可完成函数创建和 API 网关触发器创建。如下图所示:

ed1163b95909fc273af758363a076fb8.png

1.4 如需使用 Redis 实时记录推流进度,由于 Redis 只能私有网络访问,因此必须将云函数的 VPC 配置在与 Redis 在同一个私有网络下。如下图所示:

8a314811f27f3b7548572a74b974392a.png

2. 创建 TRTC 应用

2.1 登录实时音视频控制台,选择左侧导航栏中的「开发辅助」-->「快速跑通 Demo」。

2.2 填写 Demo 名称,单击「创建」完成应用创建。您可以根据自己的客户端选择模板试运行。

20b024120108f802d588afee2ab6c5c4.png

3. 测试函数功能

3.1 使用 Postman 构造 HTTP 请求。如下图所示:

9ec1861dc06c7077ce59c5bc104a25da.png

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

8013e07d58964e049b54f6cd8428b7d2.png

3.3 在云函数控制台「函数服务」页面中,点击上述 「1. 创建云函数」步骤中创建的云函数名称,进入「函数详情」页,查看到打印出的推流日志信息。如下图所示:

50e01882397991704becba3867768021.png

3.4 切换至实时音视频控制台,在「监控仪表盘」页面单击房间 ID,查看推流监控详情信息。如下图所示:

7be315bd695e50a90989e294ab4f963f.png

3.5 如需在推流过程中停止推流,可以调用终止异步函数接口 InvokeRequestId 参数停止推流(必须开启状态追踪)。其中 InvokeRequestId 可从上述「2. 创建 TRTC 应用」的响应头部信息 x-scf-reqid 中获取。

05.「页面录制」内测申请

《使⽤ Serverless 云函数和 Headless Chrome 进行实时渲染录制合流》一文中和大家讲述了在线教育场景中的录制需求痛点,并推出全新解决方案: Headless Chrome 页面录制。⽬前已经有内部团队在使⽤,如果您也想参与此⽅案的测试,点此完成内测表单填写,我们将在 1-3 个工作日与联系,感谢您的关注与支持。


传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK