如何设置进程以便在另一个进程之后执行?

时间:2011-06-10 03:19:02

标签: php mysql linux

我有一个php视频上传程序脚本,最后它会启动一个ffmpeg脚本来转换上传的文件。然后,它将视频信息插入到mysql数据库中,并在状态字段中,从处理文件开始,值为0。

我在考虑使用linux ffmpeg命令,我可以放一个执行php文件的延迟进程,以便在转换文件并完成ffmpeg进程后,它会执行php文件并且该文件有一个更新语句,可以将mysql数据库中的视频条目更新为状态为1.虽然我需要以某种方式将视频ID传递到终端,所以它可以将它传递给php文件...任何人都知道如何做到这一点?

$sql = 'INSERT INTO video (id, uploader, video_id, status) VALUES(?,?,?,?)';
$stmt3 =$conn->prepare($sql);
$result=$stmt3->execute(array($id,$username,$video_id,0));

$command = shell_exec('/usr/local/bin/ffmpeg -i /home/g/Desktop/'.$id2.' -acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 -threads 0 /home/g/Desktop/'.$id2.'.flv');

1 个答案:

答案 0 :(得分:1)

试试这个:

$command = shell_exec('/usr/local/bin/ffmpeg -i /home/g/Desktop/'.$id2.'' .
    '-acodec libfaac -aq 100 -vcodec libx264 -preset slow -crf 22 -threads 0' .
    '/home/g/Desktop/'.$id2.'.flv && /usr/bin/php /home/g/bin/update_db.php ' . $id2);

如果'/usr/bin/php /home/g/bin/update_db.php ' . $id2命令成功,它表示执行ffmpeg(1)。 (可能会失败。)

要在shell上尝试此操作:true && echo hifalse && echo hi