该文档只是测试demo,简单测试trtc房间推流,让读者有个大致直观的了解。需要开通腾讯云的trtc和scf产品。
1. 先使用trtc的快速demo运行一个测试房间
2. 然后利用scf的函数模板,给trtc直播房间推流。
创建TRTC
TRTC产品
产品简介:腾讯实时音视频(Tencent Real-Time Communication,TRTC),参考:https://cloud.tencent.com/document/product/647/16788
应用场景:音视频直播等,参考:https://cloud.tencent.com/document/product/647/46252
创建TRTC应用
控制台创建trtc应用参考:https://cloud.tencent.com/document/product/647/50493
这里以williamji名称为例,创建好之后,在“实时音视频”->“应用管理”可以看到创建的应用
快速测试demo
创建好之后使用demo支持的平台以及开发语言参考https://cloud.tencent.com/document/product/647/32398
这里以web为例。具体开发场景根据业务需要选择
- 点击“实时音视频”→“开发辅助”-“快速跑通Demo”,然后应用类型“选择已有应用”,并选择自己创建的trtc应用(当然也可以在界面选择“新建应用”),点击下一步
- 选择平台或者开发语言,这里选择web,到github上把对应的源码下载下来
- 然后根据选择找到对应的提示信息,修改代码中的SDKAppID和秘钥。web支持多种框架,这里以jQuery JavaScript为例,需要修改
TRTC_Web/base-js/js/debug/GenerateTestUserSig.js
的配置
- 修改好配置之后,然后直接在浏览器上打开TRTC_Web/base-js/index.html
- 打开html之后,有web房间的信息,需要输入用户名和房间ID即可创建房间,这里以用户名:williamji1,房间号:111为例
- 输入房间号和用户名之后,可以看到如下界面,这里会有一些摄像头,音频授权操作允许。可以看到房间里只有williamji1一个用户
生成UserSig
参考文档:https://cloud.tencent.com/document/product/647/50686
UserSig主要是给房间推流的时候需要。
- 在“实时音视频”→“开发辅助”->“UserSig生成&校验”界面选择应用,并输入一个用户名(注意这个用户名和web房间的用户名不一样)这里以williamji2为例,点击“生成签名”即可。
创建云函数
云函数产品
产品简介:腾讯云云函数(Serverless Cloud Function,SCF),参考:https://cloud.tencent.com/document/product/583/9199
应用场景:参考:https://cloud.tencent.com/document/product/583/30511
创建“TRTC直播推流”云函数
直播推流参考scf文档:https://cloud.tencent.com/document/product/583/55102
- 在“Serverless”→“函数服务”点击“新建”来新建函数
- 选择“模板创建”,然后搜索“TRTC直播推流”,点击下一步
- 之后需要配置函数的一些信息,在“基础配置”中自定义修改函数名称,以及执行超时时间,注意超时时间主要跟推流的视频长度有关,如果超时时间过短可能导致推流到房间中断。
- 在函数配置里配置运行内存,以及网络,注意配置内存过小可能导致函数oom,过大会费钱。网络配置,如果需要redis记录推流状态的话则云函数网络必须要和redis网络打通,reids和该函数需要配置同样的vpc和subnet。
- 触发器使用默认的apigw即可。
- 创建好函数后,可以在"Serverless"→“函数服务”查看函数
- 进入函数里可以在“函数管理”->“函数代码”中下载代码,该函数是java8开发的,然后以zip包上传。
- 在“触发管理”里可以查看apigw的触发器并进入到apigw服务。可以使用apigw暴露的公网服务来进行测试。
测试推流
- 这里从apigw的调试界面来进行测试(当然也可以使用apigw提供的公网url来测试)
- 在云函数的“触发管理”中点击“API服务名”的链接进入apigw的服务界面
- 点击API调试,然后method选择POST,并调整Body为json,然后把测试json串输入body体。json样例如下 房间号用RoomId字段,RoomId对应的值是数字,不是字符串,不用StrRoomId UserId和UserSig可以参考该文档“创建TRTC”→“生成UserSig” videoSrc填写视频源url,这里以一个共有读私有写的mp4视频为例
{
"SdkAppId": 1400710547,
"StrRoomId": "111",
"RoomId": 111,
"UserId": "williamji2",
"Mode": "vod",
"UserSig": "eJwtzF0LgjAYhuH-suOwd8ttKHTUBzXEoGXB8MRwxZtasqQPov*eqYfP9cD9IbtIew-rSEiYB2TUbczttcETdvzEssSsuiAb3nteZHWNOQmpDyApcF-2j33V6GzrnHMGAL02WP1NCJBMBMCGCp7buJ28lQS7WuAs2tLimOyD2KTjROtDbIzaMDM366VTOr4lU-L9AXvMMss_",
"Redis": false,
"VideoSrc": "https://williamji-1253970226.cos.ap-guangzhou.myzijiebao.com/williamji/record.mp4"
}
- 参数配置后之后点击发送,查看响应情况,返回码200,并且返回消息“Async run task submitted”表示函数正在异步执行
- 查看函数日志,可以看到函数正在执行,并且有日志打印。在“Serverless”->“函数服务”找到测试的函数并查看“函数管理”->"日志查询"可以看到函数日志打印
- 查看web房间的信息,发现有音频,并且有视频播放。表示推流成功
- 在“实时音视频”->“房间通话调查”界面,选择应用名,然后搜索后,可以看到房间ID以及参与用户数,点击房间ID可以查看音视频监控信息。