C++ 使用FFmpeg SDK将.flv转换为mp3时出现问题
我正在使用FFmpeg SDK以编程方式将视频转换为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
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))