簡體   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