LM視頻中間件支持對(duì)接入的??怠⒋笕A、GB28181、RTSP、ISUP/EHOME等設(shè)備碼流進(jìn)行轉(zhuǎn)換,提供HLS、Websocket-flv, http-flv, webrtc,rtsp流輸出。
公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出江川免費(fèi)做網(wǎng)站回饋大家。視頻編碼支持:
音頻編碼支持:
實(shí)時(shí)視頻的API調(diào)用也比較簡(jiǎn)單,本文中只針對(duì)API調(diào)用后需要對(duì)URL進(jìn)行拼接做下說(shuō)明。
說(shuō)明:
因目前H5瀏覽器沒(méi)有支持H265的顯示播放,業(yè)界現(xiàn)在H265的播放都是采用修改FLV格式的視頻編碼,瀏覽器在收到H265時(shí),采用WASM的方式進(jìn)行軟解碼播放,在多路播放時(shí)穩(wěn)定性還待觀察,同時(shí)對(duì)電腦的要求都比較高,并且在移動(dòng)環(huán)境下支持的也不友好,因此我們暫時(shí)使用的是服務(wù)器轉(zhuǎn)碼方案,這樣對(duì)前端的開(kāi)發(fā)門檻比較低
獲取實(shí)時(shí)流視頻地址API中 type 參數(shù)根據(jù)采用H5播放器自行選擇。
視頻協(xié)議 | 時(shí)延 | 利弊 |
---|---|---|
webrtc | <500毫秒 | H5里時(shí)延最低,強(qiáng)烈推薦使用 |
HLS | 6-15秒 | 時(shí)延高, |
http-flv | <1秒 | 瀏覽器限制大6個(gè)窗口 |
websocket-flv | <1秒 | 時(shí)延一般 |
RTSP | <200毫秒 | 時(shí)延低,不適合H5播放器 |
參數(shù) subString 默認(rèn)為false,獲取主碼流的播放地址,true為獲取輔碼流播放地址,輔碼流的占用帶寬小,但是視頻分辨率比主碼流低
視頻返回的參數(shù) url 在請(qǐng)求不同的視頻協(xié)議地址時(shí),拼接規(guī)則有所不同,具體參見(jiàn)下表:
視頻協(xié)議 | 拼接后完整的url |
---|---|
webrtc | webrtc://{{ip}}:{{port}}{{url}} |
HLS | http(s)😕/{{ip}}:{{port}}{{url}} |
http-flv | http(s)😕/{{ip}}:{{port}}{{url}} |
websocket-flv | ws(s)😕/{{ip}}:{{port}}{{url}} |
ip : LM視頻中間件訪問(wèn)地址
port : LM視頻中間件訪問(wèn)端口
url : 獲取實(shí)時(shí)流視頻地址API返回的參數(shù) url
注意
相關(guān)播放js文件可咨詢商務(wù)人員獲取
HTTP-FLV& Websocket-flv打開(kāi)視頻
startVideo(data, num) {
let play1 = document.getElementById(num);
data.flvPlayer = flvjs.createPlayer({
type: 'flv',
isLive: true,
hasAudio: true,
hasVideo: true,
url: data.url
},
{
enableWorker:true,
stashInitialSize: 64,
enableStashBuffer: false
});
data.flvPlayer.attachMediaElement(play1);
data.flvPlayer.load();
data.flvPlayer.on('error', err =>{
console.log(err);
});
data.flvPlayer.play();
this.selectVideo(num+1);
data.timerId = setInterval(()=>{
if(!play1.buffered.length){
return
}
var diff = parseFloat(play1.buffered.end(0) - play1.currentTime);
if(diff >= 2) {
play1.playbackRate = 2;
}
else if(diff >= 1.5 && diff< 2) {
play1.playbackRate = 1.3;
}
else if (diff< 1.5 && diff >= 1.2){
play1.playbackRate = 1.2;
}
else if (diff< 1.2 && diff >= 0.5){
play1.playbackRate = 1.1;
}
else if(diff< 0.5 && diff >= 0.2){
play1.playbackRate = 1;
}
else if(diff< 0.2){
play1.playbackRate = 0.5;
}
},500);
}
關(guān)閉視頻
closeVideo_flv(item,index) {
let play = document.getElementById(index);
let e = this.outside[index] ? this.outside[index].flvPlayer : null;
if (!e) {
return;
}
this.selectVideo(index);
e.pause();
e.unload();
e.detachMediaElement();
e.destroy();
clearInterval(this.outside[index].timerId);
this.outside[index].flvPlayer = null;
}
WEBRTC打開(kāi)視頻
startVideo_webrtc(data, num) {
let play1 = document.getElementById(num);
data.flvPlayer = new JSWebrtc_Player(
data.url,
{
video: play1,
autoplay: true,
protocol:window.location.protocol,
hostname: window.location.hostname,
port:window.location.port
});
this.selectVideo(num+1);
}
關(guān)閉視頻
closeVideo_webrtc(item,index) {
let play = document.getElementById(index);
let o = this.outside[index]
if(o.flvPlayer){
o.flvPlayer.destroy();
this.selectVideo(index);
}
o.url = null;
this.outside[index].flvPlayer = null;
}
HLS打開(kāi)視頻
startVideo_hls(data, num) {
let video = document.getElementById(num);
data.html = video.outerHTML;
var hls = videojs(video);
hls.src({ type: "application/x-mpegURL", src: data.url });
hls.load(data.url);
hls.play();
data.flvPlayer = hls;
this.selectVideo(num+1);
}
關(guān)閉視頻
closeVideo_hls(item, index){
let e = this.outside[index] ? this.outside[index].flvPlayer : null;
if (!e) {
return;
}
this.selectVideo(index);
e.dispose();
var myVideoDiv = document.getElementById(this.getId(index));
myVideoDiv.insertAdjacentHTML('afterbegin', this.outside[index].html);
this.outside[index].flvPlayer = null;
}
常見(jiàn)錯(cuò)誤碼result | message | 說(shuō)明 |
---|---|---|
200 | OK | 成功 |
400 | invalid cameraId | 攝像頭ID不存在 |
400 | Device offLine | 設(shè)備離線 |
400 | open failed | 視頻打開(kāi)請(qǐng)求失敗 |
423 | invalid server | 服務(wù)錯(cuò)誤或授權(quán)到期 |
424 | user not login | 用戶未登錄 |
426 | device is sleep | 設(shè)備正在休眠 |
427 | device is goto sleep | 設(shè)備正在進(jìn)入休眠 |
428 | Not found user session | 沒(méi)找到用戶話,重新登陸 |
523 | Can’t find key frame | 沒(méi)找到視頻I幀 |
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧