Added per-codec bitstream filter support to audio codecs.
This commit is contained in:
@@ -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{},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user