视频加密

最后更新时间:2021-04-23 15:20:45

    视频加密是指将视频转自适应码流并对码流进行加密的过程。云点播视频加密提供了两种级别的加密方案:

    • 商业级 DRM:目前提供 FairPlay 和 Widevine 两种。
    • 基础级 DRM:SimpleAES 普通加密。

      转自适应码流模板

    视频加密的目标规格和转自适应码流的目标规格相同。通过转自适应码流参数,可以控制“使用哪种加密方案加密”、“转哪些码率的视频流”以及“转哪些码率的音频流”等参数。云点播使用转自适应码流模板表示参数集合,通过转自适应码流模板,可以指定以下相关参数。

    参数 说明
    打包类型 自适应码流的格式,目前支持 HLS 和 Dash 两种。
    DRM 类型 可以选择是否对视频加密保护,支持以下 DRM 加密方案:
  • FairPlay
  • Widevine
  • SimpleAES
  • VideoTrack 列表 包含哪些不同码率的视频流。
    AudioTrack 列表 包含哪些不同码率的音频流。
    是否过滤“低码率转高码率” 通常来说,低码率的原始视频转码高码率无法获得画质和音质的提升。开启过滤“低码率转高码率”,可以避免不必要的转码。

    针对常见的参数组合,云点播提供了 预置转自适应码流模板,目前暂不支持自定义转自适应码流模板。

    任务发起

    发起视频加密任务,有“通过服务端 API 直接发起”,“通过控制台直接发起”和“上传时指定要执行的任务”三种方式。具体请参照视频处理的 任务发起

    以下是各种方式发起视频加密任务的说明:

    • 调用服务端 API ProcessMedia 发起任务:在请求中的MediaProcessTask.AdaptiveDynamicStreamingTaskSet.Definition参数指定 转自适应码流模板 的模板 ID。
    • 通过控制台对视频发起任务:调用 服务端 API 创建任务流,任务流中配置转自适应码流任务(MediaProcessTask.AdaptiveDynamicStreamingTaskSet中指定);在控制台使用该任务流 发起视频处理
    • 服务端上传时指定任务:调用 服务端 API 创建任务流,任务流中配置转自适应码流任务(MediaProcessTask.AdaptiveDynamicStreamingTaskSet中指定);申请上传 中的procedure参数指定为该任务流。
    • 客户端上传时指定任务:调用 服务端 API 创建任务流,任务流中配置转自适应码流任务(MediaProcessTask.AdaptiveDynamicStreamingTaskSet中指定);在 客户端上传签名 中的procedure指定该任务流。
    • 控制台上传:调用 服务端 API 创建任务流,任务流中配置转自适应码流任务(MediaProcessTask.AdaptiveDynamicStreamingTaskSet中指定);通过控制台上传视频,选择【上传的同时对视频进行处理操作】并指定视频上传后执行该任务流。

    结果获取

    发起加密任务后,您可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取视频加密任务的执行结果。下面是发起视频加密任务后,普通回调方式下结果通知的示例(省略了值为 null 的字段):

    {
        "EventType":"ProcedureStateChanged",
        "ProcedureStateChangeEvent":{
            "TaskId":"1256768367-Procedure-2e1af2456351812be963e309cc133403t0",
            "Status":"FINISH",
            "FileId":"5285890784246869930",
            "FileName":"动物世界",
            "FileUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/AtUCmy6gmIYA.mp4",
            "MetaData":{
                "AudioDuration":60,
                "AudioStreamSet":[
                    {
                        "Bitrate":383854,
                        "Codec":"aac",
                        "SamplingRate":48000
                    }
                ],
                "Bitrate":1021028,
                "Container":"mov,mp4,m4a,3gp,3g2,mj2",
                "Duration":60,
                "Height":480,
                "Rotate":0,
                "Size":7700180,
                "VideoDuration":60,
                "VideoStreamSet":[
                    {
                        "Bitrate":637174,
                        "Codec":"h264",
                        "Fps":23,
                        "Height":480,
                        "Width":640
                    }
                ],
                "Width":640
            },
            "MediaProcessResultSet":[
                {
                    "Type":"AdaptiveDynamicStreaming",
                    "AdaptiveDynamicStreamingTask":{
                        "Status":"SUCCESS",
                        "ErrCode":0,
                        "Message":"",
                        "Input":{
                            "Definition":11
                        },
                        "Output":{
                            "Definition":11,
                            "Package":"hls",
                            "DrmType":"FairPlay",
                            "Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/adp.11.m3u8"
                        }
                    }
                },
                {
                    "Type":"AdaptiveDynamicStreaming",
                    "AdaptiveDynamicStreamingTask":{
                        "Status":"SUCCESS",
                        "ErrCode":0,
                        "Message":"",
                        "Input":{
                            "Definition":12
                        },
                        "Output":{
                            "Definition":12,
                            "Package":"hls",
                            "DrmType":"SimpleAES",
                            "Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/adp.12.m3u8"
                        }
                    }
                },
                {
                    "Type":"AdaptiveDynamicStreaming",
                    "AdaptiveDynamicStreamingTask":{
                        "Status":"SUCCESS",
                        "ErrCode":0,
                        "Message":"",
                        "Input":{
                            "Definition":21
                        },
                        "Output":{
                            "Definition":21,
                            "Package":"dash",
                            "DrmType":"Widevine",
                            "Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/adp.21.mpd"
                        }
                    }
                }
            ],
            "TasksPriority":0,
            "TasksNotifyMode":""
        }
    }
    

    回调结果中,ProcedureStateChangeEvent.MediaProcessResultSet有三个TypeAdaptiveDynamicStreaming类型的带有视频加密的转自适应码流结果,分别是:

    • 加密类型为 FairPlay 的 HLS 格式,Definition为11。
    • 加密类型为 SimpleAES 的 HLS 格式,Definition为12。
    • 加密类型为 FairPlay 的 Dash 格式,Definition为21。