使用FFmpeg截取视频封面图片(完整例子)

先看看截图:

使用FFmpeg截取视频封面图片(完整例子)

下面是代码,使用的是aardio写的,直接可以运行,ffmpeg直接区官方下载.

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();

上一篇:在服务器上使用vtune


下一篇:基于Tensorflow keras的线性回归模型实现