开发者社区 问答 正文

关于LiveChannel的操作之如何实现PostVodPlaylist?

本接口用来为指定LiveChannel推流生成的,指定时间段内的ts文件生成一个点播用的播放列表(m3u8文件)。

请求语法POST /ChannelName/PlaylistName?vod&endTime=EndTime&startTime=StartTime HTTP/1.1
Date: GMT date
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue





请求参数

名称描述是否必需
ChannelName指定LiveChannel名称,该LiveChannel必须存在。
PlaylistName指定生成的点播播放列表的名称,必须以“.m3u8”结尾。
StartTime指定查询ts文件的起始时间,格式为Unix timestamp。
EndTime指定查询ts文件的终止时间,格式为Unix timestamp。


细节分析

  1. EndTime必须大于StartTime,且时间跨度不能大于1天。
  2. OSS会查询指定时间范围内的所有该LiveChannel推流生成的ts文件,并将其拼装为一个播放列表。


示例



请求示例POST /test-channel/vod.m3u8?vod&endTime=1472020226&startTime=1472020031 HTTP/1.1
Date: Thu, 25 Aug 2016 07:13:26 GMT
Host: test-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: OSS YJjHKOKWDWINLKXv:ABIigvnLtCHK+7fMHLeRlOUnzv0=





返回示例HTTP/1.1 200
content-length: 0
server: AliyunOSS
connection: close
etag: "9C6104DD9CF1A0C4D0CFD21F43905D59"
x-oss-request-id: 57BE9A96B92475920B002359
date: Thu, 25 Aug 2016 07:13:26 GMT



展开
收起
青衫无名 2017-10-23 10:11:42 1888 分享 版权
阿里云 AI 助理回答

功能描述

阿里云对象存储服务(OSS)的PostVodPlaylist接口用于将指定LiveChannel在特定时间段内推流生成的ts文件,自动整合成一个适合点播使用的m3u8播放列表文件。这使得用户能够方便地通过点播方式回看直播内容。

操作步骤

准备工作

  • 开通服务:确保已开通阿里云OSS服务。
  • 配置Bucket与LiveChannel:创建或使用已有的Bucket,并在其中设置好LiveChannel进行推流。

具体操作

  1. 构建请求

    • Endpoint: 使用对应Bucket所在地域的OSS访问域名,例如https://oss-cn-hangzhou.aliyuncs.com
    • HTTP Method: 使用POST方法。
    • URL路径: 构造为/ChannelName/PlaylistName?vod,其中ChannelName是你的LiveChannel名称,PlaylistName是你希望生成的播放列表文件名,需以.m3u8结尾。
    • Query Parameters:
      • vod: 固定参数,表示生成点播播放列表。
      • endTime: 推流结束时间的Unix时间戳(秒)。
      • startTime: 推流开始时间的Unix时间戳(秒),需确保endTime大于startTime,且时间跨度不超过1天。
  2. 添加请求头

    • 必须包含如Host, Date, 以及签名信息Authorization等公共请求头。具体构造方法可参考OSS服务的签名机制和公共请求头文档。
  3. 发送请求:通过HTTP客户端发送上述构造的POST请求到OSS服务。

结果处理

  • 成功响应将返回HTTP状态码200,并可能携带生成的播放列表详情或确认信息。根据实际需求处理返回结果,如保存播放列表URL供后续点播使用。

注意事项

  • 时间戳格式:确保startTimeendTime参数正确无误,遵循Unix时间戳规范。
  • 权限验证:调用接口前确保拥有足够的权限,可通过AccessKey ID和AccessKey Secret进行身份验证。
  • 时间跨度限制:查询的时间范围不能超过1天。
  • 播放列表命名:确保PlaylistName.m3u8为后缀。

示例代码

以下是一个使用Java SDK生成播放列表的示例代码片段:

String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
String bucketName = "yourBucketName";
String liveChannelName = "yourLiveChannelName";
String playListName = "vod.m3u8";
String region = "cn-hangzhou";

// 初始化OSSClient
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 调用PostVodPlaylist接口逻辑此处省略,需根据实际需求构造请求并发送

// 记得关闭client
ossClient.shutdown();

常见问题

  • 如遇网络错误或认证失败,请检查网络连接、AccessKey凭证及Bucket权限设置。
  • 如果生成的播放列表不完整,请检查推流时段是否有数据以及startTimeendTime参数是否准确。

请根据以上指导操作,结合您具体的场景和需求来调用PostVodPlaylist接口生成点播播放列表。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答