C++ 使用FFmpeg SDK将.flv转换为mp3时出现问题

C++ 使用FFmpeg SDK将.flv转换为mp3时出现问题,c++,ffmpeg,mp3,flv,C++,Ffmpeg,Mp3,Flv,我正在使用FFmpeg SDK以编程方式将视频转换为mp3 我通过以下方式读取视频的音频帧: while(av_read_frame(pFromCtx, &pkt) >= 0) { if(pkt.stream_index == audioStreamIndex) { avcodec_get_frame_defaults(frame); got_frame = 0; ret

我正在使用FFmpeg SDK以编程方式将视频转换为mp3

我通过以下方式读取视频的音频帧:

while(av_read_frame(pFromCtx, &pkt) >= 0) 
{
    if(pkt.stream_index == audioStreamIndex) 
    {        
        avcodec_get_frame_defaults(frame);
        got_frame = 0;              
        ret = avcodec_decode_audio4(pCodecCtx, frame, &got_frame, &pkt);                
        if (ret < 0) {
            av_log(NULL, AV_LOG_ERROR, "Error decoding audio frame.\n");            
            continue;
        }

        if(got_frame) 
        {                    
          // Write the decoded audio frame           
          write_audio_frame(pToCtx, pToCtx->streams[pToCtx->nb_streams-1], frame);                    
        }                        
    }
    av_free_packet(&pkt);     
}
该代码仅适用于.flv文件,适用于.mp4文件。你知道错误信息是什么意思吗


谢谢

包含错误消息的源代码在这里:。有关人士说,

if (frame->linesize[0] < 4 * FFALIGN(frame->nb_samples, 8)) {
    av_log(avctx, AV_LOG_ERROR, "inadequate AVFrame plane padding\n");
    return AVERROR(EINVAL);
}

非常感谢。这是否意味着.flv的解码器会产生无法用libmp3lame编码的音频样本?我是否需要先解码为另一种格式?
这是否意味着.flv的解码器会产生无法用libmp3lame编码的音频样本?
--显然,.flv解码器没有满足这一特定的期望<代码>我需要先解码成另一种格式吗?——这可能行得通。
[libmp3lame] inadequate AVFrame plane padding
if (frame->linesize[0] < 4 * FFALIGN(frame->nb_samples, 8)) {
    av_log(avctx, AV_LOG_ERROR, "inadequate AVFrame plane padding\n");
    return AVERROR(EINVAL);
}
#define FFALIGN (x,a)(((x)+(a)-1)&~((a)-1))