diff --git a/main.go b/main.go index 3dbf38566..1634c90a2 100644 --- a/main.go +++ b/main.go @@ -22,9 +22,11 @@ var stats *Stats var usingExternalStorage = false func main() { + // logrus.SetReportCaller(true) log.StandardLogger().Printf("Owncast v%s/%s (%s)", BuildVersion, BuildType, GitCommit) checkConfig(configuration) + resetDirectories(configuration) stats = getSavedStats() stats.Setup() @@ -42,15 +44,13 @@ func main() { go monitorVideoContent(configuration.PrivateHLSPath, configuration, storage) } + createInitialOfflineState() go startRTMPService() - resetDirectories(configuration) startWebServer() } func startWebServer() { - // log.SetFlags(log.Lshortfile) - // websocket server server = NewServer("/entry") go server.Listen() diff --git a/playlistMonitor.go b/playlistMonitor.go index 71c865dc4..87f81b0be 100644 --- a/playlistMonitor.go +++ b/playlistMonitor.go @@ -88,6 +88,9 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu case event := <-w.Event: relativePath := getRelativePathFromAbsolutePath(event.Path) + if path.Ext(relativePath) == ".tmp" { + continue + } // Ignore removals if event.Op == watcher.Remove { @@ -130,11 +133,13 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu }() // Watch the hls segment storage folder recursively for changes. + w.FilterOps(watcher.Write, watcher.Rename, watcher.Create) + if err := w.AddRecursive(pathToMonitor); err != nil { log.Fatalln(err) } - if err := w.Start(time.Millisecond * 100); err != nil { + if err := w.Start(time.Millisecond * 200); err != nil { log.Fatalln(err) } } diff --git a/utils.go b/utils.go index 5b484281e..36c84ee91 100644 --- a/utils.go +++ b/utils.go @@ -74,6 +74,9 @@ func resetDirectories(configuration Config) { os.MkdirAll(path.Join(configuration.PublicHLSPath, strconv.Itoa(0)), 0777) } +} + +func createInitialOfflineState() { // Provide default files showStreamOfflineState(configuration) if !fileExists("webroot/thumbnail.png") {