【问题标题】:Assertion error when encoding video using ffmpeg library on visual studio c++在 Visual Studio C++ 上使用 ffmpeg 库编码视频时出现断言错误
【发布时间】:2023-03-09 11:07:01
【问题描述】:

我有一个项目,我需要从 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 在 /home/kyle/software/ffmpeg/source/ffmp 失败 eg-git/libavcodec/utils.c:2134

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

感谢您的帮助。

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

【问题讨论】:

    标签: c++ ffmpeg encode rtsp


    【解决方案1】:

    这里其实有两个问题:

    【讨论】:

    • 谢谢。配置编码时我错了。查找编解码器进行解码,但使用它进行编码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2017-11-02
    • 2018-05-27
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多