利用图片模拟生成测试视频

    技术2026-02-22  40

    图像截取

    代码也很简单,主要是滑动截取图像里面的内容,以一个16000x4320得图像为例,如果想生成4096x3840的图像,则有多种策略进行生成,比如 (1)只横向移动,每次10pixel (2)横向纵向都移动,横纵每次各10pixel (3)…等 本次只用到了最简单的横向移动,代码如下

    int xxx__main() { Mat out(Size(4096, 3840), 1); Mat src = imread("D:/testImg/lunwen/m_v1/v1.png", 1); int w = src.cols - 4096; int start = 0; int i = 0; int out_cnt = 30; for (start = 0; start <= w; start+= 10) { out = src(Rect(start, 0,4096,3840)); imwrite("D:/testImg/lunwen/m_v1/out" + to_string(i++) + ".png", out); if (i >= out_cnt) break; } return 0; }

    图像合成

    利用ffmpeg将图像进行合成得到yuv原始图像,代码如下:

    ffmpeg.exe -f image2 -i out%%d.png -pix_fmt nv12 v_roi2_3200x2160.yuv

    其次,还可以生成gif预览下效果,代码如下

    ffmpeg -i out%d.jpeg -r 60 out.gif
    Processed: 0.025, SQL: 9