@@ -11,11 +11,12 @@ import (
1111)
1212
1313var (
14- bsPort = flag .Int ("bs-port" , 9999 , "Port for the Browser Source web app" )
15- toAddr = flag .Int ("udp-port" , 5002 , "Port for the UDP down stream" )
16- wsPort = flag .Int ("ws-port" , 8888 , "WebSocket server port" )
17- srtlaPort = flag .Int ("srtla-port" , 5000 , "Port for the SRTLA upstream" )
18- verbose = flag .Bool ("verbose" , false , "Enable verbose logging in srtla" )
14+ bsPort = flag .Int ("bs-port" , 9999 , "Port for the Browser Source web app" )
15+ toAddr = flag .Int ("udp-port" , 5002 , "Port for the UDP down stream" )
16+ wsPort = flag .Int ("ws-port" , 8888 , "WebSocket server port" )
17+ srtlaPort = flag .Int ("srtla-port" , 5000 , "Port for the SRTLA upstream" )
18+ passphrase = flag .String ("passphrase" , "" , "Passphrase for SRT stream encryption" )
19+ verbose = flag .Bool ("verbose" , false , "Enable verbose logging in srtla" )
1920)
2021
2122func getFreePort () (int , error ) {
@@ -35,16 +36,27 @@ func getFreePort() (int, error) {
3536func main () {
3637 flag .Parse ()
3738
39+ if * passphrase != "" && len (* passphrase ) < 10 {
40+ log .Fatalf ("Passphrase must be at least 10 characters long" )
41+ }
42+
43+ if * passphrase == "" {
44+ log .Println ("WARNING: No passphrase set. SRT stream will be unencrypted." )
45+ }
46+
3847 log .SetFlags (0 )
3948
4049 internalSrtPort , err := getFreePort ()
4150 if err != nil {
4251 log .Fatalf ("Failed to find a free port for internal SRT: %v" , err )
4352 }
44-
53+
4554 log .Printf ("Using dynamic port %d for internal SRT communication." , internalSrtPort )
4655
4756 fromAddr := fmt .Sprintf ("srt://127.0.0.1:%d?mode=listener" , internalSrtPort )
57+ if * passphrase != "" {
58+ fromAddr = fmt .Sprintf ("srt://127.0.0.1:%d?mode=listener&passphrase=%s" , internalSrtPort , * passphrase )
59+ }
4860
4961 go runBrowserSource (* bsPort )
5062
0 commit comments