2012-10-28 76 views
-1

我希望在用戶上傳視頻後能夠對視頻進行編碼。我不知道如何去做這件事,我猜想我可以想到的是使用php的exec()命令並從那裏執行程序。但不會有風險?用戶上傳視頻後使用HandbrakeCLI

還有沒有其他方法可以做到這一點?我基本上需要使用基線3編碼將視頻編碼爲網絡可播放格式,以便他們可以在所有設備上播放JWPlayer。

我該如何做到這一點?

回答

0

exec()只要您對執行的內容非常小心,就不一定非常不安全。

或者,更好的解決方案是使用生產者 - 消費者模型。每次上傳視頻時,都會將其引用添加到隊列中。有一個監視隊列的CLI腳本,只要隊列中有需要處理的視頻,腳本就會進行編碼。

您可以使用數據庫,甚至只是一個目錄作爲隊列。例如,將所有新視頻上傳到目錄unprocessed。用戶腳本可以從那裏獲取視頻,對它們進行編碼並將它們放在名爲processed的文件夾中。

這允許您控制應同時處理多少個視頻(通過改變使用者數量)。 exec()上的用戶上傳不允許這樣做,並且您冒着將服務器癱瘓的風險。

編輯:

如果你打算使用一個以上的消費者,我不建議使用目錄作爲隊列模式,否則可能的競爭條件的機會。

+0

謝謝,你能指點我一些消費者腳本,會這樣做嗎? – Chud37

+0

很可能你必須自己寫。我懷疑是否會有適合您需求的消費者腳本。 – xbonez