开源软件丨H5 直播流播放器 Jessibuca
作者:admin浏览数:2020-08-16 18:13:05
Jessibuca是一款开源的纯H5直播流播放器,通过Emen将音视频解码库编译成Js(ams.js/wasm)运行于浏览器之中。兼容几乎所有浏览器,可以运行在PC、手机、微信中,无需额外安装插件。
软件基本信息
序号 | 维度 | 详情 |
---|---|---|
1 | 软件类型 | Web多媒体播放器 |
2 | 授权协议 | GPL |
3 | 操作系统 | 跨平台 |
4 | 开发语言 | C/C++ Java HTML/CSS |
特性
支持解码H.264视频(Baseline, Main, High Profile全支持,支持解码B帧视频)
支持解码H.265视频(flv id == 12)
支持解码AAC音频(LC,HE,HEv2 Profile全支持)
支持解码MP3音频以及Speex音频格式
可设置播放缓冲区时长,可设置0缓冲极限低延迟(网络抖动会造成卡顿现象)
支持智能不花屏丢帧,长时间播放绝不累积延迟。
可创建多个播放实例
程序精简,经CDN加速,GZIP压缩(实际下载500k),加载速度更快
同时支持http-flv和websocket-flv协议以及websocket-raw私有协议(裸数据,传输量更小,需要搭配Monibuca服务器) 注:以http-flv请求时,存在跨域请求的问题,需要设置access-control-allow-origin, websocket-flv默认不存在此问题
支持HTTPS/WSS加密视频传输,保证视频内容传输安全
手机浏览器内打开视频不会变成全屏播放
使用方法
自动播放http-flv格式
<divid="container"style="width:800px;height:600px"></div>
< src="./renderer.js"></>
<>
varcontainer = document.getElementById(" container");
varjessibuca = newJessibuca({ container, decoder: " ff.js" , videoBuffer: 0.2});
jessibuca. = function{
this.play(" http://localhost/live/user1.flv")
}
</>
程序控制播放websocket-raw格式
<divid="container"style="width:800px;height:600px"></div>
< src="./renderer.js"></>
<buttononclick="play">播放 </button>
<>
varcontainer = document.getElementById(" container");
varjessibuca = newJessibuca({ container, decoder: " ff.js" , videoBuffer: 0.2});
functionplay{
jessibuca.play(" ws://localhost/live/user1")
}
</>
源码目录结构
obj 存放emen编译好的各种解码库的字节码库
public 存放编译输出的js和wasm文件以及renderer.js
thirdparty 各种第三方解码库的代码(已修改)和编译脚本
编译
编译命令是python make.py 加上参数构成
参数包括
-v 视频解码库,有效值为ff(ffmpeg)、libhevc、libde265 如果不传参数代表使用avc库(只支持h264 的baseline)
-a 音频解码库,有效值为mp3、speex、aac,如果不传参数则无音频解码(ffmpeg自带aac解码)
--wasm 表示编译成WebAssembly格式
-o 代表输出文件路径,默认值是public/Jessibuca.js
示例: ffmpeg(h264-aac)
python make.py -vff -opublic/ff.js
avc-mp3组合
python make.py -amp3 -opublic/avc_mp3.js
libhevc-aac组合
python maek.py -vlibhevc -aaac -opublic/h265_aac.js
PS:更多关于 Jessibuca 的信息及 源码下载,请在“开源中国”公众号对话框回复关键词:0816
热门评论