FFmpeg中AVFrame.linesize的含義


在第一節FFmpeg開發教程一、FFmpeg 版 Hello world中遇到一個問題,在保存YUV的時候,粗暴的使用:

fwrite(buf, 1, xsize * ysize, f);

方式去拷貝YUV數據是有問題的,得到的圖片是這樣的:

必須通過以下循環才能得到正確的YUV:

static void save_gray_frame(unsigned char *buf, int wrap, int xsize, int ysize, char *filename)
{
    FILE *f = NULL;
    int i = 0;
    f = fopen(filename, "w");
    fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);
    ![](https://img2018.cnblogs.com/blog/919516/201905/919516-20190510142313623-420164045.jpg)


    for (i = 0; i < ysize; i++) {
        fwrite(buf + wrap * i, 1, xsize, f);
    }
    //fwrite(buf, 1, xsize * ysize, f);
    
    fclose(f);
}

網友解答:Understanding of AVFrame.linesize[]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM