tencent cloud

云点播

动态与公告
产品动态
公告
产品简介
产品概述
产品特性
产品功能
产品优势
应用场景
解决方案
专业版
云点播专业版简介
快速入门
控制台指南
开发指南
购买指南
计费概述
计费方式
购买指引
账单查询
续费说明
欠费说明
退费说明
快速入门
控制台指南
控制台介绍
服务概览
应用管理
媒体管理
资源包管理
License 管理
实时日志分析
实践教程
媒体上传
如何将点播的媒体文件进行智能降冷
媒体处理
分发播放
如何接收事件通知
如何进行源站迁移
直播录制
如何进行自定义源站回源
直播精彩剪辑固化至云点播 VOD 指引
如何使用 EdgeOne 分发云点播内容
开发指南
媒体上传
媒体加工处理
媒体 AI
事件通知
媒体分发播放
媒体加密与版权保护
播放频道
访问管理
下载媒体文件
应用体系
错误码
播放器 SDK 文档
概述
基本概念
产品功能
Demo 体验
免费测试
购买指南
SDK 下载
License 指引
播放器教程
含 UI 集成方案
无 UI 集成方案
高级功能
API 文档
第三方播放器插件
Player SDK Policy
服务端 API 文档
History
Introduction
API Category
Other APIs
Media Processing APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Parameter Template APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
常见问题
移动端播放问题
费用相关问题
视频上传问题
视频发布问题
视频播放问题
Web 端播放问题
全屏播放问题
数据统计问题
访问管理相关问题
媒资降冷问题
相关协议
Service Level Agreement
VOD 政策
隐私政策
数据处理和安全协议
联系我们
词汇表
文档云点播实践教程媒体上传如何在服务端上传视频

如何在服务端上传视频

PDF
聚焦模式
字号
最后更新时间: 2021-05-11 18:37:53

使用须知

内容介绍

本文档向开发者介绍如何将服务器本地的视频文件上传到云点播(VOD)。

费用

本文提供的代码是免费开源的,但在使用的过程中可能会产生以下费用:
购买腾讯云云服务器(CVM)用于执行上传脚本,详见 CVM 计费
消耗 VOD 存储用于存储上传的视频,详见 存储计费

将 CVM 上的视频上传到 VOD

步骤1:准备腾讯云 CVM

上传脚本需要运行在一台腾讯云 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:开通云点播

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

步骤3:获取 API 密钥

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

步骤4:下载代码并安装 SDK

登录 步骤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/server_upload.sh
说明:
请将命令中的 SECRET_ID 和 SECRET_KEY 赋值为 步骤3 中获取到的内容。
该命令将从 Github 下载 Demo 源码并自动执行安装脚本。安装过程需几分钟(具体取决于 CVM 网络状况),期间远程终端会打印类似如下的信息:
[2020-06-23 19:56:31]开始安装 pip3。
[2020-06-23 19:56:34]pip3 安装成功。
[2020-06-23 19:56:34]开始安装 VOD Python 上传 SDK。
[2020-06-23 19:56:36]VOD Python 上传 SDK 安装完成。
[2020-06-23 19:56:36]开始配置 SDK 参数。
[2020-06-23 19:56:36]SDK 参数配置完成。

步骤5:上传视频

发起上传之前,开发者需要在 CVM 上准备好视频文件和封面图片(可选)。如果开发者不方便上传视频到 CVM,可以在远程终端执行以下命令,将测试视频和测试封面下载到 CVM 上:
ubuntu@VM-69-2-ubuntu:~$ wget http://1400329073.vod2.myqcloud.com/d62d88a7vodtranscq1400329073/7a9b2b565285890804459281865/v.f100010.mp4 -O ~/vod-server-demo/server_upload/tencent_cloud.mp4; wget http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/5285890804459940825.jpg -O ~/vod-server-demo/server_upload/tencent_cloud.jpg
执行server_upload.py脚本发起上传:
ubuntu@VM-69-2-ubuntu:~$ cd ~/vod-server-demo/server_upload/; python3 server_upload.py ./tencent_cloud.mp4 ./tencent_cloud.jpg
说明:
请将命令中的视频路径和封面图片路径替换为实际文件的路径,其中封面图片路径参数是可选的,如果不填则上传后的视频没有封面。
该命令将 tencent_cloud.mp4 视频上传到 VOD,同时上传 tencent_cloud.jpg 图片作为其封面。上传完成后远程终端会打印出类似如下信息:
{"CoverUrl": "http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/5285890804459940825.jpg", "FileId": "5285890804459940822", "MediaUrl": "http://1400329073.vod2.myqcloud.com/ff439affvodcq1400329073/8aa658d15285890804459940822/f0.mp4", "RequestId": "84a7fb42-9f05-4acd-9cc8-843690b188ce"}
说明:
如果开发者使用自己的视频进行测试,建议使用较小的视频文件(例如几个MB),避免因 CVM 带宽不足而需要耗费很长的上传时间。

步骤6:查看结果

在控制台 视频管理 页面上可以看到刚上传的视频文件和封面:

代码解读

1. main()为脚本入口。
2. 调用parse_conf_file(),从config.json文件中读取配置信息。配置项说明如下:
字段
数据类型
功能
secret_id
String
API 密钥
secret_key
String
API 密钥
procedure
String
任务流名称,即视频上传完成后自动触发该任务流。默认为空
subappid
String
是否将视频上传到 云点播子应用
说明:
本 Demo 仅支持proceduresubappid两个上传参数,完整功能请参考 Python 上传 SDK 接口描述
3. 从命令行参数中获取待上传视频文件的本地路径,以及封面图片路径(如果有封面),然后调用upload_media()发起上传:
if len(sys.argv) < 2:
usage()
return
video_path = sys.argv[1]
cover_path = sys.argv[2] if len(sys.argv) > 2 else ""

# 发起上传
rsp = upload_media(configuration, video_path, cover_path)
4. upload_media()中,使用 Python SDK 提供的方法构造一个上传实例client,然后在req中设置上传参数,最后发起上传:
client = VodUploadClient(conf["secret_id"], conf["secret_key"])
req = VodUploadRequest()

req.MediaFilePath = video
if cover != "":
req.CoverFilePath = cover
if conf["procedure"] != "":
req.Procedure = conf["procedure"]
req.SubAppId = int(conf["subappid"])

rsp = client.upload("ap-guangzhou", req)
return rsp
注意:
client.upload()中的第一个参数("ap-guangzhou")是指上传实例的接入地域,不是指视频上传后的存储地域。该参数固定填为"ap-guangzhou"即可,如果需要指定视频上传后的存储地域,请设置req.StorageRegion参数。

其它功能

VOD 服务端上传 SDK 还支持其它特性,如设置视频名称、分类、过期时间等,详情请参考各语言 SDK 开发指南:

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈