Advertisement

[FFMPEG]问题:音频aac编码错误

阅读量:

1.背景

在进行音频 AAC 编码过程中,当调用函数接口 avcodec_encode_audio2 时,系统返回了如下错误提示信息:[aac @ 0x7f7bb40184a0] 所提供的采样数量超过了单帧的最大容量(avcodec_encode_audio2)。

2.原因

复制代码
    if (frame->nb_samples > avctx->frame_size) {
    av_log(avctx, AV_LOG_ERROR, "more samples than frame size (avcodec_encode_audio2)\n");
    ret = AVERROR(EINVAL);
    goto end;
    }

解析:
frame->nb_samples:表示在实际进行音频编码过程中所采用的采样数量;
avctx->frame_size:指的是在音频编码前预先设定的采样率参数。

3. 解决 的方案

从成因分析可知,问题源于输入至编码器的每帧采样数量与预设音频编码采样率之间存在差异,解决方式在于使二者保持同步。

具体实施途径为:将每次获取的音频帧数据暂存于AUDIO FIFO缓冲区中,待累计至frame_size容量时,再将这些数据传输至音频编码器进行处理。

2021.05.25记:FF

全部评论 (0)

还没有任何评论哟~