使用 FFMPEG 将音频编码为 opus 编解码器时出现“错误:样本多于帧大小”

问题描述 投票:0回答:0

我正在使用 FFMPEG 的 libavcodec 库将音频从编解码器

AAC
转换为
Opus
。输入编解码器详细信息如下:
Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 6 channels, fltp, 391 kb/s (default)

我用于输出编码的编解码器选项如下:

    int OUTPUT_CHANNELS = 2;
    int OUTPUT_BIT_RATE = 32000;
int sample_rate = 48000;
    encoder_sc->audio_avcc->channels = OUTPUT_CHANNELS;
    encoder_sc->audio_avcc->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS);
    encoder_sc->audio_avcc->sample_rate = sample_rate;
    encoder_sc->audio_avcc->sample_fmt = encoder_sc->audio_avc->sample_fmts[0];
    encoder_sc->audio_avcc->bit_rate = OUTPUT_BIT_RATE;
    encoder_sc->audio_avcc->time_base = (AVRational){1, sample_rate};

我按原样使用文件中的代码,并进行了最小的更改:https://github.com/leandromoreira/ffmpeg-libav-tutorial/blob/master/3_transcoding.c 供参考。在文件中查找函数

prepare_audio_encoder

运行程序时,我不断收到错误消息:“样本多于帧大小”。我不太了解音频处理,所以我无法调试此错误。非常感谢任何帮助。

audio ffmpeg aac libavcodec opus
© www.soinside.com 2019 - 2024. All rights reserved.