mirror of
https://github.com/Monibuca/plugin-jessica.git
synced 2025-10-23 16:03:07 +08:00
适配2.0
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2019-present, dexter
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module github.com/Monibuca/plugin-jessica
|
||||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/Monibuca/engine v1.2.1
|
||||
github.com/Monibuca/engine/v2 v2.0.0
|
||||
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee // indirect
|
||||
github.com/gobwas/pool v0.2.0 // indirect
|
||||
github.com/gobwas/ws v1.0.2
|
||||
|
6
go.sum
6
go.sum
@@ -2,6 +2,12 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/Monibuca/engine v1.2.1 h1:TJmC6eZA1lR1MScWgempZLiEZD4T6aY/nn/rlQ9UdK8=
|
||||
github.com/Monibuca/engine v1.2.1/go.mod h1:WbDkXENLjcPjyjCR1Mix1GA+uAlwORkv/+8aMVrDX2g=
|
||||
github.com/Monibuca/engine v1.2.2 h1:hNjsrZpOmui8lYhgCJ5ltJU8g/k0Rrdysx2tHNGGnbI=
|
||||
github.com/Monibuca/engine v1.2.2/go.mod h1:WbDkXENLjcPjyjCR1Mix1GA+uAlwORkv/+8aMVrDX2g=
|
||||
github.com/Monibuca/engine/v2 v2.0.0-alpha2 h1:45yazqnnxEEcfHcOJGuIr1xtnBzQT6cPvhlymeZrDmA=
|
||||
github.com/Monibuca/engine/v2 v2.0.0-alpha2/go.mod h1:34EYjjV15G6myuHOKaJkO7y5tJ1Arq/NfC9Weacr2mc=
|
||||
github.com/Monibuca/engine/v2 v2.0.0 h1:8FjaScrtN8QdbcxO9zZYABMC0Re3I1O1T4p94zAXYb0=
|
||||
github.com/Monibuca/engine/v2 v2.0.0/go.mod h1:34EYjjV15G6myuHOKaJkO7y5tJ1Arq/NfC9Weacr2mc=
|
||||
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk=
|
||||
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||
github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
|
||||
|
2
main.go
2
main.go
@@ -9,7 +9,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
. "github.com/Monibuca/engine"
|
||||
. "github.com/Monibuca/engine/v2"
|
||||
. "github.com/logrusorgru/aurora"
|
||||
)
|
||||
|
||||
|
@@ -5,9 +5,9 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
. "github.com/Monibuca/engine"
|
||||
"github.com/Monibuca/engine/avformat"
|
||||
"github.com/Monibuca/engine/pool"
|
||||
. "github.com/Monibuca/engine/v2"
|
||||
"github.com/Monibuca/engine/v2/avformat"
|
||||
"github.com/Monibuca/engine/v2/pool"
|
||||
"github.com/gobwas/ws"
|
||||
)
|
||||
|
||||
@@ -27,12 +27,12 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
baseStream := OutputStream{Sign: sign}
|
||||
baseStream := Subscriber{Sign: sign}
|
||||
baseStream.ID = conn.RemoteAddr().String()
|
||||
defer conn.Close()
|
||||
if isFlv {
|
||||
baseStream.Type = "JessicaFlv"
|
||||
baseStream.SendHandler = func(packet *avformat.SendPacket) error {
|
||||
baseStream.OnData = func(packet *avformat.SendPacket) error {
|
||||
return avformat.WriteFLVTag(conn, packet)
|
||||
}
|
||||
if err := ws.WriteHeader(conn, ws.Header{
|
||||
@@ -47,17 +47,17 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
} else {
|
||||
baseStream.Type = "Jessica"
|
||||
baseStream.SendHandler = func(packet *avformat.SendPacket) error {
|
||||
baseStream.OnData = func(packet *avformat.SendPacket) error {
|
||||
err := ws.WriteHeader(conn, ws.Header{
|
||||
Fin: true,
|
||||
OpCode: ws.OpBinary,
|
||||
Length: int64(len(packet.Packet.Payload) + 5),
|
||||
Length: int64(len(packet.Payload) + 5),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
head := pool.GetSlice(5)
|
||||
head[0] = packet.Packet.Type - 7
|
||||
head[0] = packet.Type - 7
|
||||
binary.BigEndian.PutUint32(head[1:5], packet.Timestamp)
|
||||
if _, err = conn.Write(head); err != nil {
|
||||
return err
|
||||
@@ -66,11 +66,11 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
|
||||
//if p.Header[0] == 2 {
|
||||
// fmt.Printf("%6d %X\n", (uint32(p.Packet.Payload[5])<<24)|(uint32(p.Packet.Payload[6])<<16)|(uint32(p.Packet.Payload[7])<<8)|uint32(p.Packet.Payload[8]), p.Packet.Payload[9])
|
||||
//}
|
||||
if _, err = conn.Write(packet.Packet.Payload); err != nil {
|
||||
if _, err = conn.Write(packet.Payload); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
baseStream.Play(streamPath)
|
||||
baseStream.Subscribe(streamPath)
|
||||
}
|
||||
|
188
ui/dist/plugin-jessica.common.js
vendored
188
ui/dist/plugin-jessica.common.js
vendored
@@ -87,24 +87,24 @@ module.exports =
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ "6f08":
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c604");
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* unused harmony reexport * */
|
||||
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "c604":
|
||||
/***/ "8026":
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "cefa":
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8026");
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* unused harmony reexport * */
|
||||
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "f6fd":
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
@@ -171,14 +171,14 @@ if (typeof window !== 'undefined') {
|
||||
// Indicate to webpack that this file can be concatenated
|
||||
/* harmony default export */ var setPublicPath = (null);
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=73320fd8&scoped=true&
|
||||
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('mu-data-table',{attrs:{"columns":_vm.columns,"data":_vm.$store.state.Rooms,"min-col-width":50},on:{"row-dblclick":_vm.preview,"row-click":function($event){return _vm.$toast.message('双击预览')}},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.StreamPath))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.Type||"await"))]),_c('td',{staticClass:"is-center"},[_c('StartTime',{attrs:{"value":scope.row.StartTime}})],1),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.SoundFormat(scope.row.AudioInfo.SoundFormat)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.SoundRate(scope.row.AudioInfo.SoundRate)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.AudioInfo.SoundType))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.CodecID(scope.row.VideoInfo.CodecID)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.VideoInfo.SPSInfo.Width)+"x"+_vm._s(scope.row.VideoInfo.SPSInfo.Height))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.AudioInfo.PacketCount)+"/"+_vm._s(scope.row.VideoInfo.PacketCount))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.getSubscriberCount(scope.row)))])]}}])}),_c('Jessibuca',{ref:"jessibuca",attrs:{"videoCodec":_vm.currentStream && _vm.CodecID(_vm.currentStream.VideoInfo.CodecID),"audioCodec":_vm.currentStream && _vm.SoundFormat(_vm.currentStream.AudioInfo.SoundFormat)},model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:"showPreview"}}),_c('Subscribers',{attrs:{"data":_vm.currentStream && _vm.currentStream.SubscriberInfo || []},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:"showSubscribers"}})],1)}
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7c407d30&scoped=true&
|
||||
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('stream-table',{scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('m-button',{on:{"click":function($event){return _vm.preview(scope)}}},[_vm._v("预览")]),void 0]}}])}),_c('Jessibuca',{ref:"jessibuca",attrs:{"videoCodec":_vm.currentStream && _vm.CodecID(_vm.currentStream.VideoInfo.CodecID),"audioCodec":_vm.currentStream && _vm.SoundFormat(_vm.currentStream.AudioInfo.SoundFormat)},model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:"showPreview"}}),_c('Subscribers',{attrs:{"data":_vm.currentStream && _vm.currentStream.SubscriberInfo || []},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:"showSubscribers"}})],1)}
|
||||
var staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=73320fd8&scoped=true&
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=7c407d30&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Jessibuca.vue?vue&type=template&id=6ae4b67f&scoped=true&
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Jessibuca.vue?vue&type=template&id=6ae4b67f&scoped=true&
|
||||
var Jessibucavue_type_template_id_6ae4b67f_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.url},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('canvas',{staticStyle:{"background":"black"},attrs:{"id":"canvas","width":"488","height":"275"}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.audioEnabled)?_c('Button',{attrs:{"icon":"md-volume-up"},on:{"click":_vm.turnOff}}):_c('Button',{attrs:{"icon":"md-volume-off"},on:{"click":_vm.turnOn}})],1)])}
|
||||
var Jessibucavue_type_template_id_6ae4b67f_scoped_true_staticRenderFns = []
|
||||
|
||||
@@ -400,57 +400,13 @@ var component = normalizeComponent(
|
||||
)
|
||||
|
||||
/* harmony default export */ var Jessibuca = (component.exports);
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=template&id=e52213f4&
|
||||
var Subscribersvue_type_template_id_e52213f4_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":"查看订阅者"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{"columns":_vm.subtableColumns,"data":_vm.data}})],1)}
|
||||
var Subscribersvue_type_template_id_e52213f4_staticRenderFns = []
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=template&id=31bcef67&
|
||||
var Subscribersvue_type_template_id_31bcef67_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":"查看订阅者"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{"columns":_vm.subtableColumns,"data":_vm.data}})],1)}
|
||||
var Subscribersvue_type_template_id_31bcef67_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/Subscribers.vue?vue&type=template&id=e52213f4&
|
||||
// CONCATENATED MODULE: ./src/components/Subscribers.vue?vue&type=template&id=31bcef67&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StartTime.vue?vue&type=template&id=062b9730&scoped=true&
|
||||
var StartTimevue_type_template_id_062b9730_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Poptip',{attrs:{"trigger":"hover","content":'⌚️'+ new Date(_vm.value).toLocaleString()}},[_c('Time',{attrs:{"time":new Date(_vm.value)}})],1)}
|
||||
var StartTimevue_type_template_id_062b9730_scoped_true_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue?vue&type=template&id=062b9730&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StartTime.vue?vue&type=script&lang=js&
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
/* harmony default export */ var StartTimevue_type_script_lang_js_ = ({
|
||||
name: "StartTime",
|
||||
props:{
|
||||
value:String
|
||||
}
|
||||
});
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue?vue&type=script&lang=js&
|
||||
/* harmony default export */ var components_StartTimevue_type_script_lang_js_ = (StartTimevue_type_script_lang_js_);
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var StartTime_component = normalizeComponent(
|
||||
components_StartTimevue_type_script_lang_js_,
|
||||
StartTimevue_type_template_id_062b9730_scoped_true_render,
|
||||
StartTimevue_type_template_id_062b9730_scoped_true_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
"062b9730",
|
||||
null
|
||||
|
||||
)
|
||||
|
||||
/* harmony default export */ var StartTime = (StartTime_component.exports);
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=script&lang=js&
|
||||
//
|
||||
//
|
||||
@@ -459,7 +415,6 @@ var StartTime_component = normalizeComponent(
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
/* harmony default export */ var Subscribersvue_type_script_lang_js_ = ({
|
||||
props: {
|
||||
data: Array
|
||||
@@ -524,8 +479,8 @@ var StartTime_component = normalizeComponent(
|
||||
|
||||
var Subscribers_component = normalizeComponent(
|
||||
components_Subscribersvue_type_script_lang_js_,
|
||||
Subscribersvue_type_template_id_e52213f4_render,
|
||||
Subscribersvue_type_template_id_e52213f4_staticRenderFns,
|
||||
Subscribersvue_type_template_id_31bcef67_render,
|
||||
Subscribersvue_type_template_id_31bcef67_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
@@ -549,22 +504,6 @@ var Subscribers_component = normalizeComponent(
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -573,7 +512,6 @@ let summaryES = null;
|
||||
components: {
|
||||
Jessibuca: Jessibuca,
|
||||
Subscribers: Subscribers,
|
||||
StartTime: StartTime
|
||||
},
|
||||
props: {
|
||||
ListenAddr: String
|
||||
@@ -583,71 +521,6 @@ let summaryES = null;
|
||||
showPreview: false,
|
||||
currentStream: null,
|
||||
showSubscribers: false,
|
||||
columns: [
|
||||
{
|
||||
title: "房间",
|
||||
name: "StreamPath",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
name: "Type",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "开始时间",
|
||||
name: "StartTime",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "音频格式",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "采样率",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "声道",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "视频格式",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "分辨率",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "数据包",
|
||||
name: "",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "订阅者",
|
||||
name: "Subscribes",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -656,16 +529,7 @@ let summaryES = null;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getSubscriberCount(item) {
|
||||
if (
|
||||
this.currentStream &&
|
||||
this.currentStream.StreamPath == item.StreamPath
|
||||
) {
|
||||
this.currentStream = item;
|
||||
}
|
||||
return item.SubscriberInfo ? item.SubscriberInfo.length : 0;
|
||||
},
|
||||
preview(index, row, event) {
|
||||
preview({row}) {
|
||||
this.currentStream = row;
|
||||
this.onPlay("ws://" + this.host + "/" + row.StreamPath);
|
||||
},
|
||||
@@ -685,8 +549,8 @@ let summaryES = null;
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=script&lang=js&
|
||||
/* harmony default export */ var src_Appvue_type_script_lang_js_ = (Appvue_type_script_lang_js_);
|
||||
// EXTERNAL MODULE: ./src/App.vue?vue&type=style&index=0&id=73320fd8&scoped=true&lang=css&
|
||||
var Appvue_type_style_index_0_id_73320fd8_scoped_true_lang_css_ = __webpack_require__("6f08");
|
||||
// EXTERNAL MODULE: ./src/App.vue?vue&type=style&index=0&id=7c407d30&scoped=true&lang=css&
|
||||
var Appvue_type_style_index_0_id_7c407d30_scoped_true_lang_css_ = __webpack_require__("cefa");
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue
|
||||
|
||||
@@ -703,7 +567,7 @@ var App_component = normalizeComponent(
|
||||
staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
"73320fd8",
|
||||
"7c407d30",
|
||||
null
|
||||
|
||||
)
|
||||
|
2
ui/dist/plugin-jessica.common.js.map
vendored
2
ui/dist/plugin-jessica.common.js.map
vendored
File diff suppressed because one or more lines are too long
2
ui/dist/plugin-jessica.css
vendored
2
ui/dist/plugin-jessica.css
vendored
@@ -1 +1 @@
|
||||
td[data-v-73320fd8]{padding-left:5px;padding-right:5px}.empty[data-v-73320fd8]{color:#eb5e46;width:100%;min-height:500px;display:flex;justify-content:center;align-items:center}.demo-spin-icon-load[data-v-73320fd8]{-webkit-animation:ani-demo-spin 1s linear infinite;animation:ani-demo-spin 1s linear infinite}
|
||||
td[data-v-7c407d30]{padding-left:5px;padding-right:5px}.empty[data-v-7c407d30]{color:#eb5e46;width:100%;min-height:500px;display:flex;justify-content:center;align-items:center}.demo-spin-icon-load[data-v-7c407d30]{-webkit-animation:ani-demo-spin 1s linear infinite;animation:ani-demo-spin 1s linear infinite}
|
188
ui/dist/plugin-jessica.umd.js
vendored
188
ui/dist/plugin-jessica.umd.js
vendored
@@ -96,24 +96,24 @@ return /******/ (function(modules) { // webpackBootstrap
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ "6f08":
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c604");
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* unused harmony reexport * */
|
||||
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_73320fd8_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "c604":
|
||||
/***/ "8026":
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "cefa":
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8026");
|
||||
/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* unused harmony reexport * */
|
||||
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_7c407d30_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "f6fd":
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
@@ -180,14 +180,14 @@ if (typeof window !== 'undefined') {
|
||||
// Indicate to webpack that this file can be concatenated
|
||||
/* harmony default export */ var setPublicPath = (null);
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=73320fd8&scoped=true&
|
||||
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('mu-data-table',{attrs:{"columns":_vm.columns,"data":_vm.$store.state.Rooms,"min-col-width":50},on:{"row-dblclick":_vm.preview,"row-click":function($event){return _vm.$toast.message('双击预览')}},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.StreamPath))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.Type||"await"))]),_c('td',{staticClass:"is-center"},[_c('StartTime',{attrs:{"value":scope.row.StartTime}})],1),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.SoundFormat(scope.row.AudioInfo.SoundFormat)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.SoundRate(scope.row.AudioInfo.SoundRate)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.AudioInfo.SoundType))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.CodecID(scope.row.VideoInfo.CodecID)))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.VideoInfo.SPSInfo.Width)+"x"+_vm._s(scope.row.VideoInfo.SPSInfo.Height))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(scope.row.AudioInfo.PacketCount)+"/"+_vm._s(scope.row.VideoInfo.PacketCount))]),_c('td',{staticClass:"is-center"},[_vm._v(_vm._s(_vm.getSubscriberCount(scope.row)))])]}}])}),_c('Jessibuca',{ref:"jessibuca",attrs:{"videoCodec":_vm.currentStream && _vm.CodecID(_vm.currentStream.VideoInfo.CodecID),"audioCodec":_vm.currentStream && _vm.SoundFormat(_vm.currentStream.AudioInfo.SoundFormat)},model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:"showPreview"}}),_c('Subscribers',{attrs:{"data":_vm.currentStream && _vm.currentStream.SubscriberInfo || []},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:"showSubscribers"}})],1)}
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=template&id=7c407d30&scoped=true&
|
||||
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('stream-table',{scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c('m-button',{on:{"click":function($event){return _vm.preview(scope)}}},[_vm._v("预览")]),void 0]}}])}),_c('Jessibuca',{ref:"jessibuca",attrs:{"videoCodec":_vm.currentStream && _vm.CodecID(_vm.currentStream.VideoInfo.CodecID),"audioCodec":_vm.currentStream && _vm.SoundFormat(_vm.currentStream.AudioInfo.SoundFormat)},model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:"showPreview"}}),_c('Subscribers',{attrs:{"data":_vm.currentStream && _vm.currentStream.SubscriberInfo || []},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:"showSubscribers"}})],1)}
|
||||
var staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=73320fd8&scoped=true&
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=7c407d30&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Jessibuca.vue?vue&type=template&id=6ae4b67f&scoped=true&
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Jessibuca.vue?vue&type=template&id=6ae4b67f&scoped=true&
|
||||
var Jessibucavue_type_template_id_6ae4b67f_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.url},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('canvas',{staticStyle:{"background":"black"},attrs:{"id":"canvas","width":"488","height":"275"}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.audioEnabled)?_c('Button',{attrs:{"icon":"md-volume-up"},on:{"click":_vm.turnOff}}):_c('Button',{attrs:{"icon":"md-volume-off"},on:{"click":_vm.turnOn}})],1)])}
|
||||
var Jessibucavue_type_template_id_6ae4b67f_scoped_true_staticRenderFns = []
|
||||
|
||||
@@ -409,57 +409,13 @@ var component = normalizeComponent(
|
||||
)
|
||||
|
||||
/* harmony default export */ var Jessibuca = (component.exports);
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=template&id=e52213f4&
|
||||
var Subscribersvue_type_template_id_e52213f4_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":"查看订阅者"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{"columns":_vm.subtableColumns,"data":_vm.data}})],1)}
|
||||
var Subscribersvue_type_template_id_e52213f4_staticRenderFns = []
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"309916e6-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=template&id=31bcef67&
|
||||
var Subscribersvue_type_template_id_31bcef67_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":"查看订阅者"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{"columns":_vm.subtableColumns,"data":_vm.data}})],1)}
|
||||
var Subscribersvue_type_template_id_31bcef67_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/Subscribers.vue?vue&type=template&id=e52213f4&
|
||||
// CONCATENATED MODULE: ./src/components/Subscribers.vue?vue&type=template&id=31bcef67&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"086ccc34-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StartTime.vue?vue&type=template&id=062b9730&scoped=true&
|
||||
var StartTimevue_type_template_id_062b9730_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Poptip',{attrs:{"trigger":"hover","content":'⌚️'+ new Date(_vm.value).toLocaleString()}},[_c('Time',{attrs:{"time":new Date(_vm.value)}})],1)}
|
||||
var StartTimevue_type_template_id_062b9730_scoped_true_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue?vue&type=template&id=062b9730&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/StartTime.vue?vue&type=script&lang=js&
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
/* harmony default export */ var StartTimevue_type_script_lang_js_ = ({
|
||||
name: "StartTime",
|
||||
props:{
|
||||
value:String
|
||||
}
|
||||
});
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue?vue&type=script&lang=js&
|
||||
/* harmony default export */ var components_StartTimevue_type_script_lang_js_ = (StartTimevue_type_script_lang_js_);
|
||||
// CONCATENATED MODULE: ./src/components/StartTime.vue
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var StartTime_component = normalizeComponent(
|
||||
components_StartTimevue_type_script_lang_js_,
|
||||
StartTimevue_type_template_id_062b9730_scoped_true_render,
|
||||
StartTimevue_type_template_id_062b9730_scoped_true_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
"062b9730",
|
||||
null
|
||||
|
||||
)
|
||||
|
||||
/* harmony default export */ var StartTime = (StartTime_component.exports);
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Subscribers.vue?vue&type=script&lang=js&
|
||||
//
|
||||
//
|
||||
@@ -468,7 +424,6 @@ var StartTime_component = normalizeComponent(
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
/* harmony default export */ var Subscribersvue_type_script_lang_js_ = ({
|
||||
props: {
|
||||
data: Array
|
||||
@@ -533,8 +488,8 @@ var StartTime_component = normalizeComponent(
|
||||
|
||||
var Subscribers_component = normalizeComponent(
|
||||
components_Subscribersvue_type_script_lang_js_,
|
||||
Subscribersvue_type_template_id_e52213f4_render,
|
||||
Subscribersvue_type_template_id_e52213f4_staticRenderFns,
|
||||
Subscribersvue_type_template_id_31bcef67_render,
|
||||
Subscribersvue_type_template_id_31bcef67_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
@@ -558,22 +513,6 @@ var Subscribers_component = normalizeComponent(
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -582,7 +521,6 @@ let summaryES = null;
|
||||
components: {
|
||||
Jessibuca: Jessibuca,
|
||||
Subscribers: Subscribers,
|
||||
StartTime: StartTime
|
||||
},
|
||||
props: {
|
||||
ListenAddr: String
|
||||
@@ -592,71 +530,6 @@ let summaryES = null;
|
||||
showPreview: false,
|
||||
currentStream: null,
|
||||
showSubscribers: false,
|
||||
columns: [
|
||||
{
|
||||
title: "房间",
|
||||
name: "StreamPath",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
name: "Type",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "开始时间",
|
||||
name: "StartTime",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "音频格式",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "采样率",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "声道",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "视频格式",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "分辨率",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "数据包",
|
||||
name: "",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
},
|
||||
{
|
||||
title: "订阅者",
|
||||
name: "Subscribes",
|
||||
align: "center",
|
||||
cellAlign: "center"
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -665,16 +538,7 @@ let summaryES = null;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getSubscriberCount(item) {
|
||||
if (
|
||||
this.currentStream &&
|
||||
this.currentStream.StreamPath == item.StreamPath
|
||||
) {
|
||||
this.currentStream = item;
|
||||
}
|
||||
return item.SubscriberInfo ? item.SubscriberInfo.length : 0;
|
||||
},
|
||||
preview(index, row, event) {
|
||||
preview({row}) {
|
||||
this.currentStream = row;
|
||||
this.onPlay("ws://" + this.host + "/" + row.StreamPath);
|
||||
},
|
||||
@@ -694,8 +558,8 @@ let summaryES = null;
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=script&lang=js&
|
||||
/* harmony default export */ var src_Appvue_type_script_lang_js_ = (Appvue_type_script_lang_js_);
|
||||
// EXTERNAL MODULE: ./src/App.vue?vue&type=style&index=0&id=73320fd8&scoped=true&lang=css&
|
||||
var Appvue_type_style_index_0_id_73320fd8_scoped_true_lang_css_ = __webpack_require__("6f08");
|
||||
// EXTERNAL MODULE: ./src/App.vue?vue&type=style&index=0&id=7c407d30&scoped=true&lang=css&
|
||||
var Appvue_type_style_index_0_id_7c407d30_scoped_true_lang_css_ = __webpack_require__("cefa");
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue
|
||||
|
||||
@@ -712,7 +576,7 @@ var App_component = normalizeComponent(
|
||||
staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
"73320fd8",
|
||||
"7c407d30",
|
||||
null
|
||||
|
||||
)
|
||||
|
2
ui/dist/plugin-jessica.umd.js.map
vendored
2
ui/dist/plugin-jessica.umd.js.map
vendored
File diff suppressed because one or more lines are too long
2
ui/dist/plugin-jessica.umd.min.js
vendored
2
ui/dist/plugin-jessica.umd.min.js
vendored
File diff suppressed because one or more lines are too long
2
ui/dist/plugin-jessica.umd.min.js.map
vendored
2
ui/dist/plugin-jessica.umd.min.js.map
vendored
File diff suppressed because one or more lines are too long
41
ui/package-lock.json
generated
41
ui/package-lock.json
generated
@@ -3487,8 +3487,7 @@
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
@@ -3509,14 +3508,12 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -3531,20 +3528,17 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -3661,8 +3655,7 @@
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@@ -3674,7 +3667,6 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "1.0.1"
|
||||
}
|
||||
@@ -3689,7 +3681,6 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
@@ -3697,14 +3688,12 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.9.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.2",
|
||||
"yallist": "3.1.1"
|
||||
@@ -3723,7 +3712,6 @@
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@@ -3813,8 +3801,7 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -3826,7 +3813,6 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
@@ -3912,8 +3898,7 @@
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
@@ -3949,7 +3934,6 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "1.1.0",
|
||||
"is-fullwidth-code-point": "1.0.0",
|
||||
@@ -3969,7 +3953,6 @@
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "2.1.1"
|
||||
}
|
||||
@@ -4013,14 +3996,12 @@
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.1.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -1,25 +1,10 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <i-input search enter-button="播放" placeholder="" @on-search="onPlay">
|
||||
<span slot="prepend">ws://{{host}}/</span>
|
||||
</i-input>-->
|
||||
<mu-data-table :columns="columns" :data="$store.state.Rooms" :min-col-width="50" @row-dblclick="preview"
|
||||
@row-click="$toast.message('双击预览')">
|
||||
<template slot-scope="scope">
|
||||
<td class="is-center">{{scope.row.StreamPath}}</td>
|
||||
<td class="is-center">{{scope.row.Type||"await"}}</td>
|
||||
<td class="is-center">
|
||||
<StartTime :value="scope.row.StartTime"></StartTime>
|
||||
</td>
|
||||
<td class="is-center">{{SoundFormat(scope.row.AudioInfo.SoundFormat)}}</td>
|
||||
<td class="is-center">{{SoundRate(scope.row.AudioInfo.SoundRate)}}</td>
|
||||
<td class="is-center">{{scope.row.AudioInfo.SoundType}}</td>
|
||||
<td class="is-center">{{CodecID(scope.row.VideoInfo.CodecID)}}</td>
|
||||
<td class="is-center">{{scope.row.VideoInfo.SPSInfo.Width}}x{{scope.row.VideoInfo.SPSInfo.Height}}</td>
|
||||
<td class="is-center">{{scope.row.AudioInfo.BPS}}/{{scope.row.VideoInfo.BPS}}</td>
|
||||
<td class="is-center">{{getSubscriberCount(scope.row)}}</td>
|
||||
</template>
|
||||
</mu-data-table>
|
||||
<stream-table>
|
||||
<template v-slot="scope">
|
||||
<m-button @click="preview(scope)">预览</m-button>
|
||||
<template>
|
||||
</stream-table>
|
||||
<Jessibuca ref="jessibuca" v-model="showPreview"
|
||||
:videoCodec="currentStream && CodecID(currentStream.VideoInfo.CodecID)"
|
||||
:audioCodec="currentStream && SoundFormat(currentStream.AudioInfo.SoundFormat)"></Jessibuca>
|
||||
@@ -44,69 +29,6 @@ export default {
|
||||
showPreview: false,
|
||||
currentStream: null,
|
||||
showSubscribers: false,
|
||||
columns: [
|
||||
{
|
||||
title: "房间",
|
||||
name: "StreamPath",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
name: "Type",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "开始时间",
|
||||
name: "StartTime",
|
||||
sortable: true,
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "音频格式",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "采样率",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "声道",
|
||||
name: "AudioInfo",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "视频格式",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "分辨率",
|
||||
name: "VideoInfo",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "码率Bps",
|
||||
align: "center",
|
||||
|
||||
},
|
||||
{
|
||||
title: "订阅者",
|
||||
align: "center",
|
||||
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -115,16 +37,7 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getSubscriberCount(item) {
|
||||
if (
|
||||
this.currentStream &&
|
||||
this.currentStream.StreamPath == item.StreamPath
|
||||
) {
|
||||
this.currentStream = item;
|
||||
}
|
||||
return item.SubscriberInfo ? item.SubscriberInfo.length : 0;
|
||||
},
|
||||
preview(index, row, event) {
|
||||
preview({row}) {
|
||||
this.currentStream = row;
|
||||
this.onPlay("ws://" + this.host + "/" + row.StreamPath);
|
||||
},
|
||||
|
@@ -5,7 +5,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import StartTime from "./StartTime"
|
||||
export default {
|
||||
props: {
|
||||
data: Array
|
||||
|
Reference in New Issue
Block a user