Browse Source

Create hls directories at transcoder start to account for stream output changes. Fixes #940

pull/941/head
Gabe Kangas 4 years ago
parent
commit
543577c2e0
  1. 26
      core/core.go
  2. 1
      core/transcoder/transcoder.go
  3. 36
      core/transcoder/utils.go

26
core/core.go

@ -4,7 +4,6 @@ import ( @@ -4,7 +4,6 @@ import (
"os"
"path"
"path/filepath"
"strconv"
log "github.com/sirupsen/logrus"
@ -132,31 +131,6 @@ func resetDirectories() { @@ -132,31 +131,6 @@ func resetDirectories() {
// Remove the previous thumbnail
os.Remove(filepath.Join(config.WebRoot, "thumbnail.jpg"))
// Create private hls data dirs
if len(data.GetStreamOutputVariants()) != 0 {
for index := range data.GetStreamOutputVariants() {
err = os.MkdirAll(path.Join(config.PrivateHLSStoragePath, strconv.Itoa(index)), 0777)
if err != nil {
log.Fatalln(err)
}
err = os.MkdirAll(path.Join(config.PublicHLSStoragePath, strconv.Itoa(index)), 0777)
if err != nil {
log.Fatalln(err)
}
}
} else {
err = os.MkdirAll(path.Join(config.PrivateHLSStoragePath, strconv.Itoa(0)), 0777)
if err != nil {
log.Fatalln(err)
}
err = os.MkdirAll(path.Join(config.PublicHLSStoragePath, strconv.Itoa(0)), 0777)
if err != nil {
log.Fatalln(err)
}
}
// Remove the previous thumbnail
logo := data.GetLogoPath()
err = utils.Copy(path.Join("data", logo), "webroot/thumbnail.jpg")

1
core/transcoder/transcoder.go

@ -87,6 +87,7 @@ func (t *Transcoder) Start() { @@ -87,6 +87,7 @@ func (t *Transcoder) Start() {
command := t.getString()
log.Infof("Video transcoder started using %s with %d stream variants.", t.codec.DisplayName(), len(t.variants))
createVariantDirectories()
if config.EnableDebugFeatures {
log.Println(command)

36
core/transcoder/utils.go

@ -1,9 +1,14 @@ @@ -1,9 +1,14 @@
package transcoder
import (
"os"
"path"
"strconv"
"strings"
"sync"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
log "github.com/sirupsen/logrus"
)
@ -79,3 +84,34 @@ func handleTranscoderMessage(message string) { @@ -79,3 +84,34 @@ func handleTranscoderMessage(message string) {
_lastTranscoderLogMessage = message
}
func createVariantDirectories() {
// Create private hls data dirs
if len(data.GetStreamOutputVariants()) != 0 {
for index := range data.GetStreamOutputVariants() {
err := os.MkdirAll(path.Join(config.PrivateHLSStoragePath, strconv.Itoa(index)), 0777)
if err != nil {
log.Fatalln(err)
}
dir := path.Join(config.PublicHLSStoragePath, strconv.Itoa(index))
log.Traceln("Creating", dir)
err = os.MkdirAll(dir, 0777)
if err != nil {
log.Fatalln(err)
}
}
} else {
dir := path.Join(config.PrivateHLSStoragePath, strconv.Itoa(0))
log.Traceln("Creating", dir)
err := os.MkdirAll(dir, 0777)
if err != nil {
log.Fatalln(err)
}
dir = path.Join(config.PublicHLSStoragePath, strconv.Itoa(0))
log.Traceln("Creating", dir)
err = os.MkdirAll(dir, 0777)
if err != nil {
log.Fatalln(err)
}
}
}

Loading…
Cancel
Save