原文标题:视频分发太繁琐?学会这个10分钟搞定(附留言活动)
原文作者:阿里云开发者
冷月清谈:
怜星夜思:
原文内容
前言
互联网不仅改变了信息的形式,也改变了我们获得信息的方式。十几年前,多媒体概念也在互联网的加持下诞生。从含义上讲,多媒体不仅包括文本、声音和图像等多种媒体形式,同时承载了更多的信息互动功能。
云计算为媒体行业赋能
近年来,由于5G技术的快速发展,移动网络不断提速,运营商流量资费也随之下调,同时,影视、会议、直播等行业使得高清内容数量快速增加,内容质量持续提升,内容类型不断丰富,再加上AIGC热潮持续升温,使得多媒体技术以及整个行业进入一个快速发展的阶段。据IDC报告显示,2022年,全球每秒产生3.4PB数据,预计到2027年,这个规模将扩大到9.2PB每秒,企业级数据占总数据的比例将增长至76%,其中媒体、专业服务、零售、金融为主要分布领域。
多媒体数据的产生和运营流程主要包括:采集→传播→用户浏览→内容反馈/互动→运营优化等。其中,采集、传播流程会涉及到视频存储与分发,如社交媒体平台、在线视频媒体平台通常有大量UGC、PGC上传的短视频需要存储,数据每天都在增长,且增速很快,单体客户存储量在数PB到数EB级别。存储设备作为源站进行数据分发,需要提供大吞吐能力的支撑,单个客户需要的吞吐能力,在Gbps到Tbps级别。此外,由于终端用户分散,在跨洋、跨省的上传和下载场景下,需要为终端用户提供迅捷的数据访问体验。
云计算的出现及其快速创新的能力已经基本消除了时间、距离和存储空间的障碍,为全球多媒体行业创造了无限可能性。 不管是多媒体企业,还是在实际中会应用到多媒体数据的企业,都无需兴建专门的基础设施或投入大量资本,即可建立高效的数据支撑系统,并无需考虑扩容的问题。基于云的视频流媒体解决方案使用量的日益增长也在帮助市场成长,凭借先进的数据存储、内容访问和网络分发等功能,云可提供快速访问、流畅处理以及低时延和高并发视频直播、远程协作、多媒体管理等解决方案。
多媒体数据存储与分发方案
在这样的背景下,阿里云推出多媒体数据存储与分发解决方案,该方案融合对象存储OSS、内容分发CDN 、智能媒体管理IMM等产品能力,解决客户多媒体数据存储、处理、加速、分发等业务问题,进而实现低成本、高稳定性的业务目标。
对象存储OSS传输加速是专为云存储互联网上传、下载加速而设计的,通过智能调度的系统、优化的传输链路、调优的协议栈与传输算法,并深度结合OSS服务端的配套策略,提供端到端的加速方案。OSS利用全球分布的云机房,将全球各地用户对客户存储空间的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议,来访问客户的存储空间。
阿里云CDN产品将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
阿里云智能媒体管理IMM,提供针对媒体数据的高级、智能管理服务。具有与平台无关的RESTful API接口,为阿里云上的非结构化存储数据(如对象存储OSS中的视频、图片、文档等数据)提供快捷的数据处理通道,比如格式转换,图片、视频的编辑处理,以及人工智能的价值数据提取和检索(例如,标签识别、人脸分组)。
方案优势包括:
-
更好的弹性:资源弹性扩展,提供大容量和高带宽吞吐的能力,满足客户业务快速增长需求。
-
更好的访问体验:就近数据上传下载,配合阿里云各种网络加速等能力,提升客户访问体验。
-
更好的数据可靠性和可用性:同城冗余多中心,为客户提供更高的可靠性和可用性SLA。
方案详情:https://www.aliyun.com/solution/tech-solution/mdsad
一键部署
一键部署基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,ROS模板已定义好脚本。
操作步骤
1. 一键部署资源。
-
单击一键部署,并选择地域。
-
在配置模板参数页面修改资源栈名称,配置OSS Bucket和Domain,然后单击创建开始一键配置。
-
当资源栈信息页面的状态显示为创建成功时表示一键配置完成。
2. 开启CDN缓存自动刷新。
在OSS管理控制台的域名管理页签,打开目标域名右侧的CDN缓存自动刷新开关,(在全屏模式下)选择所有支持的操作,然后单击确定。
3. 绑定IMM项目。
-
登录OSS管理控制台。
-
在左侧导航栏,单击Bucket列表,然后单击创建的examplebucket。
-
在左侧导航栏,选择数据处理。
-
单击媒体处理,然后在弹出绑定页面单击Bucket绑定IMM project按钮。
-
在绑定智能媒体项目对话框的IMM配置区域,选择创建新的Project,输入Project的名称,然后单击确定。
4. 配置证书加密访问(可选)
如果您需要实现全网数据加密传输,您可以上传自定义证书或将已经托管在阿里云SSL证书服务的证书部署至CDN平台,从而启用HTTPS加速服务。本教程以托管在阿里云SSL证书服务的证书为例。在执行以下步骤前,您需要购买SSL证书,详情请参见购买SSL证书。
-
登录CDN控制台。
-
在左侧导航栏,单击域名管理。
-
在域名管理页面,单击目标域名操作列的管理。
-
在指定域名的左侧导航栏,单击HTTPS配置。
-
在HTTPS证书区域,单击修改配置。
-
在HTTPS设置对话框,打开HTTPS安全加速开关。
当您打开HTTPS安全加速开关时,系统弹出确认开启HTTPS界面,该操作单独计费,您可以根据所需选择是否开启。HTTPS计费标准请参考HTTPS请求数/动态HTTP请求数。
-
配置证书相关参数。
项目 |
说明 |
示例值 |
证书来源 |
证书来源包含以下两种,两种证书之间可以相互切换。
|
云盾(SSL)证书中心 |
证书名称 |
选择证书的名称。 |
cert-9687672 |
-
单击确定,完成配置。
验证及清理
方案验证
完成了多媒体数据加速分发配置后,您可以通过加速域名访问OSS上的多媒体资源。
-
向OSS上传视频。
-
登录OSS管理控制台。
-
在顶部菜单栏,选择华东1(杭州)地域。
-
单击Bucket列表,然后单击目标Bucket名称。
-
在左侧导航栏,选择文件管理 > 文件列表。
-
在文件列表页面,单击上传文件,根据页面提示上传srcexample.mp4。
-
通过CDN加速域名访问通过IMM转码后的视频。
-
通过IMM对上传的视频进行转码,并生成视频链接。
# -*- coding: utf-8 -*- import base64 import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider
从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
填写自定义域名,例如example.com。
cname = ‘http://example.com’
指定Bucket名称,例如examplebucket。
bucket_name = ‘examplebucket’
指定原视频文件名称。
source_key = ‘srcexample.mp4’
指定处理后视频文件名称。
target_key = ‘destexample.mp4’
填写Bucket名称,并设置is_cname=True来开启CNAME。CNAME是指将自定义域名绑定到存储空间。
bucket = oss2.Bucket(auth, cname, bucket_name, is_cname=True)
对srcexample.mp4进行视频转码。转码输出媒体文件容器为mp4,视频流格式为H.265,example,帧率为30 fps,视频码率为2 Mbps,音频编码格式为aac,音频码率为100 Kbps,并禁用字幕流。
style = ‘video/convert,f_mp4,vcodec_h265,s_640x480,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1’
process = “{0}|sys/saveas,o_{1},b_{2}”.format(style,
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_key))).replace(‘=’, ‘’),
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(bucket.bucket_name))).replace(‘=’, ‘’))调用异步流媒体处理接口。
result = bucket.async_process_object(source_key, process)
设置签名URL的有效期,单位为秒。
expires = 3600
生成签名URL。
signed_url = bucket.sign_url(‘GET’, target_key, expires)
打印签名URL。
print(signed_url)
生成的转码后的视频链接示例如下:
http://example.com/destexample1.mp4?OSSAccessKeyId=LTAI5tJHezdULrXcczCW****&Expires=1694750028&Signature=TtD6AXimoudXc5bB4L726j2D5QU%3D
-
由于视频转码需要一定的时间,等待3分钟后,在浏览器访问生成的转码后的视频链接。
清理资源
在本方案中,您创建了1个CDN加速、1个OSS Bucket、智能媒体存储服务IMM项目。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:
-
一键删除OSS Bucket和CDN加速。
-
登录ROS控制台。
-
在左侧导航栏,选择资源栈。
-
在资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除。
-
在删除资源栈对话框,选择删除方式为释放资源,然后单击确定,根据提示完成资源释放。
登录智能媒体管理IMM控制台,在项目列表页面,单击创建的IMM项目。在左侧导航栏,选择删除项目,然后单击删除项目,根据页面提示删除IMM项目。
在本文下方留言点赞量TOP5的用户可获得【阿里云开发者定制鼠标垫】一个哦(款式随机)~截止日期:6月30日24时