ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Jessibuca Pro 定制化服务全景指南:解码扩展、WebGL 渲染、点播回放与私有格式支持

Jessibuca Pro 定制化服务全景指南:解码扩展、WebGL 渲染、点播回放与私有格式支持 Jessibuca Pro 定制化服务全景指南解码扩展、WebGL 渲染、点播回放与私有格式支持【免费下载链接】jessibucaJessibuca是一款开源的纯H5直播流播放器项目地址: https://gitcode.com/GitHub_Trending/je/jessibucaJessibuca 是一款开源的纯 H5 直播流播放器而Jessibuca Pro是在开源版本基础上面向深度业务场景的商业版本。本文以仓库内 demo/pro-more.md 为骨架系统梳理 Pro 播放器在编码格式、渲染能力、点播回放、录制与私有协议等方面可额外提供的定制化服务并结合仓库内配套文档如 demo/pro.md、demo/player-pro-vod.md、demo/pro-playback-special.md与真实 Demo 页面进行印证。读完本文你将能完整掌握 Jessibuca Pro 定制化能力清单、各能力对应的适用场景、体验 Demo 入口与实现原理为选型与商务评估提供依据。一、定制化服务概述Pro 与开源版的边界Jessibuca Pro在开源版本基础上额外提供了深入业务场景的解决方案解决了一些痛点例如 H.265 的硬解码、SIMD 软解码加速等。而 demo/pro-more.md 专门汇总了Pro 播放器可额外提供的定制化服务——这些能力并非标准 Pro 功能内置而是根据客户的具体需求提供相应的解决方案需要单独咨询与购买。从 demo/pro.md 的开源版与 Pro 差异对照表可以看到Pro 相比开源版在如下维度全面领先编码与解码H.264/H.265 的 WASM 多线程、SIMD、SIMD 多线程解码1080P 及以上MPEG4 软解码AV1 硬解码MP3 音频软解码渲染通道WebGPU canvas 渲染、video 渲染、离屏渲染MSE/WCS 支持 canvas 渲染传输协议HLS、http/ws-mpeg-ts、http/ws-mpeg(ps)、WebTransport、WebRTC、fmp4、裸流、加密流m7s-crypto、国标 SM4、XOR、HLS aes-128-cbc等 20 余种直播格式业务能力点播文件MP4/HLS、回放流GB28181、GA/T 1078、特殊回放流、倍率播放、逐帧播放、电子放大、水印体系、PTZ 云台、AI 识别、语音通讯、NxN 多屏等。而pro-more所讲的定制化服务正是这些能力中需要按客户需求单独定制的部分例如容器内不原生支持的 G711 音频、自定义渲染算法、私有格式解析等。下文按能力域逐一展开。二、编码格式扩展AV1、MP3、Opus 的软/硬解码2.1 AV1 视频流软解码 硬解码Pro 支持av1视频流的硬解码 软解码双通道。在 demo/pro.md 的视频编码格式支持表中AV1硬解码明确标注为支持同时该能力也出现在其他编码格式支持一节与opus一并列入定制清单。从解码架构看Pro 的解码链路遵循硬解码优先、软解码兜底的策略当电脑支持硬解码时优先使用 MSEMediaSource/WebCodecs不支持时降级到 WASM/WASM(SIMD) 软解码从而保证 H.264、H.265 乃至 AV1 都能播放。2.2 MP3 音频流软解码开源版不支持 MP3 音频Pro 支持mp3音频流的软解码。对照 demo/pro.md 的音频编码格式支持表G711A、G711U、AAC、MP3 均为支持状态其中G711A、G711U 不支持 MSE 解码支持 WCS/WASM/WASM(SIMD) 解码MP3 同理走软解码通道。在点播场景下demo/player-pro-vod.md 进一步给出了编码格式约束协议视频 H264视频 H265音频 aac音频 mp3音频 g711a音频 g711uhttp(s)-mp4支持支持支持不支持支持需定制支持需定制http(s)-hls(mp4)支持支持支持不支持支持需定制支持需定制http(s)-hls(ts)支持支持支持支持支持需定制支持需定制也就是说MP3 音频在 HLS-TS 点播中天然支持而在 MP4 / HLS-MP4 容器中不支持这也是容器格式本身的限制。2.3 Opus 编码格式支持除 AV1、MP3 外Pro 还支持opus编码格式视频流的软解码 硬解码列入其他编码格式支持定制项。opus 通常出现在 WebRTC 与 fmp4 音视频流中该定制项可补齐 WebRTC 场景下的音频播放链路。三、自定义 WebGL 渲染从绿幕抠图到 360 度全景Pro 支持基于 WebGL 的自定义渲染管线官方列出的能力包括绿幕抠图图像带绿幕时将绿幕部分抠成透明掩码图透明图像右半部分带掩码图时左半部分显示并抠成透明立方体渲染将视频渲染到立方体表面显示区域放大滤镜人脸追踪指定区域放大显示可配合人脸追踪使用立方体独立渲染形态360 度全景VR 全景视频渲染。这些能力本质上是把解码后的 YUV/RGBA 帧交给 WebGL 着色器做二次处理。仓库中可找到对应的体验 Demo人脸检测/追踪类demo/public/pro/demo-ai-face-detector.html人脸识别打框VR 全景demo/public/pro/demo-vr.html 与 demo/public/pro/play-vod-demo-vr.html分别对应直播流与点播文件的 360° 全景播放渲染通道切换从 demo/public/pro/demo-render-color.html 可以看到 Pro 支持 video/canvas 两种渲染标签canvas 渲染下可选 webgl、webgpu、canvas 三种技术WebGPU 需 Chrome/Edge 113见 demo/pro.md。四、点播支持MP4 / HLS 文件播放与逐帧播放4.1 点播文件支持MP4、HLSPro 点播能力支持MP4 格式点播文件支持 H264 和 H265 编码格式HLS 格式点播文件支持 H264 和 H265 编码格式。配套文档 demo/player-pro-vod.md 补充了各容器细节MP4支持倍率播放与 seek且支持 mp4 文件moov元数据位于文件头或文件尾两种情况见 demo/pro.md 点播编码格式表FLV仅支持倍率播放不支持 seekFLV 点播的依赖条件详见 demo/pro-vod-flv.mdHLS支持倍率播放与 seekHLS 点播文件与直播流的 m3u8 文件区别见 demo/hls-vod-vs-stream.md。实践提示如果 MP4 点播一直加载不成功可参考 demo/pro-vod.md 排查——先确认文件是否为伪 MP4如海康 NVR 录制的文件实际内容是 PS 格式再检查服务器是否支持 Range 请求否则需整文件下载完才能播放最后可用 mp4box.js 检查是否缺少 stsd、stts、stsc、stsz、stco、stss 等关键 box。4.2 点播逐帧播放、逐关键帧播放在点播逻辑下Pro 支持逐帧播放与逐关键帧I 帧播放两种精细控制且软解码、硬解码两种模式均支持。这意味着对 MP4/HLS 点播文件业务方可以像放映机一样逐帧推进画面适用于取证、安防审片等需要精确定位的场景。对应的体验入口为 demo/public/pro/play-vod-demo.html支持 mse、wcs、wasm、simd 四种解码通道的点播 Demo。此外 demo/pro.md 指出点播文件MP4/HLS还支持选择倍率0.1/0.5/1/2/4/8/16。五、特殊回放流支持逐帧播放与倒序播放5.1 特殊回放流概述特殊回放流主要针对 NVR 或设备端直接推送的回放流这类流不支持通过信令控制只能在播放器端实现控制逻辑。它与 GB28181、GA/T 1078 回放流的区别详见 demo/pro-playback-special.mdGB28181、GA/T 1078 只能通过信令控制暂停、播放、倍率、seek而特殊回放流可以直接在播放器端实现这些功能特殊回放流的控制逻辑更简单播放器端可直接调用暂停、播放、设置倍率等方法无需服务器端发送信令特殊回放流不支持 seek流式数据无法获知具体时间点。5.2 暂停-播放-暂停逻辑前端调用播放器的暂停方法播放器停止渲染画面但继续接收和缓存流数据前端调用播放方法播放器从缓冲区读取数据继续渲染再次暂停播放器再次停止渲染。注意暂停时流数据仍在接收缓冲区会继续填充。长时间暂停可能导致缓冲区溢出。5.3 倍率播放支持倍速播放1/2/4/8/16与慢速播放0.1-0.9播放器端通过调整渲染速度实现倍率播放。若缓冲区数据不足可能出现卡顿。5.4 逐帧播放、逐关键帧播放特殊回放流逻辑下同样支持逐帧播放与逐关键帧I 帧播放软解码、硬解码两种模式均支持。体验 Demo 为 demo/public/pro/playback-simple-demo-forward.html该页面支持暂停缓存数据、本地倍率、逐帧播放、逐关键帧播放、监听播放结束以及 4K25P硬解码 软解码播放不支持 seek。5.5 回放流倒序播放需服务器端配合Pro 支持回放流倒序播放但需要服务器端配合支持按照 GOP 倒序推流流媒体服务器支持倒序读取文件数据按照一个一个 GOP 的倒序方式发送给播放器端播放器端通过解码器解码一个完整的 GOP 数据然后倒序渲染画面。GOP 内部按顺序编码[I P P P P P ......]GOP 之间倒序例如gop(n) gop(n-1) gop(n-2) gop(n-3) ......。仓库中对应 Demo 为 demo/public/pro/playback-simple-demo-reverse.html。该能力本质上是播放器端渲染逻辑与服务器推流策略的联合定制两端需对齐推流顺序与渲染顺序。六、音视频录制扩展容器格式与 G711 音频Pro 标准版已支持视频录制从 demo/pro.md 的视频录制支持表看封装格式支持情况Flv 格式的 flv 文件音频 视频支持MPEG-4 格式的 mp4 文件视频支持webm 格式的 webm、mp4 文件音频 视频支持MPEG-4 格式的 mp4 文件音频 视频支持扩展模块定制化服务在录制维度上进一步扩展支持其他容器格式例如录制flv、mov支持pcmu(g711u)、pcma(g711a)音频格式参与录制。开源版本中录制相关事件与配置可在源码中找到印证例如 src/constant/index.js 中定义了recordStart、recordEnd、recordCreateError等事件以及record、recordType默认webm配置src/control/events.js 实现了录制按钮的点击事件代理。Pro 版本在此基础上扩展了 FLV/MP4/MOV 封装与 G711 音频的 mux 能力。扩展模块demo/pro-module.md还提供了基于 ffmpeg 的MP4 录制MPEG-4含音视频与直播流/回放流下载录制器MP4 录制视频支持h264、h265音频支持aac、mp3、pcmu(g711u)、pcma(g711a)可定制支持水印下载录制器支持ws(s)-raw、http(s)-flv、ws(s)-flv、http(s)-fmp4、ws(s)-fmp4、hls、裸流h264/h265等协议录制格式支持flv、mp4、webm体验 Demodemo/public/pro/demo-record-mp4.htmlMP4 录制、demo/public/pro/demo-record-player.html下载录制器。七、G711a/u 音频在 HLS / MP4 / TS 容器中的定制支持原生容器规范存在编码限制HLSmp4/ts、MP4、TS 协议本身不支持 G711A/G711U 音频格式。Pro 定制化服务可打破这一限制HLS g711a/u 音频支持 hls-mp4、hls-ts 格式的播放当 hls 流内音频为 g711a/u 编码时可播放需对齐好编码编码类型为自定义格式MP4 g711a/u 音频mp4 内音频为 g711a/u 编码时可播放需对齐好编码编码类型为自定义格式TS g711a/u 音频ts 内音频为 g711a/u 编码时可播放需对齐好编码编码类型为自定义格式。这与 demo/pro.md 中的协议 编码格式音频、视频矩阵一致fmp4、HLS-mp4、HLS-ts、mpeg-ts、mpeg-ps 等协议下的 g711a/g711u 音频均标注为支持需定制。同时注意G711A、G711U 音频编码格式不支持 MSE 解码需走 WCS/WASM/WASM(SIMD) 解码通道。背景知识G711APCMA与 G711UPCMU是安防监控领域最常见的语音编码国标 GB28181、JTT1078 语音对讲均基于 G711而 Web 原生容器不承载该格式这正是安防视频平台在 H5 侧播放的典型痛点属于强业务定制场景。八、大疆 SEI 结构化数据解析Pro 支持解析大疆 SEI 结构化数据。大疆机场/无人机的 AI 目标识别数据是通过 SEI 数据封装在视频流里面的Pro 可以分析视频流flv、hls-ts、hls-mp4、TS、fmp4、裸流、webrtc中的 SEI 数据并提取出来通过事件回调给业务层使用。体验 Demodemo/public/pro/demo-sei-dj.html收集 SEI大疆无人机 AI 目标识别信息并画框显示。从该 Demo 源码可以看到相关配置与事件isEmitSEI是否分析获取 SEI 数据videoSEISyncPts是否同步当前时间抛出 SEI 数据videoSEISyncPtsDiffSEI 对齐帧时间戳冗余间隔单位 msDemo 中除以 1000 转为秒jessibuca.on(videoSEISyncPts, (data) {...})业务层通过该事件回调接收同步好的 SEI 数据再绘制检测框。此外Pro 还支持分析 TS/HLS-TS 流内的私有数据PES_private_data_flag 1逻辑判断得到的私有 PES 数据以及选择播放通道音频 视频相关能力在 demo/pro.md 中有完整标注。九、画面调节亮度、对比度、饱和度、色调偏移Pro 支持运行期实时调节画面参数亮度brightness取值范围 [0, 255]默认 100对比度contrast取值范围 [0, 255]默认 100饱和度saturate取值范围 [0, 255]默认 100色调偏移/角度huerotate取值范围 [0, 180]默认 0。体验 Demodemo/public/pro/demo-render-color.html。该页面通过滑块实时调节底层调用两个 Pro 方法// 更新单项或多项渲染颜色配置 jessibuca.updateRenderColorConfig({ brightness: value, // [0, 255]默认 100 contrast: value, // [0, 255]默认 100 saturate: value, // [0, 255]默认 100 huerotate: value, // [0, 180]默认 0 }); // 恢复默认颜色配置 jessibuca.resetRenderColorConfig();从 Demo 的交互实现demo/public/pro/demo-render-color.html 中updateRenderColor/resetRenderColorConfig函数可以确认调节是实时生效的无需重新拉流适用于夜间监控画面增强、特殊环境下的画面矫正等业务。十、区域选择方式电子放大Pro 支持区域选择方式电子放大在画面上框选指定区域播放器对该区域进行放大显示并提供预览区域。体验 Demo 为 demo/public/pro/demo-zoom-v2.html电子放大区域选框放大有预览区域交互支持 PC。与 WebGL 渲染定制项中的区域放大滤镜人脸追踪相比电子放大是独立、开箱即用的交互能力框选后即时放大局部画面适合监控大屏的局部细节查看。十一、私有格式视频流解析RTP 封装的 PS 流Pro 支持解析私有格式的视频流例如RTP 封装的 PS 流通过ws传送 RTP 封装的 PS 流播放器解析并播放。PSProgram Stream封装常见于国标 GB28181 码流配合 RTP 打包后通过 WebSocket 传输到浏览器端由播放器完成 RTP 解包、PS 解封装与 H.264/H.265 解码。这与 demo/pro.md 中http(s)-mpeg(ps)、ws-mpeg(ps)协议流H264/H265的支持互为印证。十二、播放器全局名称定制由于公司/项目特殊性部分客户希望播放器各个界面元素不包含Jessibuca Pro字样而使用公司自己的播放器名称。Pro 支持任意定制化全局名称包括但不限于控制条文案、加载提示、水印文案等 UI 可见文本。十三、定制化流程与商务说明综合 demo/pro-more.md 与配套文档能力确认在 demo/pro.md 的差异对照表中确认标准 Pro 已覆盖的能力H265 硬解、SIMD 软解、WebRTC、回放流等再确认本文所列定制项中哪些符合业务需求体验验证使用上文各小节给出的仓库内 Demo 页面先行验证效果Demo 通常有体验限制如解码时长限制、水印提示等详见 demo/pro.md 的体验版与正式版区别商务咨询定制化服务根据客户的具体需求提供相应的解决方案定价需要联系作者微信bosswancheng咨询。总结Jessibuca Pro的定制化服务demo/pro-more.md围绕标准 Pro 之外、按需交付的定位覆盖了四条主线解码与格式AV1 软/硬解码、MP3/Opus 软解码以及 HLS/MP4/TS 容器内的 G711A/G711U 音频定制支持渲染与显示WebGL 绿幕抠图、掩码透明、立方体、区域放大人脸追踪、360° 全景以及亮度/对比度/饱和度/色调调节、区域电子放大点播与回放MP4/HLS 点播、逐帧/逐关键帧播放、特殊回放流的倍率与倒序播放录制与协议FLV/MOV 录制、G711 音频录制、RTP-PS 私有流解析、大疆 SEI 结构化数据解析、播放器全局名称定制。如需在真实项目中落地建议优先阅读 demo/pro.mdPro 能力全表、demo/player-pro-vod.md点播、demo/pro-playback-special.md特殊回放流与 demo/pro-module.md扩展模块并结合上文列出的 Demo 页面逐项验证再进入商务定制环节。【免费下载链接】jessibucaJessibuca是一款开源的纯H5直播流播放器项目地址: https://gitcode.com/GitHub_Trending/je/jessibuca创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表