2011-09-16 78 views
3

我開始分發視頻的門戶。我們的想法是將視頻上傳到Amazon S3,並使用我的服務器中的PHP收集必要的數據。到目前爲止,一切正常......我不能設法得到的唯一的事情是視頻的時長:-(任何人可以給我如何實現它的提示?獲取在Amazon S3上託管的文件的視頻持續時間

感謝, 米格爾

更新:

我終於選擇使用FFmpeg來完成我已經在服務器上安裝了FFmpeg,現在我正試圖在shell中執行命令,然後用PHP執行它。來自亞馬遜(我嘗試了雲端URL和S3 URL),但它說沒有這樣的目錄或文件。我在網上看到了使用外部文件的例子,所以我預計它會起作用

我使用的命令是

ffmpeg -i https://s3-eu-west-1.amazonaws.com/path/to/file.m4v 

有什麼我需要爲了使用外部URL進行配置?

+0

如果您使用的是視頻播放器,通常可以通過這種方式獲取信息。它是什麼類型的視頻? –

+0

這是一個flv編碼的視頻。這個想法是在列表頁面上顯示持續時間,它也將用於搜索,所以我需要將該數據保存在我的數據庫中。 – Michi

+0

我會使用我的jwplayer從JavaScript中的文件中獲取信息,然後可能會使用AJAX將其傳回給php。 –

回答

0

有來自長尾一個示例代碼段,它使用PHP和FFmpeg的 http://www.longtailvideo.com/support/forums/jw-player/setup-issues-and-embedding/9448/how-to-get-video-duration-with-ffmpeg-and-php

似乎是另一種解決方案在這裏: http://www.jqueryphp.com/getting-video-duration-with-ffmpeg-php-function/2009/10/

你需要在服務器上安裝FFmpeg的

+0

謝謝史蒂芬我的視頻文件非常大(400-600MB)......你知道FFmpeg是否可以遠程訪問它們並獲取必要的數據而無需下載整個文件? – Michi

+0

當然你在你將視頻文件上傳到S3的時候,至少暫時存儲本地視頻文件,你應該可以獲得持續時間,否則,使用ffmpeg一次來確定長度並將其保存到數據庫中 – duskwuff

+0

嗨。 ..該文件將直接上傳到S3,而不通過我們的服務器...但似乎我將不得不改變我的想法,並通過它來檢索持續時間。 – Michi

0

有是另一種可能的解決方案。 將視頻文件放入S3存儲桶時,您需要設置對象元數據。

爲了在一個對象上設置用戶元數據,用'x-amz-meta-'作爲頭部值的前綴。

1

如果您不想使用FFmpeg(或無法將其安裝在您的服務器上),另一種方法是在視頻文件的嵌入式元數據中查找持續時間。

它通常存儲在一個或多個名爲「Duration」或「PlayDuration」的標籤中。

您可以使用類似ExifTool的內容從視頻文件中讀取嵌入式元數據,然後解析標籤的輸出。

相關問題