mirror of
https://gitlab.crans.org/nounous/ghostream.git
synced 2025-07-02 03:18:29 +02:00
Compare commits
6 Commits
ovenmediae
...
8d2adad509
Author | SHA1 | Date | |
---|---|---|---|
8d2adad509 | |||
0035c63c22 | |||
849196b4cb | |||
205c4b526c | |||
1d117ea480 | |||
45cb61e436 |
@ -3,10 +3,12 @@ package ldap
|
||||
|
||||
import (
|
||||
"github.com/go-ldap/ldap/v3"
|
||||
"log"
|
||||
)
|
||||
|
||||
// Options holds package configuration
|
||||
type Options struct {
|
||||
Aliases map[string]string
|
||||
URI string
|
||||
UserDn string
|
||||
}
|
||||
@ -20,6 +22,12 @@ type LDAP struct {
|
||||
// Login tries to bind to LDAP
|
||||
// Returns (true, nil) if success
|
||||
func (a LDAP) Login(username string, password string) (bool, error) {
|
||||
// Resolve stream alias if necessary
|
||||
for aliasFor, ok := a.Cfg.Aliases[username]; ok; aliasFor, ok = a.Cfg.Aliases[username] {
|
||||
log.Printf("[LDAP] Use stream alias %s for username %s", username, aliasFor)
|
||||
username = aliasFor
|
||||
}
|
||||
|
||||
// Try to bind as user
|
||||
bindDn := "cn=" + username + "," + a.Cfg.UserDn
|
||||
err := a.Conn.Bind(bindDn, password)
|
||||
|
@ -23,6 +23,9 @@
|
||||
<HLS>
|
||||
<Port>80</Port>
|
||||
</HLS>
|
||||
<DASH>
|
||||
<Port>80</Port>
|
||||
</DASH>
|
||||
</Publishers>
|
||||
</Bind>
|
||||
|
||||
@ -52,14 +55,15 @@
|
||||
</Video>
|
||||
</Encode>
|
||||
<Encode>
|
||||
<Name>BYPASS</Name>
|
||||
<Video>
|
||||
<Bypass>true</Bypass>
|
||||
</Video>
|
||||
<Name>bypass</Name>
|
||||
<Audio>
|
||||
<Bypass>true</Bypass>
|
||||
</Audio>
|
||||
<Video>
|
||||
<Bypass>true</Bypass>
|
||||
</Video>
|
||||
</Encode>
|
||||
|
||||
</Encodes>
|
||||
<Streams>
|
||||
<Stream>
|
||||
@ -71,9 +75,10 @@
|
||||
<Stream>
|
||||
<Name>${OriginStreamName}_bypass</Name>
|
||||
<Profiles>
|
||||
<Profile>BYPASS</Profile>
|
||||
<Profile>bypass</Profile>
|
||||
</Profiles>
|
||||
</Stream>
|
||||
|
||||
</Streams>
|
||||
<Providers>
|
||||
<RTMP>
|
||||
@ -86,12 +91,25 @@
|
||||
<Timeout>30000</Timeout>
|
||||
</WebRTC>
|
||||
<HLS>
|
||||
<SegmentDuration>5</SegmentDuration>
|
||||
<SegmentDuration>2</SegmentDuration>
|
||||
<SegmentCount>2</SegmentCount>
|
||||
<CrossDomain>
|
||||
<Url>*</Url>
|
||||
</CrossDomain>
|
||||
</HLS>
|
||||
<DASH>
|
||||
<SegmentDuration>2</SegmentDuration>
|
||||
<SegmentCount>2</SegmentCount>
|
||||
<CrossDomain>
|
||||
<Url>*</Url>
|
||||
</CrossDomain>
|
||||
</DASH>
|
||||
<LLDASH>
|
||||
<SegmentDuration>2</SegmentDuration>
|
||||
<CrossDomain>
|
||||
<Url>*</Url>
|
||||
</CrossDomain>
|
||||
</LLDASH>
|
||||
</Publishers>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
@ -34,6 +34,11 @@ auth:
|
||||
#ldap:
|
||||
# uri: ldap://127.0.0.1:389
|
||||
# userdn: cn=users,dc=example,dc=com
|
||||
#
|
||||
# # You can define aliases, to stream on stream.example.com/example with the credentials of the demo account.
|
||||
# aliases:
|
||||
# example: demo
|
||||
#
|
||||
|
||||
## Stream forwarding ##
|
||||
# Forward an incoming stream to other servers
|
||||
|
@ -42,6 +42,7 @@ func New() *Config {
|
||||
Credentials: make(map[string]string),
|
||||
},
|
||||
LDAP: ldap.Options{
|
||||
Aliases: make(map[string]string),
|
||||
URI: "ldap://127.0.0.1:389",
|
||||
UserDn: "cn=users,dc=example,dc=com",
|
||||
},
|
||||
|
@ -47,10 +47,20 @@ export function initViewerPage(stream, omeApp, viewersCounterRefreshPeriod, post
|
||||
"label": " WebRTC - Source"
|
||||
},
|
||||
{
|
||||
"type": "hls",
|
||||
"file": "https://" + window.location.host + "/" + omeApp + "/" + stream + "_bypass/playlist.m3u8",
|
||||
"type": "hls",
|
||||
"label": " HLS"
|
||||
}
|
||||
},
|
||||
{
|
||||
"file": "https://" + window.location.host + "/" + omeApp + "/" + stream + "_bypass/manifest.mpd",
|
||||
"type": "dash",
|
||||
"label": "DASH"
|
||||
},
|
||||
{
|
||||
"file": "https://" + window.location.host + "/" + omeApp + "/" + stream + "_bypass/manifest_ll.mpd",
|
||||
"type": "dash",
|
||||
"label": "LL-DASH"
|
||||
},
|
||||
]
|
||||
});
|
||||
player.on("stateChanged", function (data) {
|
||||
|
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
File diff suppressed because one or more lines are too long
2
web/static/ovenplayer/ovenplayer.provider.Html5-0.9.0.js
Normal file
2
web/static/ovenplayer/ovenplayer.provider.Html5-0.9.0.js
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
/*! OvenPlayerv0.9.0 | (c)2020 AirenSoft Co., Ltd. | MIT license (https://github.com/AirenSoft/OvenPlayerPrivate/blob/master/LICENSE) | Github : https://github.com/AirenSoft/OvenPlayer */
|
File diff suppressed because one or more lines are too long
2
web/static/ovenplayer/ovenplayer.sdk.js
Normal file
2
web/static/ovenplayer/ovenplayer.sdk.js
Normal file
File diff suppressed because one or more lines are too long
1
web/static/ovenplayer/ovenplayer.sdk.js.LICENSE
Normal file
1
web/static/ovenplayer/ovenplayer.sdk.js.LICENSE
Normal file
@ -0,0 +1 @@
|
||||
/*! OvenPlayerv0.9.0 | (c)2020 AirenSoft Co., Ltd. | MIT license (https://github.com/AirenSoft/OvenPlayerPrivate/blob/master/LICENSE) | Github : https://github.com/AirenSoft/OvenPlayer */
|
@ -36,6 +36,7 @@
|
||||
|
||||
{{if .OMECfg.Enabled}}
|
||||
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/dashjs/2.9.3/dash.all.min.js"></script>
|
||||
<script src="/static/ovenplayer/ovenplayer.js"></script>
|
||||
<script src="/static/js/ovenplayer.js"></script>
|
||||
{{end}}
|
||||
|
Reference in New Issue
Block a user