问题描述
|
我有一个PHP video uploader脚本,最后它启动了一个ffmpeg脚本来转换上载的文件。然后,它将视频信息插入MysqL数据库,并且在状态字段中,由于文件正在处理,因此值为0。
我在想,与linux ffmpeg命令一起,我可以放置一个延迟的过程来执行PHP文件,以便在文件转换完成且ffmpeg过程完成后,它会执行PHP文件,并且该文件具有update语句并可以更新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\');
解决方法
尝试这个:
$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);
它说如果the3ѭ命令成功执行execute2ѭ。 (它可能会失败。)
要在shell上尝试:true && echo hi
和false && echo hi
。