2013-01-10 111 views
1

我一直在一個視頻網站[platform:php],我需要在Amazon S3服務器上傳視頻並提取縮略圖。使用亞馬遜s3上傳視頻和提取縮略圖

我已經創建了一個存儲桶並在該存儲桶中成功上傳了視頻文件。但我不知道如何從上傳的視頻中提取縮略圖。所以,那就是我卡住的地方。

任何幫助將不勝感激。提前致謝!

+0

的視頻格式,你在說什麼? –

+0

.MP4,.FLV,.AVI,.MPG,.MOV,.WMV,.RM,.3GP,.3GP2,.MPEG,.DAT - 這是允許的視頻格式列表。 –

回答

5

在這裏,你有一些選擇。

第一個 - 在將視頻上傳到AWS之前,您可以從視頻中「提取」縮略圖。例如:將視頻上傳到服務器,根據需要將其轉換爲適當的格式,縮略圖(或縮略圖),將它們保存在某處(例如在S3或本地服務器上),然後將視頻上傳到S3。這種方法的缺點是你的本地服務器將不得不做很多額外的工作,而不是爲你的網站訪問者提供服務。

第二個 - 您可以使用亞馬遜EC2計算服務:上傳視頻到S3,觸發EC2(例如cron作業)從S3獲取視頻,轉換視頻,縮略圖並上傳最終結果視頻+縮略圖)回到S3。缺點是:實現這種「溝通」並不容易(你必須解決很多問題,比如確保穩定的轉換,創建作業隊列等),再加上你必須再使用一個AWS服務S3。

視頻轉換和獲取縮略圖是怎麼回事?有很多工具和程序。我喜歡使用ffmpeg進行視頻轉換(也有PHP包裝使用它的功能與PHP - php-ffmpeg,但使用ffmpeg本身(例如使用PHP的exec()函數)將給你更多的靈活性和功能,請閱讀文檔的更多細節)。 FFMpeg也可以從視頻中提取縮略圖,但這需要一些時間(關於如何有效地進行討論有很多討論),但我建議您使用ffmpegthumbnailer作爲此目的。它具有更簡單的使用方式,特別適用於從視頻文件獲取縮略圖。

+0

感謝您的回答。 我已經在這個網站上開發了用於視頻轉換和縮略圖生成的FFMPEG。但是我的客戶想用亞馬遜[爲了更好的速度]做同樣的事情。 所以,如果沒有這樣的直接方式,那麼它似乎我必須遵循你的Cron Job的概念。是的,讀你的消息後,我也很肯定它不會是一個容易的:) –

+1

是的,你不能只用S3做到這一點,因爲這是** **存儲服務,併爲處理目的有Amazon EC2的 – vitalikaz

+0

@DebasishChowdhury,如果這個答案是正確的,你應該把它標記爲答案。 – neworld

1

您應該在您用於上傳的機器上執行此操作。在這裏你可以直接訪問文件。一旦它在S3中,它只能通過HTTP訪問。

工具ffmpeg可用於創建許多視頻格式的縮略圖。

例子:

ffmpeg -i "video.flv" -ss 00:00:10 -f image2 "thumbnail.jpg" 

將創造在視頻秒10的縮略圖,並保存爲thumbnail.jpg 當使用PHP,您可以使用system執行