我一直在一個視頻網站[platform:php],我需要在Amazon S3服務器上傳視頻並提取縮略圖。使用亞馬遜s3上傳視頻和提取縮略圖
我已經創建了一個存儲桶並在該存儲桶中成功上傳了視頻文件。但我不知道如何從上傳的視頻中提取縮略圖。所以,那就是我卡住的地方。
任何幫助將不勝感激。提前致謝!
我一直在一個視頻網站[platform:php],我需要在Amazon S3服務器上傳視頻並提取縮略圖。使用亞馬遜s3上傳視頻和提取縮略圖
我已經創建了一個存儲桶並在該存儲桶中成功上傳了視頻文件。但我不知道如何從上傳的視頻中提取縮略圖。所以,那就是我卡住的地方。
任何幫助將不勝感激。提前致謝!
在這裏,你有一些選擇。
第一個 - 在將視頻上傳到AWS之前,您可以從視頻中「提取」縮略圖。例如:將視頻上傳到服務器,根據需要將其轉換爲適當的格式,縮略圖(或縮略圖),將它們保存在某處(例如在S3或本地服務器上),然後將視頻上傳到S3。這種方法的缺點是你的本地服務器將不得不做很多額外的工作,而不是爲你的網站訪問者提供服務。
第二個 - 您可以使用亞馬遜EC2計算服務:上傳視頻到S3,觸發EC2(例如cron作業)從S3獲取視頻,轉換視頻,縮略圖並上傳最終結果視頻+縮略圖)回到S3。缺點是:實現這種「溝通」並不容易(你必須解決很多問題,比如確保穩定的轉換,創建作業隊列等),再加上你必須再使用一個AWS服務S3。
視頻轉換和獲取縮略圖是怎麼回事?有很多工具和程序。我喜歡使用ffmpeg進行視頻轉換(也有PHP包裝使用它的功能與PHP - php-ffmpeg,但使用ffmpeg本身(例如使用PHP的exec()函數)將給你更多的靈活性和功能,請閱讀文檔的更多細節)。 FFMpeg也可以從視頻中提取縮略圖,但這需要一些時間(關於如何有效地進行討論有很多討論),但我建議您使用ffmpegthumbnailer作爲此目的。它具有更簡單的使用方式,特別適用於從視頻文件獲取縮略圖。
您應該在您用於上傳的機器上執行此操作。在這裏你可以直接訪問文件。一旦它在S3中,它只能通過HTTP訪問。
工具ffmpeg可用於創建許多視頻格式的縮略圖。
例子:
ffmpeg -i "video.flv" -ss 00:00:10 -f image2 "thumbnail.jpg"
將創造在視頻秒10的縮略圖,並保存爲thumbnail.jpg 當使用PHP,您可以使用system
執行
的視頻格式,你在說什麼? –
.MP4,.FLV,.AVI,.MPG,.MOV,.WMV,.RM,.3GP,.3GP2,.MPEG,.DAT - 這是允許的視頻格式列表。 –