批量生成视频封面图片

admin2022-01-25  2.7K+

import win.ui;
import fsys.dlg;
/*DSG{{*/
mainForm = win.form(text="都客视频封面工具";right=600;bottom=400)
mainForm.add(
btnClearList={cls="button";text="清空";left=482;top=195;right=547;bottom=223;z=6};
button3={cls="button";text="浏览";left=309;top=275;right=376;bottom=300;z=4};
button4={cls="button";text="开始处理";left=400;top=267;right=499;bottom=306;z=5};
groupbox={cls="groupbox";text="工作区(拖拽文件或者文件夹到列表,支持mp4和avi格式)";left=16;top=21;right=568;bottom=376;edge=1;z=1};
listcol={cls="listview";left=32;top=48;right=469;bottom=225;acceptfiles=1;edge=1;z=2};
txtOutDir={cls="edit";left=36;top=276;right=297;bottom=302;edge=1;z=3}
)
/*}}*/

import  process;
import process.popen;

mainForm.listcol.insertColumn("列名",150);
mainForm.listcol.insertColumn("文件路径",-1);

mainForm.button3.oncommand = function(id,event){
	//输出out目录
	 mainForm.txtOutDir.text = fsys.dlg.opendir(,mainForm.hwnd,"请选择生成后文件存放的目录") 
}
var htfile={};

mainForm.button4.oncommand = function(id,event)
{	
		for(k,v in htfile)
		{	
			var para=string.format("-i %s -y -r 1 -ss 00:00:02 -vframes 1 %s",v,mainForm.txtOutDir.text "\\" k ".jpg");	
			process.popen("\res\ffmpeg.exe",para);			
		}
		win.msgbox("操作成功!","温馨提示");			
}
//拖放会触发onDropFiles事件
mainForm.onDropFiles = function(files)
{	
	var cur=mainForm.listcol.count;
	for(k,v in files)
	{	
		if(!table.find(htfile,v))
		{
			if(fsys.getExtensionName(v)=="mp4" or fsys.getExtensionName(v)=="avi")
			{			
				mainForm.listcol.addItem({cur k,v});
				table.push(htfile,v);
			}
		}
	}	
}

mainForm.btnClearList.oncommand = function(id,event){
	mainForm.listcol.clear();
	htfile={};
}

mainForm.show();
return win.loopMessage();

注意需要将ffmpeg.exe放入\res\目录下。

转载请注明原文地址: http://aardio.net/read-298.html
最新回复(0)
源码分享
aardio源码分享