适配2.0

This commit is contained in:
langhuihui
2020-05-05 14:26:32 +08:00
parent 8db637c33a
commit 0d0fa35f12
15 changed files with 113 additions and 465 deletions

21
LICENSE Normal file
View 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
View File

@@ -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
View File

@@ -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=

View File

@@ -9,7 +9,7 @@ import (
"path/filepath"
"strings"
. "github.com/Monibuca/engine"
. "github.com/Monibuca/engine/v2"
. "github.com/logrusorgru/aurora"
)

View File

@@ -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)
}

View File

@@ -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
)

File diff suppressed because one or more lines are too long

View File

@@ -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}

View File

@@ -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
)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

41
ui/package-lock.json generated
View File

@@ -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
}
}
},

View File

@@ -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);
},

View File

@@ -5,7 +5,6 @@
</template>
<script>
import StartTime from "./StartTime"
export default {
props: {
data: Array