Jessibuca是一款開源的純H5直播流播放器,通過Emscripten將音視頻解碼庫編譯成Js(ams.js/wasm)運行于瀏覽器之中。兼容幾乎所有瀏覽器,可以運行在PC、手機、微信中,無需額外安裝插件。
序號 | 維度 | 詳情 |
---|
1 | 軟件類型 | Web多媒體播放器 |
2 | 授權(quán)協(xié)議 | GPL |
3 | 操作系統(tǒng) | 跨平臺 |
4 | 開發(fā)語言 | C/C++ JavaScript HTML/CSS |
- 支持解碼H.264視頻(Baseline, Main, High Profile全支持,支持解碼B幀視頻)
- 支持解碼H.265視頻(flv id == 12)
- 支持解碼AAC音頻(LC,HE,HEv2 Profile全支持)
- 可設(shè)置播放緩沖區(qū)時長,可設(shè)置0緩沖極限低延遲(網(wǎng)絡(luò)抖動會造成卡頓現(xiàn)象)
- 程序精簡,經(jīng)CDN加速,GZIP壓縮(實際下載500k),加載速度更快
- 同時支持http-flv和websocket-flv協(xié)議以及websocket-raw私有協(xié)議(裸數(shù)據(jù),傳輸量更小,需要搭配Monibuca服務(wù)器) 注:以http-flv請求時,存在跨域請求的問題,需要設(shè)置access-control-allow-origin, websocket-flv默認不存在此問題
- 支持HTTPS/WSS加密視頻傳輸,保證視頻內(nèi)容傳輸安全
自動播放http-flv格式
container = .getElementById("");
jessibuca = Jessibuca({ container, : "" ,:});
jessibuca.onLoad = () {
.play("")
}
程序控制播放websocket-raw格式
播放
container = .getElementById("");
jessibuca = Jessibuca({ container, : "" ,:});
play(){
jessibuca.play("")
}
- obj 存放emscripten編譯好的各種解碼庫的字節(jié)碼庫
- public 存放編譯輸出的js和wasm文件以及renderer.js
- thirdparty 各種第三方解碼庫的代碼(已修改)和編譯腳本
編譯命令是python make.py 加上參數(shù)構(gòu)成
參數(shù)包括
- -v 視頻解碼庫,有效值為ff(ffmpeg)、libhevc、libde265 如果不傳參數(shù)代表使用avc庫(只支持h264 的baseline)
- -a 音頻解碼庫,有效值為mp3、speex、aac,如果不傳參數(shù)則無音頻解碼(ffmpeg自帶aac解碼)
- --wasm 表示編譯成WebAssembly格式
- -o 代表輸出文件路徑,默認值是public/Jessibuca.js
python make.py -v ff -o public/ff.js
avc-mp3組合
python make.py -a mp3 -o public/avc_mp3.js
libhevc-aac組合
python maek.py -v libhevc -a aac -o public/h265_aac.js