Added per-codec bitstream filter support to audio codecs.
This commit is contained in:
@@ -11,6 +11,7 @@ type AudioCodec interface {
|
||||
Name() string
|
||||
DisplayName() string
|
||||
FFmpegEncoderName() string
|
||||
BitstreamFilters() []string
|
||||
}
|
||||
|
||||
// AACCodec implements AudioCodec for AAC audio.
|
||||
@@ -30,6 +31,12 @@ func (c *AACCodec) FFmpegEncoderName() string {
|
||||
return aacFFmpegEncoder
|
||||
}
|
||||
|
||||
func (c *AACCodec) BitstreamFilters() []string {
|
||||
return []string{
|
||||
// "aac_adtstoasc", // Required for fMP4 segments, not needed yet.
|
||||
}
|
||||
}
|
||||
|
||||
var audioCodecRegistry = map[string]AudioCodec{
|
||||
audioCodecAAC: &AACCodec{},
|
||||
}
|
||||
|
||||
@@ -469,11 +469,17 @@ func (v *HLSVariant) getAudioQualityString() []string {
|
||||
}
|
||||
}
|
||||
|
||||
return []string{
|
||||
flags := []string{
|
||||
"-map", "a:0?",
|
||||
fmt.Sprintf("-c:a:%d", v.index), v.audioCodec.FFmpegEncoderName(),
|
||||
fmt.Sprintf("-b:a:%d", v.index), v.audioBitrate,
|
||||
}
|
||||
|
||||
for _, bsf := range v.audioCodec.BitstreamFilters() {
|
||||
flags = append(flags, fmt.Sprintf("-bsf:a:%d", v.index), bsf)
|
||||
}
|
||||
|
||||
return flags
|
||||
}
|
||||
|
||||
// AddVariant adds a new HLS variant to include in the output.
|
||||
|
||||
Reference in New Issue
Block a user