閱讀475 返回首頁    go 阿裏雲 go 技術社區[雲棲]


如何給視頻加邊框

  • 提取YUV數據
    ffmpeg -i input.mp4 -s 256x256 -pix_fmt yuv420p output_420.yuv

  • 將亮度分量Y設置成255

int simplest_yuv420_border(char *url, int w, int h,int border,int num){
    FILE *fp=fopen(url,"rb+");
    FILE *fp1=fopen("/Users/zhongyizengzy/Downloads/outputvideo/output_420_border.yuv","wb+");


    unsigned char *pic=(unsigned char *)malloc(w*h*3/2);

    for(int i=0;i<num;i++){

        fread(pic,1,w*h*3/2,fp);


        for(int j=0;j<h;j++){
            for(int k=0;k<w;k++){
                if(k<border||k>w-border||j<border||j>h-border){
                    pic[j*w+k] =255;
                }
            }
        }
        //Y
        fwrite(pic,1,w*h*3/2,fp1);


    }

    free(pic);
    fclose(fp);
    fclose(fp1);


    return 0;
}
  • 執行
    simplest_yuv420_border("/Users/zhongyizengzy/Downloads/outputvideo/output_420.yuv",256,256,10,240)

  • 將在border內的Y分量設置為255,處理幀數為240

最後更新:2017-09-17 22:34:32

  上一篇:go  不可思議的Word2Vec係列一數學原理
  下一篇:go  Java中的static關鍵字解析