2011-05-06 57 views
0

也許最好從描述場景開始。只完成,完全上傳的文件的自動ffmpeg轉換

我們有一個ffmpeg的Debian服務器,用於將各種視頻文件轉換爲FLV。 這些文件由許多不同的人通過FTP提供,並保存在「上傳」文件夾中。

我需要編寫一個PHP腳本,通過上傳文件夾中的所有文件,選擇完整的文件(即當前沒有上傳或沒有任何上傳錯誤),然後使用ffmpeg將它們轉換爲FLV。

我可以做轉換和其他一切,但是如何確定文件是否完整並完全上傳?

非常感謝!

+0

用戶是否使用任何腳本將文件上傳到ftp位置或手動完成? – Kit 2011-05-06 16:33:05

+0

恐怕他們沒有腳本。他們使用各種ftp客戶端 – Shmoyko 2011-05-12 06:56:54

回答

0

Afaik你不能只知道一個文件是否仍在上傳。您可以每分鐘運行一次cronjob獲取文件大小並將它們存儲在數據庫或文件中。然後,如果您第二次運行cronjob,並且文件大小相同:則轉換它們,如果不是,請等待另一分鐘,然後重試。

我不相信有一個文件存儲與一個文件,包含它應該是上傳完成後的大小。

+0

我很害怕這種情況。感謝您的輸入。 – Shmoyko 2011-05-12 06:57:15

0

還有另一種方法可以解決這個問題,我們多年來一直這樣做。

大多數ftp服務器(proftpd都會)會輸出一個日誌,告訴你文件上傳何時成功完成。您可以將此日誌記錄設置爲unix命名管道/ fifo,然後讓守護進程腳本讀取此文件以確定要處理的文件。這很好,只有在完成併成功上傳後才能處理文件。