EasyDSS视频点播服务器实现多分辨率/多码率无缝切换的办法
EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码、点播、直播、检索、回放、录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成的工作。
其中,点播功能主要包含:上传、多分辨率转码、分发。直播功能,主要包含:直播、录像、检索、回放、下载等,直播支持RTMP输入,RTMP/HLS/HTTP-FLV的分发同步输出;录像支持自定义保存时长、录像天数、检索及下载。提供丰富的二次开发接口,基于JSON的封装及HTTP调用。提供播放鉴权、推流鉴权等安全保证。提供用户及相关权限管理配置。
在流媒体音视频点播服务当中,我们经常会遇到几种场景需求:
- 视频网站、党政宣传门户
- 在线教育、精品课堂
- 短视频点播
EasyDSS视频点播服务器的多码率/多分辨率/多清晰度切换功能
在之前的博客《EasyDSS视频点播服务器实现的多码率点播功能的说明》EasyDSS视频点播服务器已经加入了单个视频文件多分辨率切片点播的功能,今天主要捋一下在调用EasyDSS的多分辨率、多清晰度点播切换的时候,如果控制画面的切换,尽可能地去做到无缝切换、无感知切换的效果,当有EasyDSS的用户在“EasyDSS流媒体服务器”QQ群 提出这个问题的时候,我第一个想法就是我们在做EasyNVR无插件直播和录像的时候,对录像回放时间轴的效果:
这里的时间轴可以任意Seek录像,这里的录像模式也跟点播的视频结构是一样的,都是采用的HLS的方式,那么EasyPlayer.js播放器带有的播放Seek接口,就可以直接应用于EasyDSS点播服务器的多分辨率、多清晰度的切换中来:
- 第一步:当我们选择分辨率切换时,再菜单切换的瞬间,上层控制脚本需要记住当前播放的时间点t1;
- 第二步:暂停当前播放进度,例如暂停播放http://demo.easydss.com:10080/vod/720p.m3u8;
- 第三步:播放地址切换到新的分辨率,并带上seek的时间,例如:http://demo.easydss.com:10080/vod/1080p.m3u8?time=t1;
- 第四步:启动播放;
那么整个过程,我们就在很快的时间内,实现了分辨率、清晰度的切换,给用户带来一个非常好的感官效果;
当然,我们也可以采用m3u8自带的多码率格式形式,在一个m3u8中即可实现多种分辨率的切换,而不需要任何暂停的过程,效果达到腾讯视频中视频清晰度切换的效果,例如:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://example.com/audio-only.m3u8
三. EasyDSS点播服务器搭建资源
【点播版本在线演示:http://demo.easydss.com:10080/login.html?p=3】
【直播版本在线演示:http://demo.easydss.com:10080/login.html?p=1】
【旗舰版本在线演示:http://demo.easydss.com:10080/login.html】
【在线接口:http://demo.easydss.com:10080/apidoc/】
获取更多信息
QQ交流群:560148162
WEB:www.easydss.com
Copyright © EasyDSS.com 2012-2018
EasyDSS视频点播服务器实现多分辨率/多码率无缝切换的办法的更多相关文章
- EasyDSS视频点播服务器实现的多码率点播功能的说明
EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码.点播.直播.检索.回放.录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成 ...
- 采用EasyDSS视频点播服务器搭建企业私有化的音视频多媒体、短视频、视频服务网站与管理后台
最近有越来越多的用户咨询关于视频点播的功能,主要需求就是集中于如何搭建专属的私有化视频点播平台: 实现的功能类似于,对应自身拥有的视频文件,需要发布到一个网站,其他用户都可以实现点播观看. 针对于类似 ...
- EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略
EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...
- ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/74783269 需求 在做EasyDSS开发时,总 ...
- Nginx搭建flv视频点播服务器
Nginx搭建flv视频点播服务器 前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看 ...
- Windows环境下用jwplayer+Nginx搭建视频点播服务器
flv视频可以采用两种方式发布: 一.普通的HTTP下载方式 二.基于Flash Media Server或Red5服务器的rtmp/rtmpt流媒体方式. 多数知名视频网站都采用的是前一种方式. 两 ...
- EasyDSS流媒体服务器Linux emerg getpwnam("xxx") failed解决办法
本文转自EasyDarwin开源团队Alex的博客:http://blog.csdn.net/cai6811376/article/details/73770943 EasyDSS 流媒体服务器是什么 ...
- EasyDSS流媒体服务器出现no compatible source was found for this media问题的解决
在EasyDSS流媒体服务器的客户反馈中,我们遇到这样一个现象,在chrome中经常会出现RTMP/HLS流无法播放的问题: 这个问题复现的几率比较低,因为chrome禁止了flash的加载,这也从另 ...
- EasyDSS流媒体服务器软件支持HTTPS-启用https服务申请免费证书
EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像, 直播支持RTMP ...
随机推荐
- http://blog.csdn.net/emoven/article/details/12999265
http://blog.csdn.net/emoven/article/details/12999265
- Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)
Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4) 一.安装CRS补丁 在安装CRS之前,须要安装补丁p6718715_10203_AIX64-5L,否则在安装时会出现 ...
- 【Hadoop】Hadoop MR 自定义排序
1.概念 2.代码示例 FlowSort package com.ares.hadoop.mr.flowsort; import java.io.IOException; import org.apa ...
- Hadoop之HDFS详解
1.HDFS的概念和特性 它是一个文件系统,其次是分布式的 重要特性: 1).HDFS中的文件在物理上是分块存储(block),新版默认128M 2).客户端通过路径来访问文件,形如:hdfs://n ...
- 怎么windows10下设置始终以管理员身份运行
怎么windows10下设置始终以管理员身份运行 学习了:https://jingyan.baidu.com/article/e2284b2b6e6df8e2e7118d7a.html 可以对快捷方式 ...
- caffe卷积层代码阅读笔记
卷积的实现思想: 通过im2col将image转为一个matrix,将卷积操作转为矩阵乘法运算 通过调用GEMM完毕运算操作 以下两个图是我在知乎中发现的,"盗"用一下,确实非常好 ...
- html 后台页面布局
<!DOCTYPE html> <html lang="en"> <head> <title></title> < ...
- 微信小程序 - 获取用户信息的几种方式
1. 老接口(上线使用-测试用button先获取用户信息) // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, ses ...
- ES6 动态计算属性名
在ES5之前,如果属性名是个变量或者需要动态计算,则只能通过 对象.[变量名] 的方式去访问. <script type="text/javascript"> var ...
- list集合转换成json类型
public String gettext(HttpServletRequest request,HttpServletResponse response){ List<xuanhuan_> ...