开发者社区 问答 正文

使用媒体处理后的视频生成很多ts文件和m3u8文件 怎么播放呢

使用媒体处理后的视频生成很多ts文件和m3u8文件 怎么播放呢 需要怎么获得播放地址呢  放在自己网站播放

展开
收起
游客htpmggkyyns36 2019-03-15 19:58:53 1635 分享 版权
阿里云 AI 助理回答

要播放通过阿里云媒体处理生成的包含多个 .ts 文件和 .m3u8 文件的视频,您需要按照以下步骤操作。这些步骤涵盖了如何获取播放地址以及如何在自己的网站上实现播放。


1. 获取播放地址

播放地址可以通过以下两种方式获取:

方式一:通过播放地址直接播放

  • 适用场景:适用于提交转码作业后生成的输出视频文件,具有明确的输出地址。
  • 操作步骤
    1. 获取OSS或CDN地址
      • 转码完成后,媒体处理会将 .m3u8 文件和 .ts 文件存储到指定的 OSS Bucket 中。
      • 您可以通过 OSS 控制台或 API 获取 .m3u8 文件的完整路径(即播放地址)。
    2. 拼接播放地址
      • 如果使用 CDN 加速,需将 OSS 地址映射为 CDN 域名。例如:
      https://your-cdn-domain.com/path/to/your-video.m3u8
      
      • 如果不使用 CDN,则直接使用 OSS 的外网访问地址:
      https://your-bucket-name.oss-cn-region.aliyuncs.com/path/to/your-video.m3u8
      
    3. 鉴权设置(可选):
      • 如果您的视频需要保护,可以通过设置签名 URL 来实现鉴权。具体方法请参见“播放鉴权”部分。

方式二:通过媒体ID播放

  • 适用场景:适用于使用媒体工作流生成的多清晰度、多格式视频。
  • 操作步骤
    1. 获取媒体ID
      • 使用 QueryMediaList 接口查询视频的媒体 ID(MediaId)。
    2. 生成安全令牌
      • 搭建令牌服务,颁发 MtsHlsUriToken
      • 调用 KMS 解密接口搭建解密服务,提供数据密钥(DK)给播放终端。
    3. 拼接播放地址
      • 将媒体 ID 和安全令牌拼接到播放地址中,返回给播放终端。例如:
      https://your-cdn-domain.com/path/to/your-video.m3u8?MtsHlsUriToken=your-token
      

2. 在自己网站上播放

要在自己的网站上播放视频,您可以选择以下两种方案:

方案一:使用阿里云播放器 SDK

  • 优点
    • 集成简单,支持多清晰度自动切换。
    • 支持加密视频播放。
  • 操作步骤
    1. 集成播放器 SDK
      • 下载并集成阿里云播放器 SDK(支持 Web、Android、iOS 等平台)。
    2. 配置播放地址
      • 将获取的 .m3u8 播放地址传入播放器 SDK。
    3. 启动播放
      • 调用播放器的播放接口即可开始播放。

方案二:使用第三方播放器

  • 适用场景:如果您使用的是非阿里云播放器(如 Video.js、hls.js 等)。
  • 操作步骤
    1. 手动拼接 MtsHlsUriToken
      • 如果视频是加密的,需自行拼接 MtsHlsUriToken 到播放地址中。
    2. 加载播放器
      • 在网页中引入第三方播放器库,并配置 .m3u8 文件的播放地址。
    3. 处理解密逻辑(仅限加密视频):
      • 播放器会请求 .m3u8 文件中的 EXT-X-KEY 标签 URI,获取解密密钥。
      • 您需要搭建解密服务,调用 KMS 的 Decrypt 接口解密信封密钥(EDK),并将明文密钥返回给播放器。

3. 注意事项

  • 加密视频播放限制
    • 加密视频必须使用媒体 ID 播放方式,且需通过安全令牌进行鉴权。
  • CDN 加速
    • 建议开启 CDN 加速以提升播放体验。如果使用边转边播功能,也可以结合 CDN 实现加速。
  • 清理 TS 文件
    • 如果存储成本较高,可以定期清理长时间未被观看的 .ts 文件。当 .m3u8 文件再次被请求时,系统会重新生成 .ts 文件。

4. 示例代码

以下是一个简单的 HTML 示例,展示如何使用 hls.js 播放 .m3u8 文件:

<!DOCTYPE html>
<html>
<head>
  <title>视频播放示例</title>
  <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
</head>
<body>
  <video id="video" controls width="640" height="360"></video>
  <script>
    var video = document.getElementById('video');
    var videoUrl = 'https://your-cdn-domain.com/path/to/your-video.m3u8';

    if (Hls.isSupported()) {
      var hls = new Hls();
      hls.loadSource(videoUrl);
      hls.attachMedia(video);
      hls.on(Hls.Events.MANIFEST_PARSED, function() {
        video.play();
      });
    } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
      video.src = videoUrl;
      video.addEventListener('loadedmetadata', function() {
        video.play();
      });
    }
  </script>
</body>
</html>

通过以上步骤,您可以成功播放通过阿里云媒体处理生成的 .m3u8.ts 文件,并将其嵌入到自己的网站中。

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