目前手頁直播,主要方案有如下幾種:1,基于hls切片直播,前前是應(yīng)用的主流,服務(wù)器可以選fms,wowza,nginx,srs之類優(yōu)點(diǎn):集成方便,支持度高,兼容性好,主流手都支持,是目前直播技術(shù)主流。缺點(diǎn):延時(shí)大,一般服務(wù)器可以控制切片時(shí)長(延時(shí)可以控制在15-30秒之間)2,基于瀏覽器mse技術(shù),目前端技術(shù)上有B站的flv解碼器。后端技術(shù)srs之類。優(yōu)點(diǎn):集成方便,兼容性一般,原有技術(shù)平臺(tái)可以保留,延時(shí)可以控制在10秒內(nèi)缺點(diǎn):(主要是部分瀏覽器不支持mse,),目前iOS 內(nèi)不支持,延時(shí)稍大。注:有人用h264的解碼,代替flv,效過接近。3,基于webrtc技術(shù),目前只有wowza支持。優(yōu)點(diǎn):延時(shí)少缺點(diǎn):兼容性差,目前ios不支持,原技術(shù)方案要調(diào)整,項(xiàng)目改造大。4,基于ovmeet技術(shù)自建流服務(wù)直播,優(yōu)點(diǎn):延時(shí)少,超低,可控在1秒內(nèi)(測試在0.2秒左右),兼容好,所有html5手機(jī)平臺(tái)通吃,技術(shù)兼容原平臺(tái)推流rtmp,rtsp,rtp。缺點(diǎn):要自建流服務(wù),
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、龍華網(wǎng)絡(luò)推廣、微信小程序開發(fā)、龍華網(wǎng)絡(luò)營銷、龍華企業(yè)策劃、龍華品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供龍華建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com
html5是網(wǎng)頁代碼的標(biāo)準(zhǔn),跟視頻傳輸協(xié)議沒一分錢的關(guān)系。
html5支持的視頻格式是H.264,html5之前的網(wǎng)頁代碼是不支持視頻的。
網(wǎng)頁上能看到視頻是因?yàn)闉g覽器安裝了插件,比如flashplayer、Windows Media Player、RealPlayer、快播、百度影音等。
用什么傳輸協(xié)議是看插件支持什么協(xié)議。
你用的是flashplayer,如果要播放的話,就必須為flv的流媒體吧。 如果你要播放mp4,那么就要用htm5的播放形式, jwplayer應(yīng)該有html5的版本的。具體我也不是很清楚,給你參考一下。
你用的是flashplayer,如果要播放的話,就必須為flv的流媒體吧。 如果你要播放mp4,那么就要用htm5的播放形式, jwplayer應(yīng)該有html5的版本的。具體我也不是很清楚,給你參考一下。
rtsp流在主流瀏覽器并不支持直接播放。比如大華的視頻流:rtsp://admin:123456@
192.168.10.129/cam/realmonitor?channel=1subtype=0,用vlc可以直接播放。但在瀏覽器會(huì)報(bào)ERR_UNKNOWN_URL_SCHEME。那如何在瀏覽器中播放呢。
以下列出幾種方案。
1、安裝插件(chrome最新版基本都不支持)
類如:kurento,vlc插件(谷歌瀏覽器版本41以下),vgx插件(不支持高版本,chrome72.0版本可用)等。
2、安裝軟件(中間件,基本都付費(fèi))
類如:Appemit(調(diào)用vlc插件播放rtsp),可以免安裝的,目前只能windows,免費(fèi)版會(huì)有提示。
猿大師中間件(底層調(diào)用VLC的ActiveX控件,實(shí)現(xiàn)在主流瀏覽器網(wǎng)頁中內(nèi)嵌播放多路RTSP的實(shí)時(shí)視頻流),中間件收費(fèi)的。
PluginOK(牛插)中間件。底層調(diào)用ActiveX控件VlcOcx.dll。(商業(yè)用途需付費(fèi)使用)
3、服務(wù)器拉流轉(zhuǎn)發(fā)及協(xié)議轉(zhuǎn)換
示意圖如下所示:
推流--------------服務(wù)器轉(zhuǎn)發(fā)--------------拉流
方法一覽:
a,vlc軟件串流到http協(xié)議 ,網(wǎng)頁顯示幾個(gè)視頻需啟動(dòng)幾個(gè)vlc,只適合應(yīng)急場景。
b,html5 + websocket_rtsp_proxy 實(shí)現(xiàn)視頻流直播 ,基于MSE(Media Source Extensions,W3C),擴(kuò)展H5的功能。
步驟:服務(wù)器安裝streamedian服務(wù)器,客戶端通過video標(biāo)簽播放。
原型圖:
價(jià)格:
c.基于nginx的rsmp轉(zhuǎn)發(fā)
基于nginx實(shí)現(xiàn)rtmp轉(zhuǎn)化,用flash實(shí)現(xiàn)播放。由于flash目前大多瀏覽器默認(rèn)禁用,不推薦此方式。
步驟:安裝ffmpeg工具,安裝nginx。
另外nginx-rtmp-module也支持HLS協(xié)議,可以搭建基于hls的直播服務(wù)器。
d.rtsp轉(zhuǎn)hls播放,通過ffmpeg轉(zhuǎn)碼
步驟:安裝ffmpeg工具,ffmpeg轉(zhuǎn)碼。
形如:
ffmpeg -i "rtsp://admin:123456@192.168.10.129/cam/realmonitor?channel=1subtype=0" -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 "D:/hls/test.m3u8"
缺點(diǎn)是直播流延時(shí)很大,對實(shí)時(shí)要求比較高的不滿足要求。
案例:基于EasyDarwin拾建轉(zhuǎn)碼服務(wù)器。參考地址:
通過存儲(chǔ)的m3u8去讀取。
e.websocket代理推送,F(xiàn)FMPEG轉(zhuǎn)碼
此方法與a,b類似。但更實(shí)用。
以下提供兩種方案:
(1)Gin+WebSocket+FFMPEG實(shí)現(xiàn)rtsp轉(zhuǎn)碼,參考:
通過FFMPEG把rstp轉(zhuǎn)成http,ginrtsp作為轉(zhuǎn)發(fā)服務(wù)器,但需要自己寫相應(yīng)接口,需要了解go語言。
(2)node + ffmpeg + websocket + flv.js,參考:
步驟:在node服務(wù)中建立websocket;通過fluent-ffmpeg轉(zhuǎn)碼,將RTSP 流轉(zhuǎn)為flv格式;通過flv.js連接websocket,并對獲取的flv格式視頻數(shù)據(jù)進(jìn)行渲染播放。
import WebSocket from 'ws'import webSocketStream from 'websocket-stream/stream'import ffmpeg from 'fluent-ffmpeg'// 建立WebSocket服務(wù)const wss = new WebSocket.Server({ port: 8888, perMessageDeflate: false })// 監(jiān)聽連接wss.on('connection', handleConnection)// 連接時(shí)觸發(fā)事件function handleConnection (ws, req) {? // 獲取前端請求的流地址(前端websocket連接時(shí)后面帶上流地址)? const url = req.url.slice(1)? // 傳入連接的ws客戶端 實(shí)例化一個(gè)流? const stream = webSocketStream(ws, { binary: true })? // 通過ffmpeg命令 對實(shí)時(shí)流進(jìn)行格式轉(zhuǎn)換 輸出flv格式? const ffmpegCommand = ffmpeg(url)? ? .addInputOption('-analyzeduration', '100000', '-max_delay', '1000000')? ? .on('start', function () { console.log('Stream started.') })? ? .on('codecData', function () { console.log('Stream codecData.') })? ? .on('error', function (err) {? ? ? console.log('An error occured: ', err.message)? ? ? stream.end()? ? })? ? .on('end', function () {? ? ? console.log('Stream end!')? ? ? stream.end()? ? })? ? .outputFormat('flv').videoCodec('copy').noAudio()? stream.on('close', function () {? ? ffmpegCommand.kill('SIGKILL')? })? try {? ? // 執(zhí)行命令 傳輸?shù)綄?shí)例流中返回給客戶端? ? ffmpegCommand.pipe(stream)? } catch (error) {? ? console.log(error)? }}
優(yōu)點(diǎn)全部基于js。前端即可搞定。
參考:
有的,在瀏覽器上播放m3u8的視頻地址有兩種方式:
一、html的video標(biāo)簽的方式,這種方式播放很簡單:
!DOCTYPE hmtl
html
head
titlethe5fire m3u8 test/title
/head
body
video controls autoplay
source src="../v1d30/posts/2014/barcelona/barcelona.m3u8"
/video
/body
/html
二、通過開源的swfobject.js以及兩個(gè)flash組件:OSMF和HLSProvider來播放,代碼如下:
!DOCTYPE html
html
head
titlethe5fire m3u8 test/title
script src="../staticfile/swfobject.js"/script
/head
body
div id="player"
/div
script
var flashvars = {
// M3U8 url, or any other url which compatible with SMP player (flv, mp4, f4m)
// escaped it for urls with ampersands
src: escape(""),
// url to OSMF HLS Plugin
plugin_m3u8: "",
};
var params = {
// self-explained parameters
allowFullScreen: true,
allowScriptAccess: "always",
bgcolor: "#000000"
};
var attrs = {
name: "player"
};
swfobject.embedSWF(
// url to SMP player
"",
// div id where player will be place
"player",
// width, height
"800", "485",
// minimum flash player version required
"10.2",
// other parameters
null, flashvars, params, attrs
);
/script
/body
/html
通過嵌入以上代碼就可以播m3u8了。
標(biāo)題名稱:html5播放rtsp,HTML5視頻播放器代碼
本文路徑:http://jinyejixie.com/article10/dsseigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制網(wǎng)站、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、全網(wǎng)營銷推廣、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)