diff --git a/container/flv/muxer.go b/container/flv/muxer.go index 932b261..84017ce 100755 --- a/container/flv/muxer.go +++ b/container/flv/muxer.go @@ -150,15 +150,11 @@ func (writer *FLVWriter) Info() (ret av.Info) { type FlvDvr struct{} func (f *FlvDvr) GetWriter(info av.Info) av.WriteCloser { - paths := strings.SplitN(info.Key, "/", 2) - if len(paths) != 2 { - log.Warning("invalid info") - return nil - } + paths := strings.Split(info.Key, "/") flvDir := configure.Config.GetString("flv_dir") - err := os.MkdirAll(path.Join(flvDir, paths[0]), 0755) + err := os.MkdirAll(path.Join(append([]string{flvDir}, paths[:len(paths)-1]...)...), 0755) if err != nil { log.Error("mkdir error: ", err) return nil @@ -172,7 +168,7 @@ func (f *FlvDvr) GetWriter(info av.Info) av.WriteCloser { return nil } - writer := NewFLVWriter(paths[0], paths[1], info.URL, w) + writer := NewFLVWriter(strings.Join(paths[:len(paths)-1], "/"), paths[len(paths)-1], info.URL, w) log.Debug("new flv dvr: ", writer.Info()) return writer }