segmento/main.go

94 lines
1.6 KiB
Go

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")
//}
}