EasyX 生成计时器的视频

前一段想在一个视频中增加一个计时器的画面,然后忽然发现视频编辑工具并没有直接提供这样的功能。通常建议的手段是:直接插入其他计时器的视频。最简单的做法是在手机上安装一个秒表之类的软件,然后通过内置的录屏功能得到需要的视频。只是这样方法很难获得需要的背景颜色和文字颜色。

正好最近研究了 EasyX 的使用,于是通过编程生成图片,然后使用FFMpeg 把图片粘成视频。

这次测试的代码如下:

#include <graphics.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>

#define WINWIDTH   1920
#define WINHEIGHT  1080

// 一秒25帧,一共1分钟
#define TOTALTIME  60*25

int main()
{
	TCHAR FilenameBuffer[256];
	
	// 初始化图形模式
	initgraph(WINWIDTH, WINHEIGHT);
	settextcolor(RED);
	settextstyle(500, 0, _T("Consolas"));

	for (int i = 0; i < TOTALTIME; i++) {
		BeginBatchDraw();
		cleardevice();
		swprintf(FilenameBuffer, sizeof(FilenameBuffer), L"%02d:%03d", i / 24, (i * 1000 / 24)%1000);
		
		outtextxy(20, 20, FilenameBuffer);
		EndBatchDraw();

		swprintf(FilenameBuffer,sizeof(FilenameBuffer), L"%05d.png", i);
		printf("%ls\n", FilenameBuffer);
		saveimage(FilenameBuffer);
		//Sleep(20);
	}

	// 按任意键退出
	_getch();

	// 关闭图形模式
	closegraph();
	return 0;
}

用于生成视频的命令如下:

ffmpeg -r 25 -i %05d.png -b:v 4M output2.mp4

最终的结果可以在B站看到

【EasyX 生成1分钟计时器视频】

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注