Added per-codec bitstream filter support to audio codecs.

This commit is contained in:
2026-04-04 19:49:37 -04:00
parent 46b9c8bd2e
commit 8d7a47293c
2 changed files with 14 additions and 1 deletions
+7
View File
@@ -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{},
}
+7 -1
View File
@@ -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.