实时录制

最近更新时间:2020-01-15 14:45:18

功能简介

腾讯云互动课堂云端实时录制服务为您提供了在上课过程中,同步的将各路音视频以及白板画面分别录制为视频的能力,方便您记录每堂课的完整过程,满足课堂质量分析和学生复习回顾等业务场景。

如何使用实时录制

准备 UserId 和 UserSig

实时录制后台需要加入课堂并对课堂的音视频和白板进行录制,因此需要您提供一个录制后台进房的UserId以及UserSig,生成UserIdUserSig请参考 如何计算 UserSig

为了将录制后台的UserId与普通用户进行区分,我们约定UserId必须如下:

tic_record_user_{roomid}_{随机数}

其中,{roomid}为您真实的房间号,假如课堂的音视频房间100241,一个合法的实时录制UserIdtic_record_user_100241_100。同时您需要提供tic_record_user_100241_100对应的UserSig签名。

注意:

  1. UserSig签名请设置一个较长的有效期,例如1小时,避免由于签名过期导致录制失败。
  2. 如果同一房间内需要多次发起录制,请使用不同的录制UserId,否则录制用户会被强制下线而导致录制失败。

开始与结束录制

在需要进行录制时,例如老师学生都已经准备好开始上课,您可以使用开始录制接口开始实时录制,在请求接口时,需要上一步准备好的用于录制后台加入课堂的UserIdUserSig,当实时录制开始时,如果您配置了回调地址,您将收到事件为开始录制的回调请求通知。

在课堂结束或者需要停止录制的时候,您可以使用停止录制接口通知实时录制服务停止当前录制,您可以使用查询录制结果接口主动查询实时录制结果,如果您配置了回调地址,录制视频处理完成后,您将收到事件为录制完成的回调请求通知。

说明:

由于网络延迟等因素,发送请求后,实际实时录制操作将在2s左右后进行。

暂停与恢复录制

在上课过程中,如果您不希望录制中间一段内容,并且想要将暂停前和暂停后的视频放在一个录制任务结果中,您可以使用暂停录制接口和恢复录制接口实现。

说明:

由于网络延迟等因素,发送请求后,实际实时录制操作将在2s左右后进行。

录制任务的状态转换图如下所示:

解析录制结果

当您主动查询录制进度时收到 Status 参数值为 "FINISHED" 或者收到录制完成回调时,您可以拿到录制结果(一个 JSON 串),其格式如下:

参数名 类型 描述
RoomId Integer 房间号
GroupId String 白板的群组 ID
RecordUserId String 录制所使用的 UserId
RecordStartTime Integer 录制开始时间,Unix 时间戳,单位秒
RecordStopTime Integer 录制停止时间,Unix 时间戳,单位秒
TotalTime Integer 回放视频总时长(单位:毫秒)
VideoInfos Array of VideoInfo 录制视频列表

以下为一个录制结果 JSON 串示例:

{
    "RoomId":1234,
    "GroupId":"1234",
    "RecordStartTime":1558613140,
    "RecordStopTime":1558614640,
    "TotalTime": 1440000,
    "VideoInfos":[
        {
            "VideoPlayTime":0,
            "VideoSize":13151,
            "VideoFormat":"mp4",
            "VideoDuration":900000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/oM86K7X3Ig8b.mp4",
            "VideoId":"5285890781570653827",
            "VideoType":0,
            "UserId":"ios_test1"
        },
        {
            "VideoPlayTime":300000,
            "VideoSize":3756,
            "VideoFormat":"mp4",
            "VideoDuration":600000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/oM86K7X3IsdfA.mp4",
            "VideoId":"5285890781570653828",
            "VideoType":0,
            "UserId":"pc_test1"
        },
        {
            "VideoPlayTime":120000,
            "VideoSize":1241,
            "VideoFormat":"mp4",
            "VideoDuration":780000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/52lk3KA0A562.mp4",
            "VideoId":"5285890781570653830",
            "VideoType":2,
            "UserId":""
        },
        {
            "VideoPlayTime":900000,
            "VideoSize":13151,
            "VideoFormat":"mp4",
            "VideoDuration":300000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/oM86K7X3Ig63.mp4",
            "VideoId":"5285890781570653841",
            "VideoType":0,
            "UserId":"ios_test1"
        },
        {
            "VideoPlayTime":900000,
            "VideoSize":3756,
            "VideoFormat":"mp4",
            "VideoDuration":210000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/oM86K7X3Isd15.mp4",
            "VideoId":"5285890781570653842",
            "VideoType":0,
            "UserId":"pc_test1"
        },
        {
            "VideoPlayTime":900000,
            "VideoSize":1241,
            "VideoFormat":"mp4",
            "VideoDuration":540000,
            "VideoUrl":"http://1253488539.vod2.myqcloud.com/52lk3KA0A512.mp4",
            "VideoId":"5285890781570653843",
            "VideoType":2,
            "UserId":""
        }
    ]
}

此 JSON 对象表示课堂录制产生了6个视频文件,其中,在过程中暂停录制了1分钟,之后恢复录制,因此最后产生了6段视频,这6个视频文件在时间轴上的排列如下图所示:

注意:

实时录制结果文件只保存3天,3天后将被删除,建议获取到录制结果后对录制文件进行转存。