Skip to content

Commit

Permalink
add FlvDrv to file support
Browse files Browse the repository at this point in the history
  • Loading branch information
sjqzhang committed Apr 19, 2019
1 parent 1ad8ba7 commit 2c5a743
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions container/flv/muxer.go
Expand Up @@ -6,6 +6,7 @@ import (
"flag"
"os"
"log"
"fmt"
"github.com/gwuhaolin/livego/utils/uid"
"github.com/gwuhaolin/livego/protocol/amf"
"github.com/gwuhaolin/livego/av"
Expand Down Expand Up @@ -136,3 +137,31 @@ func (writer *FLVWriter) Info() (ret av.Info) {
ret.Key = writer.app + "/" + writer.title
return
}
type FlvDvr struct{}

func (f *FlvDvr) GetWriter(info av.Info) av.WriteCloser {
paths := strings.SplitN(info.Key, "/", 2)
if len(paths) != 2 {

log.Println("invalid info")
return nil
}

err := os.MkdirAll(paths[0], 0755)
if err != nil {
log.Println("mkdir error:", err)
return nil
}

fileName := fmt.Sprintf("%s_%d.%s", info.Key, time.Now().Unix(), "flv")
log.Println("flv dvr save stream to: ", fileName)
w, err := os.OpenFile(fileName, os.O_CREATE|os.O_RDWR, 0755)
if err != nil {
log.Println("open file error: ", err)
return nil
}

writer := NewFLVWriter(paths[0], paths[1], info.URL, w)
log.Println("new flv dvr: ", writer.Info())
return writer
}

0 comments on commit 2c5a743

Please sign in to comment.