更新时间:2019-09-20 13:32
长视频也称为在线视频,主要以泛娱乐化的影视剧作为载体呈现。随着移动设备和网络的发展,终端用户对视频播放的需求也显个性化和垂直化,不仅适用于泛娱乐内容,同时也有教育、政企培训、融媒体等场景的需求。阿里视频云推出了一站式的解决方案,包含了视频的播放,视频管理等基础能力,同时也具备了业务属性的能力,如弹幕、广告播放等。通过阅读本文可以让您快速了解一个长视频APP所涉及到的相关产品和使用情况,快速搭建长视频视频APP。
该部分内容主要阅读者是客户端开发人员
客户端SDK可帮助您实现视频播放层面的能力。
SDK下载视频播放端可以直接下载阿里视频云播放器SDK单击下载。不需要license授权。
业务代码实现我们本身提供了一套源码作为SDK如何使用的重要参考,如果你想快速上线,也可以直接集成我们的源码。源码下载。Demo编译运行与集成请参考Android长视频解决方案集成和iOS长视频解决方案集成。
该部分内容主要阅读者是服务端开发人员
生产出的视频需要发布到线上供其他用户观看和互动时还需要涉及以下几个服务的配置和开发:
如何使用视频点播服务(VOD)
视频点播(ApsaraVideo VoD,简称VoD)是集视频采集、编辑、上传、媒体资源管理、自动化转码处理(窄带高清TM)、视频审核分析、分发加速于一体的一站式音视频点播解决方案。
业务后台服务(APPServer)—主要讲解阿里云账号权限相关:
长视频 App 需要一台简单的业务服务器,该服务器可以为 App 提供注册、登录、存储用户关系数据、用户和视频关系数据、视频列表、视频上传签名、接受视频点播服务(VOD)的回调信息等能力,您可以将其搭建在 ECS 云服务器上自行开发搭建。
开发者要使用阿里云点播服务Api和客户端SDK,阿里云会对每一次发起的请求根据当前的操作验证用户身份,即该账号是否拥有相应的权限,验证用户身份都需要使用AccessKey。Server层源码下载。Server集成文档。
开通视频点播服务
添加域名
配置RAM(子账号AK)
在使用阿里云服务端API的时候,都需要使用阿里云的AccessKey进行访问,直接使用主AccessKey访问存在较大的安全风险。使用RAM子账号可以帮助您有效避免AccessKey或者密码泄露导致的安全问题。
配置权限时,需要选择“AliyunVODFullAccess”和“AliyunSTSAssumeRoleAccess”两个权限。其中,“AliyunVODFullAccess”权限是用来访问点播服务API的,“AliyunSTSAssumeRoleAccess”权限主要是用来后续获取STS权限。如下图:
配置STS(子账号临时AK)
阿里视频云在客户端产生的视频文件需要上传到云端,此时需要把一个鉴权信息下发到客户端。上一章节中讲到的RAM是永久有效的,不适合在客户端上进行存储和分发,因而阿里视频云需要一个临时有效的AK给客户端调用。具体操作步骤如下:
新建角色
在角色配置向导页面,选择用户角色 > 当前用户,根据提示完成角色创建。
配置角色权限
注意:请按照上图选择视频点播服务的权限。
获取STS(这部分在业务后台服务APPServer中编写)
先看一段代码:
static AssumeRoleResponse assumeRole(String accessKeyId, String accessKeySecret,
String roleArn, String roleSessionName, String policy,
ProtocolType protocolType) throws ClientException {
try {
// 创建一个 Aliyun Acs Client, 用于发起 OpenAPI 请求
IClientProfile profile = DefaultProfile.getProfile(REGION_CN_HANGZHOU, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
// 创建一个 AssumeRoleRequest 并设置请求参数
final AssumeRoleRequest request = new AssumeRoleRequest();
request.setVersion(STS_API_VERSION);
request.setMethod(MethodType.POST);
request.setProtocol(protocolType);
request.setRoleArn(roleArn);
request.setRoleSessionName(roleSessionName);
request.setPolicy(policy);
// 发起请求,并得到response
final AssumeRoleResponse response = client.getAcsResponse(request);
return response;
} catch (ClientException e) {
throw e;
}
}
- accessKeyId和accessKeySecret指RAM中保存下载的AK信息;
- roleArn指角色详情页的Arn值,如下图:
- roleSessionName:自定义,主要用于后续操作审计时使用。
- policy:是对每次获取权限做一次更加细致的权限控制。
String policy = "{\n" +
" \"Version\": \"1\",\n" +
" \"Statement\": [\n" +
" {\n" +
" \"Action\": \"vod:*\",\n" +
" \"Resource\": \"*\",\n" +
" \"Effect\": \"Allow\"\n" +
" }\n" +
" ]\n" +
"}";
获取到的数据下发到网页客户端提供给上传API进行视频文件上传。
在文档使用中是否遇到以下问题
更多建议
匿名提交