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 Name() string
DisplayName() string DisplayName() string
FFmpegEncoderName() string FFmpegEncoderName() string
BitstreamFilters() []string
} }
// AACCodec implements AudioCodec for AAC audio. // AACCodec implements AudioCodec for AAC audio.
@@ -30,6 +31,12 @@ func (c *AACCodec) FFmpegEncoderName() string {
return aacFFmpegEncoder return aacFFmpegEncoder
} }
func (c *AACCodec) BitstreamFilters() []string {
return []string{
// "aac_adtstoasc", // Required for fMP4 segments, not needed yet.
}
}
var audioCodecRegistry = map[string]AudioCodec{ var audioCodecRegistry = map[string]AudioCodec{
audioCodecAAC: &AACCodec{}, audioCodecAAC: &AACCodec{},
} }
+7 -1
View File
@@ -469,11 +469,17 @@ func (v *HLSVariant) getAudioQualityString() []string {
} }
} }
return []string{ flags := []string{
"-map", "a:0?", "-map", "a:0?",
fmt.Sprintf("-c:a:%d", v.index), v.audioCodec.FFmpegEncoderName(), fmt.Sprintf("-c:a:%d", v.index), v.audioCodec.FFmpegEncoderName(),
fmt.Sprintf("-b:a:%d", v.index), v.audioBitrate, 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. // AddVariant adds a new HLS variant to include in the output.