直播录像

最近更新时间:2020-08-10 16:38:12

使用前提

使用录像功能,需要先联系商务开通云直播服务、CDN服务及点播转码服务

概念解释

  • 直播录像服务是将直播原始流经过音视频转封装格式(不修改编码方式、音视频数据以及对应的时间戳等信息)得到的录制文件存储到KS3的服务。
  • 切割:设置切割时长,当录制文件超过设定的切割时长后将按照命名规则生成新文件。假设推流6h,设置切割时长为2h,即每过2h会切割一次录制文件,最终会产生3个命名不同的文件。
  • 录制周期:设置录制周期时长,到指定录制周期后不切文件;但是在断流后重推时,若该录制文件时长已经超过录制周期,则按照命名规则生成新文件,否则继续在已有文件后拼接。假设推流11h,设置录制周期时长为10h,录制文件时长到10h时不切割文件,最终生产一个11h的录制文件,但是当下次推流时,由于已产生的录制文件时长超过录制周期,则会以名规则生成新录制文件。
  • 切割的优先级高于录制周期。
  • 断流拼接:可设置断流拼接时间,断流后假设录制文件时长没有超过切割时长或者录制周期,若在设置的断流拼接时间内重推,会继续在之前录制文件后拼接;若超出断流拼接时间,重推会按照命名规则生成新文件。假设断流拼接时长设为3min,断流3min之内,重新推流,会在之前录制文件后拼接;若超过3min,重新推流,会以命名规则生成新文件。

开通流程

  • 直播录像服务需要在直播控制台开通并配置存储bucket和回调url,所以需要同时开通金山云存储KS3服务,具体请咨询商务人员帮助您开通。

说明

  • 直播录像存储目前仅支持北京region。
  • 直播录像是对音视频封装格式的转换,不修改编码参数,因此当同一个录制文件前后编码参数不一致时,可能导致MP4、FLV录制文件异常。当相同流名前后推流编码参数不一致时建议关闭拼接功能,若有拼接需求可通过媒体处理将文件拼接。
  • 如需开通MP4/FLV录像功能,必须先开启HLS录像。
  • 文件保存时间可以自定义修改,在KS3平台操作即可。
  • 推流URL携带vdoid参数示例。
    rtmp://uniquename.uplive.ks-cdn.com/live/stream?vdoid=1477402932

HLS录像

录像生成规则:同流名3分钟(可配)内断流重推对录像文件进行拼接,录像文件总时长超过6小时(可配)进行切割。

路径:/record/{App}/{StreamName}/hls/

命名:[流名]-[文件开始时间]-[文件结束时间].m3u8

格式:{StreamName}-{StartTime}-{EndTime}.m3u8

示例:

mystream-1585829187-1585829324.m3u8

目录说明

目录 描述
record 根目录,用于方便管理
App 频道名,推流携带,默认live
StreamName 流名,推流携带
hls 存放m3u8文件目录
vdoid 唯一标识符,即将下线

MP4录像

注意: 如推流不携带vdoid且路径为空, 会导致MP4文件无法生成。

录像生成规则:同流名3分钟(可配)内断流重推对录像文件进行拼接,录像文件总时长超过6小时(可配)进行切割。

路径:/record/{App}/{StreamName}/mp4/

命名:[流名]-[文件开始时间]-[文件结束时间].mp4

格式:{StreamName}-{StartTime}-{EndTime}.mp4

示例:

mystream-1585829187-1585829324.mp4

FLV录像

录像生成规则:同流名3分钟(可配)内断流重推对录像文件进行拼接,录像文件总时长超过6小时(可配)进行切割;

路径:/record/{App}/{StreamName}/flv/

命名:[流名]-[文件开始时间]-[文件结束时间].flv

格式:{StreamName}-{StartTime}-{EndTime}.flv

示例:

mystream-1585829187-1585829324.flv

录像回调

HLS录像回调

回调url配置

在云直播控制台配置录像文件的回调url即可,我们通过HTTP POST方式通知您。在录像文件生成后会立即发回调通知到您。

回调示例

默认回调信息如下:

{
    "status":3,
    "taskid":"xxxxx",
    "itmes":[
        {
            "cmd":"",
            "desc":"success",
            "keys":[
                "record/live/NEWLIVE4q665314vdoid6683676M2W3/hls/filename.m3u8"
            ],
            "vdoid":"",
            "code":3
        }
    ],
    "mediaSize":0
}

若需在回调信息中增加开始时间、结束时间,需联系技术支持开通。

参数说明

参数 示例 描述
status 3 任务执行的状态(3:成功;4:失败)
taskid 00PNwad2wdoO 执行本次点播操作的唯一id
desc success 任务执行的结果
keys /streamname/11111.m3u8 生成的m3u8点播文件名
code 3 执行返回的代码

MP4/FLV录像回调

回调url配置

在云直播控制台配置录像文件的回调url即可,我们通过HTTP POST方式通知您。在录像文件生成后会立即发回调通知到您。

回调示例

{
    "taskid":"xxxxx",
    "status":3,
    "type":"avtrans",
    "details":{
        "errnum":0,
        "bucket":"xxxx",
        "starttime":"1456800010",
        "endtime":"1456800020",
        "stream":"xxxx",
        "throughParams":"xxxx",
        "items":[
            {
                "dstpath":"xxxxx.mp4",
                "ETag":"cb1b99f6657c91dac6c1913cd99131a1",
                "outMediainfo":"{\"metadata\":{},\"format\":{\"format_name\":\"mp4\",\"size\":1027254935,\"duration\":\"5241\",\"bit_rate\":1568024},\"streams\":[{\"codec_name\":\"h264\",\"codec_type\":\"video\",\"width\":1280,\"height\":720,\"r_frame_rate\":\"25/1\"},{\"index\":1,\"codec_name\":\"aac\",\"codec_type\":\"audio\",\"channels\":2,\"sample_rate\":32000}]}"
            }
        ]
    },
 //历史字段,忽略即可
    "itmes":[
        {
            "cmd":"tag=avtranstag=saveas&bucket=media-kslive&object=YTMwNGQzNzQzZTdhNGRmNmE1NzAwZjkxNDJhY2RjZTlfdmRvaWQyMDE3MDkwNC5tcDQ=",
            "desc":"success",
            "keys":[
                "xxxxx.mp4"
            ],
            "code":3
        }
    ]
}

参数说明

字段名 类型 是否必有 描述
taskid string 任务ID
status int 任务状态:3为成功,4为失败
type string 任务类型,与创建任务时使用的模板类型一致
details json object 更详细的信息
  • details更详细的说明:
字段名 类型 是否必有 描述
errnum int 视频信息
errmsg string 视频metadata
bucket string 视频流信息列表
stream string 流名
starttime string 该流起始时间
endtime string 该流结束时间
throughParams string 透传参数
items json array 回调中用户定制的输出文件信息等。
  • items更详细的说明:
字段名 类型 是否必有 描述
dstpath int 输出文件在ks3的相对路径
ETag string 视频内容的md5值
outMediainfo string avtrans任务的回调字段,输出视频的信息。string类型,string内部是json串
  • 对输出文件信息outMediainfo的说明
字段名 类型 是否必有 描述
metadata json object 视频metadata
streams json array 视频流信息列表
format json object 视频文件信息

metadata部分

字段名 类型 是否必需 描述
rotate string 旋转信息

streams部分

字段名 类型 是否必需 描述
index int 序号
codec_type string 流类型
codec_name string 编码格式
bit_rate int 码率,单位bps
width int
height int
r_frame_rate string 帧率
channels int 声道数
sample_rate int 音频采样率

format部分

字段名 类型 是否必需 描述
duration string 文件时长,单位秒
format_name string 文件容器格式
size int 文件大小,单位字节

金山云,开启您的云计算之旅

免费注册