1
0
mirror of https://gitlab.crans.org/nounous/ghostream.git synced 2025-08-21 05:18:39 +02:00

6 Commits

Author SHA1 Message Date
Yohann D'ANELLO
8d2adad509 Avoid infinite loop 2020-12-06 13:41:17 +01:00
Yohann D'ANELLO
0035c63c22 Add aliases auth support if the authentication method is LDAP 2020-12-06 13:36:24 +01:00
Yohann D'ANELLO
849196b4cb Add DASH player source for more compatibility 2020-11-20 03:26:10 +01:00
Yohann D'ANELLO
205c4b526c Upgrade ovenplayer, add HTML5 provider 2020-11-20 02:46:25 +01:00
Yohann D'ANELLO
1d117ea480 Config on legal mentions 2020-11-12 01:42:28 +01:00
ynerant
45cb61e436 Merge branch 'ovenmediaengine' into 'dev'
OvenMediaEngine

See merge request nounous/ghostream!8
2020-11-09 21:53:44 +01:00
15 changed files with 69 additions and 19 deletions

View File

@@ -3,12 +3,14 @@ package ldap
import (
"github.com/go-ldap/ldap/v3"
"log"
)
// Options holds package configuration
type Options struct {
URI string
UserDn string
Aliases map[string]string
URI string
UserDn string
}
// LDAP authentification backend
@@ -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)

View File

@@ -21,8 +21,11 @@
</IceCandidates>
</WebRTC>
<HLS>
<Port>80</Port>
<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,15 +91,28 @@
<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>
</VirtualHost>
</VirtualHosts>
</Server>
</Server>

View File

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

View File

@@ -42,8 +42,9 @@ func New() *Config {
Credentials: make(map[string]string),
},
LDAP: ldap.Options{
URI: "ldap://127.0.0.1:389",
UserDn: "cn=users,dc=example,dc=com",
Aliases: make(map[string]string),
URI: "ldap://127.0.0.1:389",
UserDn: "cn=users,dc=example,dc=com",
},
},
Forwarding: make(map[string][]string),

View File

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

View 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 */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View 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 */

View File

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