0

Add support for custom encoder presets

This commit is contained in:
Gabe Kangas 2020-06-09 13:15:44 -07:00
parent de89cbc259
commit c4b6478b7b
3 changed files with 11 additions and 1 deletions

View File

@ -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) {
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.")
}
}

View File

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

View File

@ -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",