From 01e7c955bf11a021b73888b4006b3defedef88ee Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Sat, 25 Jan 2025 03:13:17 +0800 Subject: [PATCH] zlm api --- go.mod | 8 +-- go.sum | 48 ++------------ pkg/services/zlmediakit/api_test.go | 21 +++++- pkg/services/zlmediakit/types/base.go | 5 +- pkg/services/zlmediakit/types/media.go | 55 ++++++++++++++++ pkg/services/zlmediakit/types/rtp.go | 65 +++++++++++++++++++ .../zlmediakit/types/server_config.go | 4 +- pkg/services/zlmediakit/types/status.go | 28 ++++++++ pkg/services/zlmediakit/types/version.go | 4 +- 9 files changed, 184 insertions(+), 54 deletions(-) create mode 100644 pkg/services/zlmediakit/types/media.go create mode 100644 pkg/services/zlmediakit/types/rtp.go create mode 100644 pkg/services/zlmediakit/types/status.go diff --git a/go.mod b/go.mod index 026015a..070f63c 100644 --- a/go.mod +++ b/go.mod @@ -4,19 +4,19 @@ go 1.23.5 require ( github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 + github.com/duke-git/lancet/v2 v2.3.4 github.com/emiago/sipgo v0.28.0 + github.com/go-resty/resty/v2 v2.16.5 github.com/icholy/digest v1.1.0 github.com/pelletier/go-toml/v2 v2.2.2 + github.com/rs/zerolog v1.33.0 github.com/spf13/viper v1.19.0 - go.uber.org/atomic v1.9.0 - go.uber.org/zap v1.21.0 golang.org/x/net v0.34.0 golang.org/x/text v0.21.0 ) require ( github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-resty/resty/v2 v2.16.5 // indirect github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/pool v0.2.1 // indirect github.com/gobwas/ws v1.4.0 // indirect @@ -26,7 +26,6 @@ require ( github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect @@ -35,6 +34,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.6.0 // indirect + go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/sys v0.29.0 // indirect diff --git a/go.sum b/go.sum index 45f41ca..84f5961 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,12 @@ github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ= github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394/go.mod h1:Q8n74mJTIgjX4RBBcHnJ05h//6/k6foqmgE45jTQtxg= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/duke-git/lancet/v2 v2.3.4 h1:8XGI7P9w+/GqmEBEXYaH/XuNiM0f4/90Ioti0IvYJls= +github.com/duke-git/lancet/v2 v2.3.4/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc= github.com/emiago/sipgo v0.28.0 h1:wW9W+p89ldLbKOhXhj9BHo6U39vuWdUc0WVZ+E3rk6Y= github.com/emiago/sipgo v0.28.0/go.mod h1:ZQ/tl5t+3assyOjiKw/AInPkcawBJ2Or+d5buztOZsc= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -30,11 +30,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/icholy/digest v1.1.0 h1:HfGg9Irj7i+IX1o1QAmPfIBNu/Q5A5Tu3n/MED9k9H4= github.com/icholy/digest v1.1.0/go.mod h1:QNrsSGQ5v7v9cReDI0+eyjsXGUoRSUZQHeQ5C4XLa0Y= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -50,8 +47,6 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= @@ -82,7 +77,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -90,63 +84,29 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= diff --git a/pkg/services/zlmediakit/api_test.go b/pkg/services/zlmediakit/api_test.go index 241cfc1..dd9fbb4 100644 --- a/pkg/services/zlmediakit/api_test.go +++ b/pkg/services/zlmediakit/api_test.go @@ -4,6 +4,8 @@ import ( "encoding/json" "fmt" "git.skcks.cn/Shikong/go-gb28181/pkg/services/zlmediakit/types" + "github.com/duke-git/lancet/v2/convertor" + "github.com/duke-git/lancet/v2/netutil" "github.com/go-resty/resty/v2" "testing" ) @@ -18,13 +20,13 @@ func TestZLMediaKit_API(t *testing.T) { versionResp, err := zLMediaKitService.client.R().Get("/index/api/version") printRequest(versionResp, err) - version := &types.Data[types.VersionResp]{} + version := &types.VersionResp{} _ = json.Unmarshal(versionResp.Body(), &version) fmt.Printf("Version: %+v\n\n", version) serverConfigResp, err := zLMediaKitService.client.R().Get("/index/api/getServerConfig") printRequest(serverConfigResp, err) - serverConfig := &types.Data[types.ServerConfigResp]{} + serverConfig := &types.ServerConfigResp{} _ = json.Unmarshal(serverConfigResp.Body(), &serverConfig) fmt.Printf("ServerConfig: %+v\n\n", serverConfig) @@ -66,3 +68,18 @@ func printResponseTrace(resp *resty.Response) { fmt.Println(" RemoteAddr :", ti.RemoteAddr.String()) fmt.Println() } + +func TestConvertor(t *testing.T) { + m, _ := convertor.StructToMap(&types.OpenRtpServerReq{ + Port: 5050, + TcpMode: 0, + StreamId: "123456", + }) + + t.Log(m) + + resp, _ := resty.New().R(). + SetQueryString(netutil.ConvertMapToQueryString(m)).Get("/index/api/openRtpServer") + + t.Log(resp.Request.URL) +} diff --git a/pkg/services/zlmediakit/types/base.go b/pkg/services/zlmediakit/types/base.go index b6b8b46..4886aca 100644 --- a/pkg/services/zlmediakit/types/base.go +++ b/pkg/services/zlmediakit/types/base.go @@ -1,6 +1,7 @@ package types type Data[T any] struct { - Code int `json:"code"` - Data T `json:"data"` + Code int `json:"code"` + Data T `json:"data"` + Msg string `json:"msg"` } diff --git a/pkg/services/zlmediakit/types/media.go b/pkg/services/zlmediakit/types/media.go new file mode 100644 index 0000000..e7dc64a --- /dev/null +++ b/pkg/services/zlmediakit/types/media.go @@ -0,0 +1,55 @@ +package types + +type GetMediaListReq struct { + Schema string `json:"schema"` + Vhost string `json:"vhost"` + App string `json:"app"` + Stream string `json:"stream"` +} + +type MediaOriginSock struct { + Identifier string `json:"identifier"` + LocalIP string `json:"local_ip"` + LocalPort int `json:"local_port"` + PeerIP string `json:"peer_ip"` + PeerPort int `json:"peer_port"` +} + +type MediaTrack struct { + Channels int `json:"channels"` + CodecId int `json:"codec_id"` + CodecIdName string `json:"codec_id_name"` + CodecType int `json:"codec_type"` + Fps int `json:"fps"` + Frames int64 `json:"frames"` + GopIntervalMs int64 `json:"gop_interval_ms"` + GopSize int64 `json:"gop_size"` + KeyFrames int64 `json:"key_frames"` + Ready bool `json:"ready"` + Height int `json:"height"` + Width int `json:"width"` + SampleBit int `json:"sample_bit"` + SampleRate int `json:"sample_rate"` +} + +type GetMediaListResp struct { + Schema string `json:"schema"` + Vhost string `json:"vhost"` + App string `json:"app"` + Stream string `json:"stream"` + + ReaderCount int64 `json:"readerCount"` + TotalReaderCount int64 `json:"totalReaderCount"` + + OriginSock MediaOriginSock `json:"originSock"` + + OriginType int `json:"originType"` + OriginTypeStr string `json:"originTypeStr"` + OriginUrl string `json:"originUrl"` + + CreateStamp int64 `json:"createStamp"` + AliveSecond int64 `json:"aliveSecond"` + BytesSpeed int64 `json:"bytesSpeed"` + + Tracks []MediaTrack `json:"tracks"` +} diff --git a/pkg/services/zlmediakit/types/rtp.go b/pkg/services/zlmediakit/types/rtp.go new file mode 100644 index 0000000..0d53306 --- /dev/null +++ b/pkg/services/zlmediakit/types/rtp.go @@ -0,0 +1,65 @@ +package types + +type OpenRtpServerReq struct { + Port int `json:"port"` + TcpMode int `json:"tcp_mode"` + StreamId string `json:"stream_id"` +} + +type OpenRtpServerResp struct { + Code int `json:"code"` + Port int `json:"port"` +} + +type CloseRtpServerReq struct { + StreamId string `json:"stream_id"` +} + +type CloseRtpServerResp struct { + Code int `json:"code"` + Hit int `json:"hit"` +} + +type StartSendRtpReq struct { + Vhost string `json:"vhost"` + App string `json:"app"` + Stream string `json:"stream"` + Ssrc string `json:"ssrc"` + DstUrl string `json:"dst_url"` + DstPort int `json:"dst_port"` + IsUdp bool `json:"is_udp"` + SrcPort int `json:"src_port"` + Pt int `json:"pt"` + UsePs bool `json:"use_ps"` + OnlyAudio bool `json:"only_audio"` +} + +type StartSendRtpPassiveReq struct { + Vhost string `json:"vhost"` + App string `json:"app"` + Stream string `json:"stream"` + Ssrc string `json:"ssrc"` + SrcPort int `json:"src_port"` + Pt int `json:"pt"` + UsePs bool `json:"use_ps"` + OnlyAudio bool `json:"only_audio"` +} + +type StartSendRtpResp struct { + Code int `json:"code"` + LocalPort int `json:"local_port"` +} + +type StopSendRtpReq struct { + Vhost string `json:"vhost"` + App string `json:"app"` + Stream string `json:"stream"` + Ssrc string `json:"ssrc"` +} + +type RtpServer struct { + Port int `json:"port"` + StreamId string `json:"stream_id"` +} + +type ListRtpServerResp = Data[[]RtpServer] diff --git a/pkg/services/zlmediakit/types/server_config.go b/pkg/services/zlmediakit/types/server_config.go index ba668c1..e401715 100644 --- a/pkg/services/zlmediakit/types/server_config.go +++ b/pkg/services/zlmediakit/types/server_config.go @@ -1,6 +1,8 @@ package types -type ServerConfigResp = []ServerConfig +type ServerConfigResp = Data[ServerConfigRespRaw] + +type ServerConfigRespRaw = []ServerConfig type ServerConfig struct { ApiApiDebug string `json:"api.apiDebug"` diff --git a/pkg/services/zlmediakit/types/status.go b/pkg/services/zlmediakit/types/status.go new file mode 100644 index 0000000..ccc8aea --- /dev/null +++ b/pkg/services/zlmediakit/types/status.go @@ -0,0 +1,28 @@ +package types + +type RecordStatus struct { + Code int `json:"code"` + Msg string `json:"msg"` +} + +func (s RecordStatus) String() string { + return enums[s.Code] +} + +var enums = map[int]string{ + -999: "未知异常", + -400: "代码抛异常", + -300: "参数不合法", + -200: "sql执行失败", + -100: "鉴权失败", + -1: "业务代码执行失败", + 0: "执行成功", +} + +var RecordStatusUnknownError = RecordStatus{-999, "未知异常"} +var RecordStatusCodeThrowError = RecordStatus{-400, "代码抛异常"} +var RecordStatusParamIllegalError = RecordStatus{-300, "参数不合法"} +var RecordStatusSqlExecuteError = RecordStatus{-200, "sql执行失败"} +var RecordStatusAuthError = RecordStatus{-100, "鉴权失败"} +var RecordStatusBusinessExecuteError = RecordStatus{-1, "业务代码执行失败"} +var RecordStatusSuccess = RecordStatus{0, "执行成功"} diff --git a/pkg/services/zlmediakit/types/version.go b/pkg/services/zlmediakit/types/version.go index 7ec0776..37df30f 100644 --- a/pkg/services/zlmediakit/types/version.go +++ b/pkg/services/zlmediakit/types/version.go @@ -1,6 +1,8 @@ package types -type VersionResp struct { +type VersionResp = Data[VersionRespRaw] + +type VersionRespRaw struct { BranchName string `json:"branchName"` BuildTime string `json:"buildTime"` CommitHash string `json:"commitHash"`