在视频编辑领域,为视频添加背景音乐并实现音频的完美融合是一项关键任务。在上一篇文章中,我们大体介绍了添加背景音乐的整体逻辑,而本文将深入探讨其中音频合并所依赖的滤镜逻辑,通过对相关代码的详细解读,揭示音频合并的核心技术。
一、音频合并滤镜类的初始化
AudioAMixFilters类承担着管理音频合并滤镜的重任。其构造函数设置了音频的关键参数,如采样率、格式以及声道布局。
AudioAMixFilters::AudioAMixFilters(int sampleRate, AVSampleFormat format): Object("AudioAMixFilters"), aBufferSink_ctx(nullptr),filter_graph(nullptr),sample_rate(sampleRate),sample_fmt(format),ch_layout(AV_CHANNEL_LAYOUT_STEREO) {// 打印初始化的通道布局char layout_desc[64];av_channel_layout_describe(&ch_layout, layout_desc, sizeof(layout_desc));DEBUG_LOG_FAT(TAGS, "Initialized channel layout: %s", layout_desc);
}