Browse Source

Add support for custom encoder presets

pull/5/head
Gabe Kangas 5 years ago
parent
commit
c4b6478b7b
  1. 9
      config.go
  2. 1
      config/config-example.yaml
  3. 2
      ffmpeg.go

9
config.go

@ -23,6 +23,7 @@ type Config struct { @@ -23,6 +23,7 @@ type Config struct {
type VideoSettings struct {
ChunkLengthInSeconds int `yaml:"chunkLengthInSeconds"`
StreamingKey string `yaml:"streamingKey"`
EncoderPreset string `yaml:"encoderPreset"`
StreamQualities []StreamQuality `yaml:"streamQualities"`
}
@ -85,4 +86,12 @@ func checkConfig(config Config) { @@ -85,4 +86,12 @@ func checkConfig(config Config) {
if !fileExists(config.FFMpegPath) {
panic(fmt.Sprintf("ffmpeg does not exist at %s.", config.FFMpegPath))
}
if config.VideoSettings.EncoderPreset == "" {
panic("A video encoder preset is required to be set in the config file.")
}
if len(config.VideoSettings.StreamQualities) < 1 {
panic("At least one stream quality must be set in the config file.")
}
}

1
config/config-example.yaml

@ -6,6 +6,7 @@ webServerPort: 8080 @@ -6,6 +6,7 @@ webServerPort: 8080
videoSettings:
chunkLengthInSeconds: 4
streamingKey: abc123
encoderPreset: superfast # https://trac.ffmpeg.org/wiki/Encode/H.264
streamQualities:
- bitrate: 6000k

2
ffmpeg.go

@ -48,7 +48,7 @@ func startFfmpeg(configuration Config) { @@ -48,7 +48,7 @@ func startFfmpeg(configuration Config) {
"-master_pl_name stream.m3u8",
"-g 48",
"-keyint_min 48",
"-preset superfast",
"-preset " + configuration.VideoSettings.EncoderPreset,
"-sc_threshold 0",
"-profile:v high",
"-f hls",

Loading…
Cancel
Save