音频格式与编码器的关系:自动回退机制讲清楚
设置页打开"高级设置"后,音频区会多出输出格式与编码器两个下拉项。它们决定了保存出来的文件是什么扩展名、被什么设备与软件兼容。这一页把它们的关系一次讲清。
先分清两个概念
- 编码器(Encoder):把麦克风信号压缩成数据流的算法,决定"怎么压"。
- 输出格式(Output Format / 封装):数据流装进什么容器文件,决定"包成什么"。
两者必须兼容才能工作。应用内置了一张兼容矩阵(源码中可查):AAC 系编码配 3GP/MP4/AAC_ADTS/MPEG_2_TS 等容器,AMR 系只能配自家容器,VORBIS 与 OPUS 在 Android 10 以上可配 OGG。
默认值与可选清单
默认(源码值):编码器 AAC、输出格式 AAC_ADTS——即最常见的 .aac 文件。Android 8 以下的老设备自动回落到 AMR_NB + 3GP。
编码器可选:Default、AMR_NB、AMR_WB、AAC、HE_AAC、AAC_ELD、VORBIS、OPUS。
格式可选:Default、THREE_GPP、MPEG_4、AMR_NB、AMR_WB、AAC_ADIF、AAC_ADTS、RTP_AVP、MPEG_2_TS、WEBM、HEIF、OGG。
不同组合保存出的扩展名:aac、3gp、mp4、ts、webm、amr、awb、ogg。
自动回退:你不用背这张表
源码与界面都内置了保护:选了与当前格式不兼容的编码器,应用会自动改写输出格式并弹出提示"输出格式已被更改,因为当前格式与该编码器不兼容"。换句话说,乱选不会导致坏文件,最多是被自动纠偏。倒过来选也一样——先定格式,编码器列表会按兼容性约束。
留证场景的务实建议
- 默认 AAC 就好:兼容性最广(手机、电脑、播放器通吃),人声质量足够。
- 想要单文件更小:OPUS + OGG(Android 10+)在低码率下音质最好,但个别老软件打不开 ogg 文件——交给别人之前想清楚对方设备。
- AMR 系只在兼容老设备时用:音质损失明显,是给 Android 8 以下设备准备的兜底。
- 不确定就别动:这两个选项本来就收在"高级设置"里,默认组合经过了作者的兼容性考量。
与采样率、码率的联动
格式变更会连带影响采样率的自动值(详见音质参数);码率对 AMR 系编码无效(它们是固定码率算法)。三个参数的调整顺序建议:先定格式 → 再定编码器 → 最后微调码率与采样率。