ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = _T("open");
char pBuf[512];
_getcwd(pBuf, 512); 获取当前路径
string ffmpegPath = string(pBuf) +"/"+"ffmpeg";
wchar_t lpFile[512];
Acsii2WideByte(ffmpegPath.c_str(), lpFile);
ShExecInfo.lpFile = lpFile; ///默认为当前目录下
string shExe_lpParameters = "";
if(is_codec)
{
sprintf(pBuf, " -vframes %d -s %dx%d -r %d ", frames, width, height, fps);
shExe_lpParameters = "-y -i " + input_video +" -ss " + start_time + pBuf +"-vcodec flv1 " + out_video;
}
else
{
sprintf(pBuf, " -vframes %d -r %d ", frames, fps);
shExe_lpParameters = "-y -i " + input_video +" -ss " + start_time + pBuf +"-vcodec copy " + out_video;
}
wchar_t lpParam[512];
Acsii2WideByte(shExe_lpParameters.c_str(), lpParam);
ShExecInfo.lpParameters = lpParam;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
BOOL bResult = ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
if( ShExecInfo.hProcess != NULL)
{
TerminateProcess(ShExecInfo.hProcess,0);
CloseHandle(ShExecInfo.hProcess);
ShExecInfo.hProcess = NULL;
}
ShExecInfo.lpFile = NULL;
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = _T("open");
char pBuf[512];
_getcwd(pBuf, 512);
string memcoderPath = string(pBuf) +"/"+"mencoder.exe";
wchar_t lpFile[512];
Acsii2WideByte(memcoderPath.c_str(), lpFile);
ShExecInfo.lpFile = lpFile; ///默认为当前目录下
string shExe_lpParameters = videoname1 + " " + videoname2 + " -ovc copy -o " + mergeVideoPath;
wchar_t lpParam[512];
Acsii2WideByte(shExe_lpParameters.c_str(), lpParam);
ShExecInfo.lpParameters = lpParam;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
if( ShExecInfo.hProcess != NULL)
{
TerminateProcess(ShExecInfo.hProcess,0);
CloseHandle(ShExecInfo.hProcess);
ShExecInfo.hProcess = NULL;
}
ShExecInfo.lpFile = NULL;