2011-06-10 49 views
1

我有一個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

試試這個:

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

它說,如果ffmpeg(1)命令成功執行'/usr/bin/php /home/g/bin/update_db.php ' . $id2。 (可能會失敗。)

要在shell中嘗試此操作:true && echo hifalse && echo hi

+0

那麼是$ id2發佈或獲取update_db.php?你在檔案中是指什麼? – Scarface 2011-06-11 17:27:36

+1

@Sfaceface,它可能是['$ argv [1]'或'$ argv [2]'](http://php.net/manual/en/reserved.variables.argv.php)。 (我不知道'$ argv [0]'是PHP解釋器'/ usr/bin/php'還是'$ argv [0]'是PHP腳本'/ home/g/bin/update_db .php'。但一些小測試會顯示。:) – sarnold 2011-06-11 20:39:19

+0

它的工作原理,謝謝sooooooo很多sarnold。你是最好的。 – Scarface 2011-06-11 21:48:48

相關問題