繁体   English   中英

在 Visual Studio C++ 上使用 ffmpeg 库编码视频时出现断言错误

[英]Assertion error when encoding video using ffmpeg library on visual studio c++

我有一个项目,我需要从 rtsp 链接接收数据、解码、调整视频大小、编码并保存到 .mp4 文件。

这是我的代码:

AVPacket destPacket;
av_init_packet(&destPacket);
destPacket.data = NULL;
destPacket.size = 0;
while(av_read_frame(i_format_context, &packet)>=0) {
    if(packet.stream_index==video_stream_index) {
        int rest = avcodec_decode_video2(copyInputCodec, pFrame, &frameFinished, &packet);
        if(frameFinished) {
            av_init_packet(&destPacket);
            destPacket.data = NULL;
            destPacket.size = 0;
            av_free_packet(&destPacket);
            //deocde here
            int ret_scale = sws_scale(sws_ctx,pFrame->data,pFrame->linesize,0,copyInputCodec->height,encodeFrame->data,encodeFrame->linesize);
            encodeFrame->pts=i;
            int ret_enc = avcodec_encode_video2(copyOutputCodec,&destPacket,encodeFrame,&encodeFinishsed);//<--- Problem here.
            getchar();
        }
    }
}

这是输出错误

[swscaler @ 00607880] 警告:数据未对齐! 这可能导致速度损失断言 avctx->codec->encode2 failed at /home/kyle/software/ffmpeg/source/ffmp eg-git/libavcodec/utils.c:2134

我尝试运行许多示例代码来编码视频,结果是一样的。

感谢帮助。

PS:对不起我的英语水平。

这里其实有两个问题:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM