阿里云 Aliplayer高级功能介绍(四):直播时移

简介: 时移直播基于常规的HLS视频直播,直播推流被切分成TS分片,通过HLS协议向播放用户分发,用户请求的m3u8播放文件中包含不断刷新的TS分片地址;对于常规的HLS直播而言,TS分片地址及相应的TS文件并不持久化保存,导致当前时间之前的直播视频内容无法回溯;而对于开通了时移功能的HLS直播而言,TS分片地址及相应TS文件会分别在数据库和OSS中持久化保存最长15天,使得回溯从直播开始时间到当前时间之间的视频内容成为可能。

基本介绍

时移直播基于常规的HLS视频直播,直播推流被切分成TS分片,通过HLS协议向播放用户分发,用户请求的m3u8播放文件中包含不断刷新的TS分片地址;对于常规的HLS直播而言,TS分片地址及相应的TS文件并不持久化保存,导致当前时间之前的直播视频内容无法回溯;而对于开通了时移功能的HLS直播而言,TS分片地址及相应TS文件会分别在数据库和OSS中持久化保存最长15天,使得回溯从直播开始时间到当前时间之间的视频内容成为可能。详情参见 直播时移, 播放器的表现为:

3439f2a05bbcdd5e71a7e35805a83627d95c79c7

直播时移在播放器中的表现为可以支持当前时间之前的直播内容的回看,当鼠标放到进度条上面时,会出现负数的时间提示,表示回看之前的几分几秒的视频。

Aliplayer的使用

Aliplayer提供了下面的一些属性支持直播时移的配置:

名称 必选 说明
isLive 值设置为true
liveTimeShiftUrl 时移信息查询URL怎么生成参考直播时移
liveStartTime 直播开始时间
liveOverTime 直播结束时间
liveShiftSource 直播时移hls地址,只有在source为flv直播流是需要设置

基本的代码:

var player = new Aliplayer({
    id: "player-con",
    source: "https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8",
    width: "100%",
    height: "500px",
    autoplay: true,
    isLive: true,
    liveStartTime:"2018/12/25 16:00:00",
    liveOverTime:"2018/12/25 18:00:00",
  }, function (player) {
    console.log("播放器创建成功");
  });
  • 开通直播时移

播放器的直播时移功依赖于阿里云直播服务的直播时移,首先需要到阿里云直播服务里开通,详情参见 直播时移

直播低延迟场景

HLS的延迟比较高,差不多10秒左右, 而flv的延迟基本到3秒左右,因此对于希望低延迟的场景,可以在直播时使用flv地址播放, 切换到时移时使用HLS的地址播放, Aliplayer支持这种模式: source属性指定flv直播地址, liveShiftSource属性指定hls的地址:

{
 source:'http://localhost/live/test.flv', //flv的播放地址
 liveShiftSource:'http://localhost/live/test.m3u8', //支持直播时移的HLS地址
}

另外需要指定recreatePlayer函数回调,用于切换为flv直播时,重新创建播放器:

var player = "";
var create = function(){
   player = new Aliplayer({
      recreatePlayer:function(){
      create();
      },
      .....
     },
     function(player){
      console.log('播放器已经创建');
    });
}

因此完整的代码为:

var player = "";
var create = function(){
   player = new Aliplayer({
      id: "player-con",
      width: "100%",
      height: "500px",
      autoplay: true,
      //直播时移相关的属性
      isLive: true,
      liveStartTime:"2018/12/25 16:00:00",
      liveOverTime:"2018/12/25 18:00:00",
      source:'http://localhost/live/test.flv',
      liveShiftSource:'http://localhost/live/test.m3u8',
      recreatePlayer:function(){
      create();
      },
      .....
     },
     function(player){
      console.log('播放器已经创建');
    });
}

当在回放状态的时候,可以点击Control的"LIVE"图标,可以切换为直播状态:

79b798e0c961a0c3b36f918246ff4b54daaef0be

时移回放地址

当需要区间回放时候,直播服务的播放地址通过添加相关的参数,可以回放指定区间的视频,具体参考:直播时移 但是有一种特殊情况需要说明,如果时移回放的是以前某个区间的视频, 比如当前是17点, 需要回看15点-16点的视频,则可以推荐使用点播模式的地址,结束时间使用"vodend"参数,如果使用直播模式会有下面的问题:

  • duration计算不准确
  • 播放端的卡顿,暂停等操作,会导致直播服务返回的切片列表不准确

比如直播地址为http://domain/app/stream.m3u8, 当使用直播结束时间是,地址格式为:

http://domain/app/stream.m3u8?lhs_start=1&lhs_start_human_s_8=20171024160220&lhs_end_human_s_8=20171024160420"

使用点播结束时间的地址格式为:

http://domain/app/stream.m3u8?lhs_start=1&lhs_start_human_s_8=20171024160220&lhs_vodend_human_s_8=20171024160420"

主要区别结束参数lhs_end_human_s变为lhs_vodend_human_s, 使用点播格式的时间,表示使用点播模式回看,一次返回指定时间段内的所有切片,包含endlist标签。Aliplayer就使用点播模式观看isLive设置为false.

let player = new Aliplayer({
      id: "player-con",
      width: "100%",
      height: "500px",
      autoplay: true,
      //不使用直播
      isLive: false,
      //直播时移的播放地址
      source:'http://localhost/live/test.m3u8?lhs_start=1&lhs_start_human_s_8=20171024160220&lhs_vodend_human_s_8=20171024160420"',
     },
     function(player){
      console.log('播放器已经创建');
    });
目录
相关文章
|
存储 JavaScript 前端开发
js数组高阶函数——includes()方法
js数组高阶函数——includes()方法
2021 0
|
12月前
|
存储 弹性计算 运维
AI 时代下阿里云基础设施的稳定性架构揭秘
十五年磨一剑,稳定性为何是今天的“命门”?
1354 151
|
5月前
|
人工智能 API 数据安全/隐私保护
阿里云新手零基础部署OpenClaw保姆级教程 秒级上线+大模型Kimi K2.5接入全流程
2026年,开源AI智能体工具OpenClaw(曾用名Clawdbot、Moltbot,圈内常称“AI小龙虾”)凭借**轻量化运行、一键云端部署、零代码配置、大模型灵活对接**的特性,成为零基础用户打造私人AI助手的首选工具。它不需要高配本地电脑,依托阿里云轻量服务器就能实现7×24小时不间断运行,既能完成日常问答、长文本解读、代码编写,也能实现文件处理、信息检索、自动化任务执行等实操功能,上手难度极低,完全不用懂服务器运维和编程知识。
1169 1
|
8月前
|
人工智能 算法 安全
集之互动AI创意视频解决方案:商业级可控,让品牌创意从“灵感”直达“落地”
集之互动依托国家备案“无垠大模型”与广告专属控制算法,打造AI创意视频解决方案,实现从脚本到成片的全流程“商业级可控”。面向品牌调性、视觉风格与内容安全,助力企业将创意想象转化为可量化、可复用的营销资产,推动营销进入高效、稳定、安全的AI工业化时代。
508 4
|
7月前
|
存储 人工智能 数据处理
2026年阿里云对象存储OSS最新收费标准价格表:
阿里云OSS按存储、流量、请求等维度收费,核心模式为按量付费与资源包(包年包月),未用功能不计费。主要费用为存储费(标准/低频/归档等类型)和流量费(仅公网流出,分闲忙时计费),另有请求、数据处理等增值费用。开通、上传及内网流量免费,新用户享免费额度,官网提供精准报价。
|
存储 人工智能 NoSQL
【阿里云百炼全栈焕新】DAY1—智能体配置教程-打造抖音小助手
在短视频盛行的时代,抖音已成为内容创作和营销的重要平台。面对海量视频与复杂运营需求,如何高效管理内容成为挑战。阿里云百炼平台提供了解决方案——通过配置智能体打造专属抖音助手,可获取视频信息、提取文案、润色改写,提升效率。本文详解了从开通服务、创建智能体到功能测试的全过程,助你轻松搭建高效短视频运营工具。
3280 2
|
SQL druid Java
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
1065 0
|
安全 前端开发 开发者
CSS3 中 calc()、constant() 和 env() 函数的使用指南
在现代网页设计中,CSS3 的 calc()、constant() 和 env() 函数为开发者提供了强大的工具,帮助实现灵活和响应式的布局。本文将深入探讨这三个函数的定义、用法以及最佳实践,特别是如何利用 calc() 进行动态计算、constant() 的历史背景,以及 env() 在处理设备安全区域中的应用。通过本文,读者将能够更好地理解并运用这些函数,提升网页设计的灵活性与用户体验。
783 0
|
机器学习/深度学习 运维 分布式计算
大数据技术专业就业前景
大数据技术专业就业前景广阔,广泛应用于互联网、金融、医疗等众多行业,助力企业数字化转型。岗位涵盖大数据开发、分析、运维及管理,如大数据工程师、分析师和系统运维工程师等。这些岗位因专业性和稀缺性而享有优厚薪资,尤其在一线城市可达20万至50万年薪。随着技术进步和经验积累,从业者可晋升为高级职位或投身数据咨询、创业等领域,发展空间巨大。
1958 6
|
JSON API C#
C# 通过阿里云 API 实现企业工商数据查询
C# 通过阿里云 API 实现企业工商数据查询