1. 程式人生 > >EasyDSS視訊點播伺服器實現多解析度/多位元速率無縫切換的辦法

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