4

我正在尝试使用 AAC 解码 Android 设备上的 M4A 文件。

我使用以下代码来初始化编解码器。

codec = avcodec_find_decoder(CODEC_ID_AAC);
c= avcodec_alloc_context();
avcodec_open(c, codec);

但是,当我后来尝试使用以下方法解码帧时:

len = avcodec_decode_audio3(c, (short *)mOutbuf, &out_size, &avpkt);

我在日志中得到 -1(表示错误)和以下内容。

10-11 16:30:01.115: INFO/M4ADecoder(5260): channel element 0.0 is not allocated
10-11 16:30:02.195: INFO/M4ADecoder(5260): channel element 2.0 is not allocated
10-11 16:30:03.295: INFO/M4ADecoder(5260): channel element 0.6 is not allocated
10-11 16:30:07.645: INFO/M4ADecoder(5260): Sample rate index in program config element does not match the sample rate index configured by the container.
10-11 16:30:07.655: INFO/M4ADecoder(5260): Number of bands (3) exceeds limit (2).

设置编解码器时我还需要执行其他步骤吗?在将数据发送到 AAC 解码器之前,我是否需要预先解析文件?

相同的文件适用于 Mac OSX 上的最新 ffmpeg 代码(即 ffmpeg -i filename.m4a")。

4

0 回答 0