package main import ( "flag" "fmt" "log" "net/http" "os" "segmenta/pkg/generator" "segmenta/pkg/handler" ) // How to stream a static video file as a "live" stream? func main() { var url string flag.StringVar(&url, "url", "", "URL to open") flag.Parse() if url == "" { fmt.Println("Usage:") flag.PrintDefaults() os.Exit(-1) } // open URL: client := http.Client{} resp, err := client.Get(url) if err != nil { log.Fatal(err) } defer resp.Body.Close() handler := handler.NewS3Handler("rfwatson-hls", "public-read") generator := generator.NewFFMPEGGenerator("test", resp.Body) generator.AddHandler(handler) fmt.Println("starting generator...") err = generator.Generate() if err != nil { log.Fatal(err) } fmt.Println("completed generator...") //go func() { //defer wg.Done() //watcher, err := fsnotify.NewWatcher() //if err != nil { //log.Fatal(err) //} //defer watcher.Close() //err = watcher.Add(tmpdir) //if err != nil { //panic(err) //} //for { //select { //case event, ok := <-watcher.Events: //if !ok { //return //} //log.Println("Got event.Name:", event.Name) //key := filepath.Join("test-stream", filepath.Base(event.Name)) //if event.Op&fsnotify.Create == fsnotify.Create && strings.HasSuffix(event.Name, ".m3u8") { //uploadFile(upload{event.Name, key}) //} //if event.Op&fsnotify.Write == fsnotify.Write && strings.HasSuffix(event.Name, ".ts") { //uploadFile(upload{event.Name, key}) //} //case err, ok := <-watcher.Errors: //if !ok { //return //} //log.Println("Got error:", err) //} //} //fmt.Println("sleep exited") //}() //wg.Add(2) //wg.Wait() //fmt.Println("exiting") //} }