也許最好從描述場景開始。只完成,完全上傳的文件的自動ffmpeg轉換
我們有一個ffmpeg的Debian服務器,用於將各種視頻文件轉換爲FLV。 這些文件由許多不同的人通過FTP提供,並保存在「上傳」文件夾中。
我需要編寫一個PHP腳本,通過上傳文件夾中的所有文件,選擇完整的文件(即當前沒有上傳或沒有任何上傳錯誤),然後使用ffmpeg將它們轉換爲FLV。
我可以做轉換和其他一切,但是如何確定文件是否完整並完全上傳?
非常感謝!
也許最好從描述場景開始。只完成,完全上傳的文件的自動ffmpeg轉換
我們有一個ffmpeg的Debian服務器,用於將各種視頻文件轉換爲FLV。 這些文件由許多不同的人通過FTP提供,並保存在「上傳」文件夾中。
我需要編寫一個PHP腳本,通過上傳文件夾中的所有文件,選擇完整的文件(即當前沒有上傳或沒有任何上傳錯誤),然後使用ffmpeg將它們轉換爲FLV。
我可以做轉換和其他一切,但是如何確定文件是否完整並完全上傳?
非常感謝!
Afaik你不能只知道一個文件是否仍在上傳。您可以每分鐘運行一次cronjob獲取文件大小並將它們存儲在數據庫或文件中。然後,如果您第二次運行cronjob,並且文件大小相同:則轉換它們,如果不是,請等待另一分鐘,然後重試。
我不相信有一個文件存儲與一個文件,包含它應該是上傳完成後的大小。
我很害怕這種情況。感謝您的輸入。 – Shmoyko 2011-05-12 06:57:15
還有另一種方法可以解決這個問題,我們多年來一直這樣做。
大多數ftp服務器(proftpd都會)會輸出一個日誌,告訴你文件上傳何時成功完成。您可以將此日誌記錄設置爲unix命名管道/ fifo,然後讓守護進程腳本讀取此文件以確定要處理的文件。這很好,只有在完成併成功上傳後才能處理文件。
用戶是否使用任何腳本將文件上傳到ftp位置或手動完成? – Kit 2011-05-06 16:33:05
恐怕他們沒有腳本。他們使用各種ftp客戶端 – Shmoyko 2011-05-12 06:56:54