我想修剪现有的aac-mp4音频文件。我第一次想“修剪”0个字节,基本上只是使用MediaCodec / MediaExtractor来复制文件。
问题:
答案 0 :(得分:3)
如果您使用MediaExtractor,您可能不会自己阅读原始文件,因此我看不到您要复制的标题。这可能是MediaExtractor + MediaMuxer最容易做到的;只需将MediaFormat和从MediaExtractor获得的数据包复制到MediaMuxer。
这取决于您希望如何进行修剪。完全不涉及MediaCodec是绝对最简单的,只需将数据包从MediaExtractor复制到MediaMuxer,并在开始时跳过要省略的数据包(或使用seekTo()
寻找正确的起始位置)。
但请记住,音频帧有一定的长度;对于AAC-LC,它通常是1024个样本,48 kHz的音频是21毫秒。因此,如果您只复制单个数据包,则对于48 kHz,您无法获得比21毫秒更接近的微调粒度。对于大多数情况,这可能很好,但如果音频采样率较低,例如8 kHZ,则粒度最高可达128 ms。
如果您希望修剪到比单个数据包允许的位置更精确的位置,则需要使用MediaCodec进行解码,跳过适量的采样,将解码器的输出帧重新打包为编码器的新全帧,并进行编码此