服务端 API 文档

如何对视频进行转码

最近更新时间:2020-06-23 14:47:18

使用须知

内容介绍

本文档向开发者介绍如何对云点播(VOD)中的视频进行转码,以及如何获取转码后的输出结果。

费用

本文提供的代码是免费开源的,但在使用的过程中可能会产生以下费用:

在控制台发起转码

步骤1:开通云点播

请参考 快速入门 - 步骤1 开通云点播服务。

步骤2:上传视频

参考 快速入门 - 步骤2 上传一个测试视频。单击 此处 查看本 Demo 使用的测试视频,对应的 FileId 为5285890804162014755,如下图所示:

说明:

建议使用较短的视频文件进行测试(例如时长为几十秒的视频),避免转码过程耗时太长。

步骤3:发起转码

在控制台 视频管理 页面勾选新上传的测试视频,然后单击【视频处理】:

在弹框中,处理类型选择【转码】,然后单击【转码模板】:

选择所需的转码模板,然后单击【确定】。本 Demo 以系统预置模板 MP4-FLU(模板 ID 100010)和 MP4-SD(模板 ID 100020)为例,如果开发者需要使用自定义的转码模板,请参考 模板设置文档

单击【确定】,发起转码:

在“视频管理”页面看到测试视频的状态为“处理中”,则表示视频正在转码:

步骤4:查看转码结果

在控制台 视频管理 页面等待测试视频的状态变为“正常”,此时表示转码已完成。单击测试视频右侧的【管理】,进入视频管理页面:

在“基本信息”标签页下的【标准转码列表】中,转出了 MP4-FLU 和 MP4-SD 两个规格。开发者可以单击右侧的【预览】直接观看视频,还可以单击【复制地址】复制转码视频的 URL,然后通过其它渠道发布给观众。

调用云 API 发起转码

步骤1:准备腾讯云 CVM

云 API 请求脚本需要运行在一台腾讯云 CVM 上,要求如下:

  • 地域:任意。
  • 机型:官网最低配置(1核1GB)即可。
  • 公网:需要拥有公网 IP,带宽1Mbps或以上。
  • 操作系统:官网公共镜像Ubuntu Server 16.04.1 LTS 64位Ubuntu Server 18.04.1 LTS 64位

购买 CVM 的方法请参见 操作指南 - 创建实例。重装系统的方法请参见 操作指南 - 重装系统

注意:

如果您没有符合上述条件的腾讯云 CVM,也可以在其它带外网的 Linux(如 CentOS、Debian 等)或 Mac 机器上执行脚本,但需根据操作系统的区别修改脚本中的个别命令,具体修改方式请开发者自行搜索。

步骤2:获取 API 密钥

请求云 API 需要使用到开发者的 API 密钥(即 SecretId 和 SecretKey)。如果还未创建过密钥,请参见 创建密钥文档 生成新的 API 密钥;如果已创建过密钥,请参见 查看密钥文档 获取 API 密钥。

步骤3:开通云点播

请参考 快速入门 - 步骤1 开通云点播服务。

步骤4:上传视频

参考 快速入门 - 步骤2 上传一个测试视频。单击 此处 查看本 Demo 使用的测试视频,对应的 FileId 为5285890804162014755,如下图所示:

说明:

建议使用较短的视频文件进行测试(例如时长为几十秒的视频),避免转码过程耗时太长。

步骤5:发起转码

登录 步骤1 中准备好的 CVM(登录方法详见 操作指南 - 登录 Linux),在远程终端输入以下命令并运行:

ubuntu@VM-69-2-ubuntu:~$ export SECRET_ID=AKxxxxxxxxxxxxxxxxxxxxxxx; export SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx;git clone https://github.com/tencentyun/vod-server-demo.git ~/vod-server-demo; bash ~/vod-server-demo/installer/transcode_api.sh
说明:

请将命令中的 SECRET_ID 和 SECRET_KEY 赋值为 步骤2 中获取到的内容。

该命令将从 Github 下载 Demo 源码并自动执行安装脚本。安装过程需几分钟(具体取决于 CVM 网络状况),期间远程终端会打印如下示例的信息:

  [2020-06-15 20:39:56]开始安装 pip3。
  [2020-06-15 20:40:06]pip3 安装成功。
  [2020-06-15 20:40:06]开始安装云 API Python SDK 。
  [2020-06-15 20:40:07]云 API Python SDK 安装完成。
  [2020-06-15 20:40:07]开始配置 API 参数。
  [2020-06-15 20:40:07]API 参数配置完成。

执行process_media.py脚本发起转码:

ubuntu@VM-69-2-ubuntu:~$ cd ~/vod-server-demo/transcode_api/; python3 process_media.py 5285890804162014755
说明:

请将命令中的5285890804162014755替换为 步骤4 中得到的实际 FileId。

该命令将对5285890804162014755这个视频发起 ProcessMedia 请求,按 VOD 预置转码模板 100010和100020两个规格进行转码,并打印请求的应答内容:

{"TaskId": "1400329073-procedurev2-f6bf6f01612369b6db30f2224792a2aft0", "RequestId": "809918fb-791c-4937-b684-5027ba6bc5f0"}

步骤6:查看转码结果

在“视频管理”页面看到测试视频的状态为“处理中”,则表示视频正在转码:

等待测试视频的状态变为“正常”,此时表示转码已完成。单击测试视频右侧的【管理】,进入视频管理页面:

在“基本信息”标签页下的【标准转码列表】中,转出了 MP4-FLU 和 MP4-SD 两个规格。开发者可以单击右侧的【预览】直接观看视频,还可以单击【复制地址】复制转码视频的 URL,然后通过其它渠道发布给观众。

上传视频后自动转码(任务流)

VOD 有多种上传视频的方式,包括控制台上传、服务端上传、客户端上传和 URL 拉取上传等(详见 媒体上传综述)。各种上传方式均支持指定一个 任务流,在上传完成后自动触发转码。

上传视频后自动转码(事件通知)

VOD 后台在视频上传完成和转码任务完成后均会发起 事件通知 请求。开发者可以利用事件通知机制来对新上传的视频发起转码,也可以通过事件通知来自动获取转码结果(上文展示的方法是人工在控制台查看转码结果)。事件通知的使用方法在单独的最佳实践文档 接收事件通知 中有详细介绍。

目录