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