我在XAMPP环境中的Windows机器上运行PHP。 我使用AJAX请求将电影从MP4转换为OGG
function convertMovie(movieName) {
$.ajax({
url: 'movieManagement.php?queryType=convertMovie&value='+movieName,
async: true
});
}
和PHP代码
function convertMovie($value) {
$command = "psexec -d php ".getcwd()."\\movieConverter.php ".$value." > nul 2<&1";
shell_exec($command);
}
在电影转换器中,代码类似于
//some more code here
if ($fileExtension === 'mp4' || $fileExtension === 'MP4') {
$newFileName = $serverAddress . $tempFileName . "ogg";
$executeCommand = 'psexec -d '.getcwd() . '\\ffmpeg -i "' . $oldFileName . '" "' . $newFileName . '" > '.$serverAddress.'nul 2>$1';
}
shell_exec($executeCommand);
现在我的问题是每次我毁了这个浏览器等待永远的ajax调用返回,但是,如果我在命令shell中单独运行这些命令它们工作正常。 我只是想让电影转换在后台工作,浏览器仍然是免费的
我知道这个问题已被问到至少1000次,但我找不到具体的答案。对不起我的无知。
答案 0 :(得分:0)
您可以在后台运行该过程(无论如何在Linux上),以&
结尾:
shell_exec($command . ' &');