diff --git a/internal/servers/srt/streamid.go b/internal/servers/srt/streamid.go index 506b9c9c..f2684a29 100644 --- a/internal/servers/srt/streamid.go +++ b/internal/servers/srt/streamid.go @@ -67,6 +67,8 @@ func (s *streamID) unmarshal(raw string) error { "query is an optional token containing additional information") } + parts[len(parts)-1] = strings.TrimSuffix(parts[len(parts)-1], "#feedbackplay") + switch parts[0] { case "read": s.mode = streamIDModeRead diff --git a/internal/servers/srt/streamid_test.go b/internal/servers/srt/streamid_test.go index 5a128be7..11596c74 100644 --- a/internal/servers/srt/streamid_test.go +++ b/internal/servers/srt/streamid_test.go @@ -58,6 +58,16 @@ func TestStreamIDUnmarshal(t *testing.T) { path: "test3", }, }, + { + "issue 5414", + "publish:my_path:myuser:mypass#feedbackplay", + streamID{ + mode: streamIDModePublish, + path: "my_path", + user: "myuser", + pass: "mypass", + }, + }, } { t.Run(ca.name, func(t *testing.T) { var sid streamID