package main import ( "fmt" "log" "os" "git.rpjosh.de/RPJosh/go-logger" "github.com/pulsejet/memories/go-vod/transcoder" ) const VERSION = "0.2.4" func main() { // Build initial configuration c := &transcoder.Config{ VersionMonitor: false, Version: VERSION, Bind: ":47788", ChunkSize: 2, LookBehind: 4, GoalBufferMin: 1, GoalBufferMax: 5, StreamIdleTime: 60, ManagerIdleTime: 60, } // Parse arguments for _, arg := range os.Args[1:] { if arg == "-version-monitor" { c.VersionMonitor = true } else if arg == "-version" { fmt.Print("go-vod " + VERSION) return } else { c.FromFile(arg) // config file } } // Configure logger configureLogger() // Initialize RPdb API c.RPdbAPI = transcoder.GetRPdbAPI() // Set ffmpeg path c.FFmpeg = "./ffmpeg/ffmpeg" c.FFprobe = "./ffmpeg/ffprobe" c.VAAPI = true // Auto-detect ffmpeg and ffprobe c.AutoDetect() // Start server code := transcoder.NewHandler(c).Start() // Exit log.Println("Exiting go-vod with status code", code) os.Exit(code) } // configureLogger configures the gloal logger with some default values func configureLogger() { globalLogger := logger.GetLoggerFromEnv(&logger.Logger{ File: &logger.FileLogger{}, Level: logger.LevelDebug, ColoredOutput: true, PrintSource: true, }) logger.SetGlobalLogger(globalLogger) }