·适配更多终端:将原始视频转码成拥有更强终端适配能力的格式(如 MP4),使视频资源能够在更多设备上播放。
·适配不同带宽:将视频转换成流畅、标清、高清以及超清等输出,用户可以根据当前网络环境选择合适码率的视频播放。
·改善播放效率:转码可以将 MP4 位于尾部的元信息 MOOV 提前到头部,播放器无需下载完整视频即可立即播放。
·为视频打水印:为视频打上水印标识视频的归属或版权,更多信息请参见 水印。
·节省带宽:采用更先进的编码方式(如 H.265)转码,在不损失原始画质的情况下显著降低码率,节省播放带宽。
视频转码后,根据 结果获取 可以获得转码后视频播放的 URL。你可以使用自有播放器或第三方播放器,播放转码后的视频。
注意:转码功能主要适用于短视频的场景。对于长视频(视频网站、在线教育等),使用 转自适应码流 将为你和你的用户带来更好的体验。
一、转码模板
转码的目标规格包含了编码格式、分辨率和码率等参数。云点播使用转码模板表示转码参数集合,通过转码模板,可以指定以下转码相关参数。
注意:说明:
注意:更多音视频转码格式,请参见 转码支持格式。
| 分类 | 参数 | 说明 |
| 封装 | 封装格式 | 可以转以下视频和纯音频封装格式:视频:MP4、TS、HLS、FLV纯音频:MP3、M4A、FLAC、OGG |
| | 删除视频流 | 如果开启“删除视频流”,转码出来的视频将不包含视频流(仅保留音频流) |
| | 删除音频流 | 如果开启“删除音频流”,转码出来的视频将不包含音频流(仅保留视频流) |
| 视频编码 | 编码方式(Codec) | 支持 H.264 和 H.265 两种编码方式 |
| | 码率(Bitrate) | 支持的视频码率范围:10kbps – 35Mbps |
| | 帧率(Frame Rate) | 支持的帧率范围:1fps – 60fps,常见的有24fps、25fps和30fps |
| | 分辨率(Resolution) | 支持宽度范围:128px – 4096px支持高度范围:128px – 4096px |
| | GOP 长度 | 支持 GOP 长度范围:1秒 – 10秒 |
| | 编码档次(Profile) | 当视频编码方式为 H.264 时,支持 Baseline、Main 和 High 的编码档次当视频编码方式为 H.265 时,仅支持 Main 编码档次 |
| | 颜色空间(Color Space) | 支持 YUV420P |
| 音频编码参数 | 编码方式(Codec) | 支持 MP3、AAC、AC3 和 FLAC 的编码方式 |
| | 采样率(Sample Rate) | 支持下列音频采样率:34000Hz44100Hz48000Hz |
| | 码率(Bitrate) | 支持码率在26kbps – 256kbps,包括:48kbps64kbps128kbps |
| | 声道(Channel) | 单声道双声道立体道 |
针对常见的转码规格,云点播提供了 预置转码模板。另外,你还可以通过控制台(具体操作请参见 模板设置)或调用 服务端 API 创建和管理自定义转码模板。
二、任务发起
发起转码任务,有“通过服务端 API 直接发起”,“通过控制台直接发起”和“上传时指定要执行的任务”三种方式。具体请参照视频处理的 任务发起。
以下是各种方式发起转码任务的说明:
·调用服务端 API ProcessMedia 发起任务:在请求中的MediaProcessTask.TranscodeTaskSet参数指定 转码模板 的模板 ID。
·通过控制台对视频发起任务:在控制台 添加任务流,任务流中设置目标转码规格;在控制台使用该任务流 发起视频处理。
·服务端上传时指定任务:在控制台 添加任务流,任务流中设置目标转码规格;申请上传 中的procedure参数指定为该任务流。
·客户端上传时指定任务:在控制台 添加任务流,任务流中设置目标转码规格;在 客户端上传签名 中的procedure指定该任务流。
·控制台上传:在控制台 添加任务流,任务流中设置目标转码规格;通过控制台上传视频,选择 上传的同时对视频进行处理操作 并指定视频上传后执行该任务流。
三、结果获取
发起转码任务后,你可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取转码的执行结果。下面是发起转码任务后,普通回调方式下结果通知的示例(省略了值为 null 的字段):
{ "EventType":"ProcedureStateChanged", "ProcedureStateChangeEvent":{ "TaskId":"1256768367-Procedure-2e1af2456351812be963e309cc133403t0", "Status":"FINISH", "FileId":"52858**********9930", "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":"084d403c73930ca2f8**********7bd3", "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有一个Type为Transcode类型的转码结果,Definition为220。