转码

最近更新时间:2019-06-17 19:22:08

转码是将视频码流转换成另一个视频码流的过程,是一种离线任务。通过转码,可以改变原始码流的编码格式、分辨率和码率等参数,从而适应不同终端和网络环境的播放。使用转码功能可以实现:

  • 适配更多终端:将原始视频转码成拥有更强的终端适配能力的格式(如 MP4),使视频资源能够在更多设备上播放。
  • 适配不同带宽:将视频转换成流畅、标清、高清以及超清等输出,用户可以根据当前网络环境选择合适码率的视频播放。
  • 改善播放效率:转码可以将 MP4 位于尾部的元信息 MOOV 提前到头部,播放器无需下载完整视频即可立即播放。
  • 为视频打水印:为视频打上水印标识视频的归属或版权,更多信息请参考 水印
  • 节省带宽:采用更先进的编码方式(如 H.265)转码,在不损失原始画质的情况下显著降低码率,节省播放带宽。

转码模板

转码的目标规格包含了编码格式、分辨率和码率等参数。云点播使用转码模板表示转码参数集合,通过转码模板,可以指定以下转码相关参数。

分类 参数 说明
封装
封装格式 可以转以下视频和纯音频封装格式:
  • 视频:mp4,ts,hls,flv
  • 纯音频:mp3,m4a,flac,ogg
  • 删除视频流 如果开启“删除视频流”,转码出来的视频将不包含视频流(仅保留音频流)
    删除音频流 如果开启“删除音频流”,转码出来的视频将不包含音频流(仅保留视频流)
    视频编码 编码方式(Codec) 支持 H.264 和 H.265 两种编码方式
    码率(Bitrate) 支持的视频码率范围:10 - 35Mbps
    帧率(Frame Rate) 支持的帧率范围:1 - 60fps ,常见的有24fps,25fps 和30fps
    分辨率(Resolution)
  • 支持宽度范围:128 - 4096 px
  • 支持高度范围:128 - 4096 px
  • GOP 长度 支持 GOP 长度范围:1 - 10秒
    编码档次(Profile)
  • 当视频编码方式为 H.264 时,支持 Baseline、Main 和 High 三种编码档次
  • 当视频编码方式为 H.265 时,仅支持 Main 编码档次
  • 颜色空间(Color Space) 支持 YUV420P
    音频编码参数 编码方式(Codec) 支持 mp3、aac、ac3 和 flac 四种编码方式
    采样率(Sample Rate) 支持下列音频采样率:
  • 34000HZ
  • 44100HZ
  • 48000HZ
  • 码率(Bitrate) 支持码率在128 - 10000bps,包括:
  • 48kbps
  • 64kbps
  • 128kbps
  • 声道(Channel)
  • 单声道
  • 双声道
  • 立体道
  • 针对常见的转码规格,云点播提供了 预置转码模板。另外,您还可以通过控制台(具体操作请参考 模板设置)或调用 服务端 API 创建和管理自定义转码模板。

    任务发起

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

    以下是各种方式发起转码任务的说明:

    结果获取

    发起转码任务后,您可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取转码的执行结果。下面是发起转码任务后,普通回调方式下结果通知的示例(省略了值为 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":"Transcode",
                    "TranscodeTask":{
                        "Status":"SUCCESS",
                        "ErrCode":0,
                        "Message":"",
                        "Input":{
                            "Definition":220
                        },
                        "Output":{
                            "Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/v.f20.m3u8",
                            "Size":63120997,
                            "Container":"mov,mp4,m4a,3gp,3g2,mj2",
                            "Height":480,
                            "Width":640,
                            "Bitrate":513402,
                            "Md5":"084d403c73930ca2f835679af1f37bd3",
                            "Duration":60,
                            "VideoStreamSet":[
                                {
                                    "Bitrate":473101,
                                    "Codec":"h264",
                                    "Fps":24,
                                    "Height":480,
                                    "Width":640
                                }
                            ],
                            "AudioStreamSet":[
                                {
                                    "Bitrate":48581,
                                    "Codec":"aac",
                                    "SamplingRate":44100
                                }
                            ],
                            "Definition":220
                        }
                    }
                }
            ],
            "TasksPriority":0,
            "TasksNotifyMode":""
        }
    }

    回调结果中,ProcedureStateChangeEvent.MediaProcessResultSet有一个TypeTranscode类型的转码结果,Definition为220。