多码率自适应可将指定的音视频文件流统一打包生成一个自适应码流文件,让播放器可根据终端网络带宽环境自动选择最适合当前带宽环境的码流播放。本文为您介绍如何转码生成多码率自适应视频。
什么是多码率自适应
多码率自适应即指将多个的音视频文件流统一打包生成一个自适应码流文件,该自适应码流文件包含不同音视频文件流的码率、分辨率等信息,相比较传统的单码率播放,自适应码率文件能够让播放器可以根据终端网络带宽环境,选择最适合当前带宽环境和终端设备的码流播放,从而提升播放体验。
目前使用比较广的多码率自适应输出格式为HLS和DASH,视频点播目前仅支持HLS多码率自适应生成。
效果展示
模板类型
视频点播目前支持的多码率自适应模板分两种类型:视频多码率和字幕多轨打包模板。更多信息,请参见转码模板配置 TranscodeTemplate。
字幕打包模板不能单独创建使用,必须与视频打包模板一同使用。
视频流打包模板
视频打包模板用于将视频转码输出成HLS格式码流信息构建到自适应多码率文件当中,可供播放器进行分辨率选择和切换。
字幕打包模板
字幕打包模板用于将视频多语言字幕文件的信息构建到自适应多码率文件中,可用播放器进行语言字幕选择和切换。
说明字幕文件仅支持VTT格式。
字幕打包如果需要动态替换模板中的字幕文件,可以调用SubmitTranscodeJobs接口进行参数替换。
如何使用
通过控制台进行转码
步骤一:创建多码率自适应转码模板组
您需要先创建多码率自适应转码模板组,以便后续发起转码任务时选用。
具体操作,请参见配置普通转码模板。
步骤二(可选):创建工作流并关联转码模板组
在工作流中将转码、审核、截图等各种类型的媒体处理任务按一定流程进行编排,后续在上传媒体或媒体处理环节触发工作流时,可以自动按预先编排好的一系列任务流程对媒体文件发起处理。
您可以创建工作流,在工作流中添加媒体转码节点并关联上一步创建的多码率自适应转码模板组。具体操作,请参见工作流管理。
步骤三:发起转码
使用上一步创建的多码率自适应转码模板组或者工作流对视频进行转码,支持在上传媒体时或上传媒体后去触发转码。
上传时自动触发转码
上传后主动发起转码
该操作常用于对已有视频的重新转码、标准加密、水印参数覆盖等。
登录视频点播控制台。
在点播控制台左侧导航栏选择媒资库 > 音/视频。
在音/视频列表页面,在需要发起转码的音视频的操作列单击媒体处理。
根据需要选择用转码模板组处理或用工作流处理,并指定为上一步创建的多码率自适应转码模板组或工作流。
单击确定。
步骤三:查看转码结果
发起转码后,您可以通过以下两种方式查看转码状态及转码后的视频地址等信息。您可以获取视频地址,使用阿里云播放器或其他第三方播放器播放转码后的视频。
若视频点播中未配置加速域名,则通过视频地址播放或下载视频会产生存储流出流量费用,详情请参见存储流出流量计费。
方式一:控制台查看
登录视频点播控制台。
在点播控制台左侧导航栏选择媒资库 > 音/视频。
在音/视频列表页面,查看转码音视频的状态。
状态为正常,表示转码完成并成功,其他状态的释义请参见Status:视频状态。
单击转码音视频操作列的管理,进入视频地址页签。
转码成功的音视频会生成1路自适应流和多路转码流,并生成对应的视频地址。
方式二:事件通知
视频点播支持HTTP回调和MNS回调两种方式的事件通知,通过提前配置事件通知,当媒体文件处理完成(如上传完成、转码完成等)后,视频点播服务会根据您配置的回调方式及时通知您。您可以从接收到的回调结果中获取到转码任务的状态及转码后的视频地址等信息。配置方法,请参见事件通知。
转码相关的事件如下:
通过OpenAPI进行转码
使用说明
如需调用API,请参见视频点播API概览。建议您使用阿里云的在线命令行工具OpenAPI Explorer进行调试,您可以在OpenAPI Explorer中直接运行视频点播的接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
步骤一:创建多码率自适应转码模板组
您需要先创建多码率自适应转码模板组,以便后续发起转码任务时选用。
调用AddTranscodeTemplateGroup - 创建转码模板组接口,通过
TranscodeTemplate
参数来配置打包模板。此处仅列举打包模板相对特殊的配置参数进行说明,更多详细参数,请参见TranscodeTemplate:转码模板配置。
步骤二:(可选)创建工作流并关联转码模板组
在工作流中将转码、审核、截图等各种类型的媒体处理任务按一定流程进行编排,后续在上传媒体或媒体处理环节触发工作流时,可以使媒体文件按预先编排好的一系列任务流程自动发起处理。
当前仅支持通过视频点播控制台创建工作流,具体操作请参见工作流管理。
步骤三:发起转码
使用上一步创建的转码模板组或者工作流对视频进行转码,支持在上传媒体时或上传媒体后去触发转码。
上传时自动触发转码
CreateUploadVideo - 获取音视频上传地址和凭证接口仅用于获取上传地址和凭证以及创建媒资基础信息,并非上传文件,需要开发者自行实现所有上传逻辑。通过接口上传的完整示例,请参见通过视频点播API上传媒资文件。
调用CreateUploadVideo - 获取音视频上传地址和凭证或UploadMediaByURL - URL批量拉取上传接口上传音视频时,在
TemplateGroupId
参数指定转码模板组ID,或在WorkflowId
参数指定包含媒体转码节点的工作流ID,则音视频上传完成后,点播系统将根据您指定的转码模板组或工作流自动进行转码处理。
上传后主动发起转码
该操作常用于对已有视频的重转码、标准加密、水印参数覆盖等。
调用SubmitTranscodeJobs - 提交媒体转码作业接口在
TemplateGroupId
参数指定转码模板组ID,或调用SubmitWorkflowJob - 提交点播工作流作业接口在WorkflowId
参数指定包含媒体转码节点的工作流ID,手动发起转码后,则点播系统将根据您设置的转码模板组或工作流立即对音视频进行转码处理。
步骤四:查看转码结果
发起转码后,您可以通过以下两种方式查看转码状态及转码后的视频地址等信息。您可以获取视频地址,使用阿里云播放器或其他第三方播放器播放转码后的视频。
若视频点播中未配置加速域名,则通过视频地址播放或下载视频会产生存储流出流量费用,详情请参见存储流出流量计费。
方式一:调用API查询
调用SubmitTranscodeJobs - 提交媒体转码作业接口提交的转码任务会返回转码任务IDTranscodeTaskId
,您可以调用GetTranscodeTask - 查询转码任务详情接口来查询指定转码任务的执行状态及转码输出的视频地址等信息。
方式二:事件通知
视频点播支持HTTP回调和MNS回调两种方式的事件通知,通过提前配置事件通知,当媒体文件处理完成(如上传完成、转码完成等)后,视频点播服务会根据您配置的回调方式及时通知您。您可以从接收到的回调结果中获取到转码任务的状态及转码后的视频地址等信息。配置方法,请参见事件通知。
转码相关的事件如下:
后续操作
播放器配置自适应功能后,将转码生成的自适应视频流,传递给播放器进行播放,方能实现视频播放时可根据网络环境自适应切换视频清晰度,或手动进行清晰度和字幕的切换。
如何在阿里云播放器SDK配置自适应功能,请参见:
Android播放器SDK:网络自适应切换视频清晰度
iOS播放器SDK:网络自适应切换视频清晰度
Web播放器SDK:多码率HLS网络自适应切换