EasyDSS视频点播服务器实现多分辨率/多码率无缝切换的办法

EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码、点播、直播、检索、回放、录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成的工作。

其中,点播功能主要包含:上传、多分辨率转码、分发。直播功能,主要包含:直播、录像、检索、回放、下载等,直播支持RTMP输入,RTMP/HLS/HTTP-FLV的分发同步输出;录像支持自定义保存时长、录像天数、检索及下载。提供丰富的二次开发接口,基于JSON的封装及HTTP调用。提供播放鉴权、推流鉴权等安全保证。提供用户及相关权限管理配置。

在流媒体音视频点播服务当中,我们经常会遇到几种场景需求:

  • 视频网站、党政宣传门户
  • 在线教育、精品课堂
  • 短视频点播

EasyDSS视频点播服务器的多码率/多分辨率/多清晰度切换功能

在之前的博客《EasyDSS视频点播服务器实现的多码率点播功能的说明》EasyDSS视频点播服务器已经加入了单个视频文件多分辨率切片点播的功能,今天主要捋一下在调用EasyDSS的多分辨率、多清晰度点播切换的时候,如果控制画面的切换,尽可能地去做到无缝切换、无感知切换的效果,当有EasyDSS的用户在“EasyDSS流媒体服务器”QQ群 提出这个问题的时候,我第一个想法就是我们在做EasyNVR无插件直播和录像的时候,对录像回放时间轴的效果:
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://www.easydss.com】

【点播版本在线演示: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

原文地址:https://www.cnblogs.com/babosa/p/10459846.html