Browse Source

Add support for stopping the transcoding process

pull/53/head
Gabe Kangas 5 years ago
parent
commit
8f832dad5a
  1. 14
      core/ffmpeg/transcoder.go

14
core/ffmpeg/transcoder.go

@ -13,6 +13,8 @@ import (
"github.com/gabek/owncast/utils" "github.com/gabek/owncast/utils"
) )
var _commandExec *exec.Cmd
// Transcoder is a single instance of a video transcoder // Transcoder is a single instance of a video transcoder
type Transcoder struct { type Transcoder struct {
input string input string
@ -61,6 +63,13 @@ func (v *VideoSize) getString() string {
return "" return ""
} }
func (t *Transcoder) Stop() {
error := _commandExec.Process.Kill()
if error != nil {
log.Errorln(error)
}
}
// Start will execute the transcoding process with the settings previously set. // Start will execute the transcoding process with the settings previously set.
func (t *Transcoder) Start() { func (t *Transcoder) Start() {
command := t.getString() command := t.getString()
@ -71,7 +80,8 @@ func (t *Transcoder) Start() {
log.Println(command) log.Println(command)
} }
_, err := exec.Command("sh", "-c", command).Output() _commandExec = exec.Command("sh", "-c", command)
err := _commandExec.Start()
if err != nil { if err != nil {
log.Errorln("Transcoder error. See transcoder.log for full output to debug.") log.Errorln("Transcoder error. See transcoder.log for full output to debug.")
log.Panicln(err, command) log.Panicln(err, command)
@ -221,7 +231,7 @@ func (t *Transcoder) getVariantsString() string {
for _, variant := range t.variants { for _, variant := range t.variants {
variantsCommandFlags = variantsCommandFlags + " " + variant.getVariantString() variantsCommandFlags = variantsCommandFlags + " " + variant.getVariantString()
variantsStreamMaps = variantsStreamMaps + fmt.Sprintf("v:%d?,a:%d? ", variant.index, variant.index) variantsStreamMaps = variantsStreamMaps + fmt.Sprintf("v:%d,a:%d ", variant.index, variant.index)
} }
variantsCommandFlags = variantsCommandFlags + " " + variantsStreamMaps + "\"" variantsCommandFlags = variantsCommandFlags + " " + variantsStreamMaps + "\""

Loading…
Cancel
Save