首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

播放摄像头流视频支持H264 H265

前端 526.9KB 22 需要积分: 1
立即下载

资源介绍:

基于jessibuca播放摄像头流视频支持H264 H265,基于MediaSource/Webcodec/ WebAssembly(wasm)实现的纯JavaScript直播播放器。支持ws-raw、http(ws)-flv、hls、webTransport、webrtc、http(ws)-fmp4、http(ws)-h264、http(ws)-h265多种播放格式。自带底部UI。支持创建多个播放实例。支持多种视频缩放模式 支持填充,等比,等比缩放 3中视频缩放模式。支持视频录制 支持录制MP4和WebM格式(video/webm;codecs=h264)的视频录制。(基于MediaRecorder),(MP4格式支持在IOS VLC播放器显示时长播放,Android VLC播放器无法显示时长播放,PC VLC播放器可以播放)。支持微信等H5自动播放 借助于wasm软解码(wcs硬解码)+canvas渲染,可以实现在微信等H5任何交互情况下自动播放。
!function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).jessibuca = t() }(this, (function () { "use strict"; var e = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; function t(e, t) { return e(t = { exports: {} }, t.exports), t.exports } var i, o = t((function (e) { e.exports = function (e, t, i) { return t in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e }, e.exports.__esModule = !0, e.exports.default = e.exports })), r = (i = o) && i.__esModule && Object.prototype.hasOwnProperty.call(i, "default") ? i.default : i; const s = 0, a = 1, n = "flv", A = "m7s", d = "mp4", c = "webm", l = { videoBuffer: 1e3, videoBufferDelay: 1e3, isResize: !0, isFullResize: !1, isFlv: !1, debug: !1, hotKey: !1, loadingTimeout: 10, heartTimeout: 5, timeout: 10, loadingTimeoutReplay: !0, heartTimeoutReplay: !1, loadingTimeoutReplayTimes: 3, heartTimeoutReplayTimes: 3, supportDblclickFullscreen: !1, showBandwidth: !1, keepScreenOn: !1, isNotMute: !1, hasAudio: !0, hasVideo: !0, operateBtns: { fullscreen: !1, screenshot: !1, play: !1, audio: !1, record: !1 }, controlAutoHide: !1, hasControl: !1, loadingText: "", background: "", decoder: "decoder.js", url: "", rotate: 0, forceNoOffscreen: !0, hiddenAutoPause: !1, protocol: a, demuxType: n, useWCS: !1, wcsUseVideoRender: !0, useMSE: !1, useOffscreen: !1, autoWasm: !0, wasmDecodeErrorReplay: !0, openWebglAlignment: !1, wasmDecodeAudioSyncVideo: !1, recordType: c, useWebFullScreen: !1 }, u = "init", h = "initVideo", p = "render", m = "playAudio", g = "initAudio", f = "audioCode", b = "videoCode", y = "wasmError", v = "Invalid NAL unit size", w = 1, S = 2, E = 8, B = 9, C = "init", R = "decode", k = "audioDecode", T = "close", I = "updateConfig", x = { fullscreen: "fullscreen$2", webFullscreen: "webFullscreen", decoderWorkerInit: "decoderWorkerInit", play: "play", playing: "playing", pause: "pause", mute: "mute", load: "load", loading: "loading", videoInfo: "videoInfo", timeUpdate: "timeUpdate", audioInfo: "audioInfo", log: "log", error: "error", kBps: "kBps", timeout: "timeout", delayTimeout: "delayTimeout", loadingTimeout: "loadingTimeout", stats: "stats", performance: "performance", record: "record", recording: "recording", recordingTimestamp: "recordingTimestamp", recordStart: "recordStart", recordEnd: "recordEnd", recordCreateError: "recordCreateError", buffer: "buffer", videoFrame: "videoFrame", start: "start", metadata: "metadata", resize: "resize", streamEnd: "streamEnd", streamSuccess: "streamSuccess", streamMessage: "streamMessage", streamError: "streamError", volumechange: "volumechange", destroy: "destroy", mseSourceOpen: "mseSourceOpen", mseSourceClose: "mseSourceClose", mseSourceBufferError: "mseSourceBufferError", mseSourceBufferBusy: "mseSourceBufferBusy", mseSourceBufferFull: "mseSourceBufferFull", videoWaiting: "videoWaiting", videoTimeUpdate: "videoTimeUpdate", videoSyncAudio: "videoSyncAudio", playToRenderTimes: "playToRenderTimes" }, D = { load: x.load, timeUpdate: x.timeUpdate, videoInfo: x.videoInfo, audioInfo: x.audioInfo, error: x.error, kBps: x.kBps, log: x.log, start: x.start, timeout: x.timeout, loadingTimeout: x.loadingTimeout, delayTimeout: x.delayTimeout, fullscreen: "fullscreen", webFullscreen: x.webFullscreen, play: x.play, pause: x.pause, mute: x.mute, stats: x.stats, performance: x.performance, recordingTimestamp: x.recordingTimestamp, recordStart: x.recordStart, recordEnd: x.recordEnd, playToRenderTimes: x.playToRenderTimes }, j = { playError: "playIsNotPauseOrUrlIsNull", fetchError: "fetchError", websocketError: "websocketError", webcodecsH265NotSupport: "webcodecsH265NotSupport", webcodecsDecodeError: "webcodecsDecodeError", webcodecsWidthOrHeightChange: "webcodecsWidthOrHeightChange", mediaSourceH265NotSupport: "mediaSourceH265NotSupport", mediaSourceFull: x.mseSourceBufferFull, mseSourceBufferError: x.mseSourceBufferError, mediaSourceAppendBufferError: "mediaSourceAppendBufferError", mediaSourceBufferListLarge: "mediaSourceBufferListLarge", mediaSourceAppendBufferEndTimeout: "mediaSourceAppendBufferEndTimeout", wasmDecodeError: "wasmDecodeError", webglAlignmentError: "webglAlignmentError" }, L = "notConnect", F = "open", O = "close", V = "error", M = { download: "download", base64: "base64", blob: "blob" }, U = { 7: "H264(AVC)", 12: "H265(HEVC)" }, Q = 12, W = { 10: "AAC", 7: "ALAW", 8: "MULAW" }, J = 38, P = 0, G = 1, N = 2, z = "webcodecs", H = "webgl", Y = "offscreen", X = "key", q = "delta", Z = 'video/mp4; codecs="avc1.64002A"', K = "ended", _ = "open", $ = "closed", ee = 1e3, te = 27, ie = 38, oe = 40, re = "A key frame is required after configure() or flush()", se = "The user aborted a request", ae = "AbortError", ne = "AbortError"; class Ae { constructor(e) { this.log = function (t) { if (e._opt.debug) { for (var i = arguments.length, o = new Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++)o[r - 1] = arguments[r]; console.log(`Jessibuca: [${t}]`, ...o) } }, this.warn = function (t) { if (e._opt.debug) { for (var i = arguments.length, o = new Array(i > 1 ? i - 1 : 0), r = 1; r < i; r++)o[r - 1] = arguments[r]; console.warn(`Jessibuca: [${t}]`, ...o) } }, this.error = function (e) { for (var t = arguments.length, i = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++)i[o - 1] = arguments[o]; console.error(`Jessibuca: [${e}]`, ...i) } } } class de { constructor(e) { this.destroys = [], this.proxy = this.proxy.bind(this), this.master = e } proxy(e, t, i) { let o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}; if (!e) return; if (Array.isArray(t)) return t.map((t => this.proxy(e, t, i, o))); e.addEventListener(t, i, o); const r = () => e.removeEventListener(t, i, o); return this.destroys.push(r), r } destroy() { this.master.debug && this.master.debug.log("Events", "destroy"), this.destroys.forEach((e => e())) } } var ce = t((function (e) { !function () { var t = "undefined" != typeof window && void 0 !== window.document ? window.document : {}, i = e.exports, o = function () { for (var e, i = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], o = 0, r = i.length, s = {}; o < r; o++)if ((e = i[o]) && e[1] in t) { for (o = 0; o < e.length; o++)s[i[0][o]] = e[o]; return s } return !1 }(), r = { change: o.fullscreenchange, error: o.fullscreenerror }, s = { request: function (e, i) { return new Promise(function (r, s) { var a = function () { this.off("change", a), r() }.bind(this); this.on("change", a); var n = (e = e || t.documentElement)[o.requestFullscreen](i); n instanceof Promise && n.then(a).catch(s) }.bind(this)) }, exit: function () { return new Promise(function (e, i) { if (this.isFullscreen) { var r = function () { this.off("change", r), e() }.bind(this); this.on("change", r); var s = t[o.exitFullscreen](); s instanceof Promise && s.then(r).catch(i) } else e() }.bind(this)) }, toggle: function (e, t) { return this.isFullscreen ? this.exit() : this.request(e, t) }, onchange: function (e) { this.on("change", e) }, onerror: function (e) { this.on("error", e) }, on: fu

资源文件列表:

jessibuca.zip 大约有6个文件
  1. jessibuca/cameraPlays.vue 17.63KB
  2. jessibuca/decoder.js 107.63KB
  3. jessibuca/decoder.wasm 1MB
  4. jessibuca/inde.vue 2.53KB
  5. jessibuca/jessibuca.d.ts 19.65KB
  6. jessibuca/jessibuca.js 220.47KB
0评论
提交 加载更多评论
其他资源 假日学校学生签名.zip
假日学校学生签名.zip
2024年中职对口升学类职业技能考核题库.zip
2024年中职对口升学类职业技能考核题库.zip
GD32C8T6模板工程文件
GD32C8T6模板工程文件
yolov5的模型参数pt文件
yolov5的模型参数pt文件
【实例1.1】.zip
【实例1.1】.zip
【实例1.1】.zip
中国大学MOOC-史上最全-C语言程序设计习题集
C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集C语言程序设计习题集
HBuilderX3.8.7 免费安装包下载
**HBuilderX** 是一款由 DCloud 开发的集成开发环境(IDE),专注于移动端应用和前端开发。它支持多种开发语言和框架,特别是针对 HTML5、JavaScript 和 Vue.js 的开发。HBuilderX 具有以下主要特点和优点: ### **主要特点:** 1. **跨平台支持**: - 支持 Windows、macOS 和 Linux 系统。 2. **丰富的开发工具**: - 提供内置的代码编辑、调试、项目管理、版本控制等工具,帮助提升开发效率。 3. **集成的开发框架**: - 支持 DCloud 的 UniApp 框架,便于开发跨平台的应用程序(包括 Web、iOS 和 Android)。 4. **智能代码编辑**: - 提供智能提示、自动补全、代码片段等功能,提高编码效率。 5. **界面友好**: - 界面简洁直观,操作便捷,适合各种开发人员使用。 6. **实时预览**: - 内置实时预览功能,可以直接在编辑器中查看修改后的效果,方便调试和优化。 7. **
有关电源电路的Multisim仿真(逆变)
DC-AC全桥逆变电路的仿真分析、MOSFET DC-AC全桥逆变电路的仿真分析(带滤波器的)、MOSFET DC-AC全桥逆变电路的仿真分析、SPWM产生电路、SPWM逆变电路的仿真、单相半波可控硅整流电路(带滤波)、单相半控桥整流电路、三相桥式整流电路(带滤波)三相桥式整流电路、直流降压-升压斩波变换电路、直流降压斩波变换电路、直流升压斩波变换电路