转码是将视频码流转换成另一个视频码流的过程,是一种离线任务。通过转码,可以改变原始码流的编码格式、分辨率和码率等参数,从而适应不同终端和网络环境的播放。使用转码功能可以实现:
适配更多终端:将原始视频转码成拥有更强终端适配能力的格式(如 MP4),使视频资源能够在更多设备上播放。
适配不同带宽:将视频转换成流畅、标清、高清以及超清等输出,用户可以根据当前网络环境选择合适码率的视频播放。
改善播放效率:转码可以将 MP4 位于尾部的元信息 MOOV 提前到头部,播放器无需下载完整视频即可立即播放。
为视频打水印:为视频打上水印标识视频的归属或版权,更多信息请参见 水印。
节省带宽:采用更先进的编码方式(如 H.265)转码,在不损失原始画质的情况下显著降低码率,节省播放带宽。
注意:
转码模板
转码的目标规格包含了编码格式、分辨率和码率等参数。云点播使用转码模板表示转码参数集合,通过转码模板,可以指定以下转码相关参数。
说明:
分类 | 参数 | 说明 |
封装 | 封装格式 | 可以转以下视频和纯音频封装格式: 视频: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) | 支持下列音频采样率: 34000Hz 44100Hz 48000Hz |
| 码率(Bitrate) | 支持码率在26kbps - 256kbps,包括: 48kbps 64kbps 128kbps |
| 声道(Channel) | 单声道 双声道 立体道 |
任务发起
以下是各种方式发起转码任务的说明:
调用服务端 API ProcessMedia 发起任务:在请求中的
MediaProcessTask.TranscodeTaskSet
参数指定 转码模板 的模板 ID。控制台上传:在控制台 添加任务流,任务流中设置目标转码规格;通过控制台上传视频,选择 上传的同时对视频进行处理操作 并指定视频上传后执行该任务流。
结果获取
{"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。