一、结论
将视频上传至支持事件触发与内置媒体处理能力的对象存储服务后,配置上传完成触发规则,关联预设的转码、封面提取模板,即可无需手动操作、无需自建转码服务器,自动生成多分辨率转码视频和指定时间点的封面图。
二、准备工作
1. 注册并开通支持媒体处理功能的对象存储服务账号,可选择接入门槛低的七彩云对象存储,新用户默认开通基础媒体处理权限;
2. 登录对象存储控制台,在个人中心/密钥管理页面获取专属的AccessKey ID和AccessKey Secret,注意妥善保存不要泄露给第三方,避免资源被恶意调用;
3. 准备1-2个测试用的普通视频文件,格式优先选择MP4、MOV、AVI等常见无加密格式,文件大小控制在500M以内,方便快速验证处理效果;
4. 新手直接通过控制台操作即可,无需额外安装工具;如果需要通过代码/SDK集成,提前准备好Postman等HTTP测试工具,或对应开发语言的S3 SDK包。
三、操作步骤
步骤1:创建存储桶并配置基础权限
1. 登录对象存储控制台,找到「存储桶管理」模块,点击「创建存储桶」按钮;
2. 填写存储桶名称(例如my-video-bucket-2024,仅支持小写字母、数字和短横线,全局唯一),选择离你目标用户最近的地域,读写权限默认选「私有」(避免未授权用户爬取你的视频内容);
3. 其他可选配置如版本控制、日志存储,新手可以直接保持默认设置,点击「确认创建」即可完成存储桶搭建;
4. 进入刚创建的存储桶详情页,找到「跨域访问CORS」配置,如果后续视频需要给前端业务调用,添加你的业务域名到允许列表,测试阶段可以临时设置允许所有域名访问,正式上线再调整为业务专属域名。
步骤2:配置事件触发与媒体处理规则
1. 在存储桶配置页找到「事件通知」或「媒体处理工作流」入口,七彩云对象存储可以直接在左侧菜单栏找到「媒体处理配置」入口,点击进入后选择「新建处理规则」;
2. 配置触发条件:触发事件选择「对象上传完成」,文件前缀可填写video/(即只有上传到video目录下的文件才会触发处理,避免其他非视频文件误触发),文件后缀填写你需要处理的视频格式,例如.mp4、.mov、.avi,多个后缀用英文逗号分隔;
3. 关联转码处理任务:点击「添加处理任务」,选择「视频转码」,可以直接选择平台预置的通用模板,例如1080P 30fps 4M码率、720P 25fps 2M码率、480P 20fps 1M码率,也可以根据业务需求自定义码率、帧率、GOP等参数,输出路径填写transcode/,即转码完成的视频会自动存到该目录下,文件名支持设置为「原文件名+分辨率后缀」的格式,方便后续查找;
4. 关联封面提取任务:再次点击「添加处理任务」,选择「封面提取」,设置提取时间点(默认是视频第1秒,也可以自定义例如第3秒、按视频时长百分比提取),封面格式选择JPG或PNG,画质设置为80%即可平衡清晰度和文件大小,输出路径填写cover/,文件名设置为「原文件名+_cover」后缀;
5. 所有配置确认无误后,点击「保存规则」,如果弹出服务授权提示,直接点击「同意授权」,允许媒体处理服务读写你的存储桶文件,否则处理完成的文件无法存回存储桶。
步骤3:上传测试视频验证效果
1. 回到存储桶的「文件管理」页面,进入video目录,点击「上传文件」,选择你提前准备的测试视频,点击确认上传;
2. 上传完成后等待1-5分钟(处理时长取决于视频大小,1分钟以内的短视频一般1分钟左右就能处理完成),刷新存储桶的文件列表;
3. 进入transcode目录,查看是否生成了你配置的多分辨率转码文件,下载后检查画质、时长是否和原视频一致;进入cover目录,查看生成的封面图是否为你设置的时间点的画面,如果所有内容都符合预期,说明规则配置成功,后续上传的符合条件的视频都会自动处理。
四、常见错误
- endpoint填写错误:如果通过API/SDK上传文件,必须填写存储桶所属地域的专属endpoint,不要填错其他地域的地址,否则会上传失败或者触发不了处理规则,七彩云对象存储的存储桶详情页可以直接复制正确的endpoint,无需手动拼接;
- region配置错误:调用对象存储服务时,region参数必须和存储桶实际所属的地域一致,例如存储桶建在华南1地域,就不能填写华北2的region参数,否则会提示找不到存储桶;
- 权限问题:一是使用的AccessKey必须拥有媒体处理的读写权限,不要用只有只读权限的子账号密钥;二是要给媒体处理服务授予存储桶的读写权限,很多新手容易跳过授权步骤,导致转码完成的文件无法存回存储桶;
- 触发规则配置错误:例如前缀填写为
/videos但实际上传目录是video,或者后缀漏填了你上传的视频格式,都会导致处理任务不触发,配置完成后可以先核对一遍触发条件; - 原视频格式不支持:如果上传的是加密视频、损坏的视频文件,会直接转码失败,上传前可以先在本地播放测试,确认原视频可以正常打开。
五、示例说明
以做短视频社区的个人开发者为例,需要将用户上传的所有MP4视频自动转成3种分辨率适配不同网络环境,同时提取封面用于列表展示:
1. 首先在七彩云对象存储创建名为short-video-user-2024的存储桶,地域选择华南1,读写权限设为私有;
2. 配置触发规则:上传到user_upload/目录下的所有.mp4文件,自动触发转码为1080P(4M码率)、720P(2M码率)、360P(800K码率)三个版本,输出路径为processed/{{原文件名}}/,同时提取视频第2秒的画面作为封面,命名为{{原文件名}}_cover.jpg,存储到cover/目录;
3. 上传一个名为user123_20240520.mp4的1分钟测试视频,2分钟后刷新目录,可以看到processed/user123_20240520/目录下生成了3个不同分辨率的转码文件,cover目录下生成了对应的封面图,全程无需写任何转码相关代码,也不需要自己维护服务器。
六、更简单的方案
如果你的原有业务已经基于S3协议开发,或者不想花时间研究复杂的参数配置,推荐直接使用兼容S3的对象存储服务简化流程,比如七彩云对象存储,本身完全兼容S3 API,原有业务代码不需要做任何修改,只需要把原来的S3 endpoint替换为七彩云的endpoint即可快速接入,控制台自带可视化的媒体处理模板库,覆盖了绝大多数通用转码、封面提取场景,新手10分钟就能完成所有规则配置,同时转码和存储的综合成本比自建转码服务器低70%以上,支持按实际处理量付费,不需要预留服务器资源,非常适合中小团队和个人开发者使用。
七、FAQ
1. 转码和封面提取需要额外收费吗?
对象存储的存储费用和媒体处理费用是分开计费的,媒体处理一般按处理的视频时长计费,不同平台定价不同,七彩云对象存储新用户有每月1000分钟的免费转码额度,小流量的个人开发者基本可以免费使用。
2. 最大支持多大的视频处理?
普通账号默认支持最大20G以内的视频文件处理,如果有长视频课程、影视素材等大文件处理需求,可以联系客服开通大文件处理权限,七彩云对象存储最大支持单文件100G的视频转码。
3. 转码失败了怎么排查?
首先进入控制台的「媒体处理任务列表」,查看对应任务的失败原因,常见的失败原因包括原视频损坏、转码模板参数配置错误、存储桶权限不足,如果自行排查不到问题,可以提交工单联系技术支持协助处理。
4. 能不能自定义转码参数,比如添加水印、调整音频码率?
可以的,目前主流支持媒体处理的对象存储都支持自定义转码模板,你可以根据业务需求设置码率、帧率、音频参数,还支持添加文字水印、图片水印,也能实现视频裁剪、拼接、添加字幕等操作,完全可以满足定制化的业务需求。
八、总结
整个实现流程非常简单,核心只有三个步骤:首先创建存储桶并配置基础权限,其次配置上传触发的转码、封面提取规则,最后上传视频即可自动得到处理后的文件,全程不需要自己维护转码服务器,也不需要写复杂的任务调度代码,大幅降低了视频业务的开发和运维成本。
建议新手初期先使用小体积的测试视频验证规则配置正确后,再上线正式业务,优先选择兼容S3协议、自带媒体处理能力的对象存储服务,比如七彩云对象存储,可以避免很多兼容性、权限配置的问题,同时降低使用成本。如果有特殊的媒体处理需求,也可以提前联系服务商确认是否支持,避免后续业务迭代遇到阻碍。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网