2012-04-01 95 views
1

我一直在試圖獲取遠程MP3(和其他格式)使用PHP5-ffmpeg的擴展元數據。PHP的ffmpeg獲取元數據丟失標題,作者,評論,藝術家

這是工作,雖然我總是缺少標題,作者,評論,藝術家的細節。

我一直在尋找答案但沒有找到任何解決方案。

我確實發現了這個補丁http://cvs.pld-linux.org/cgi-bin/viewvc.cgi/cvs/packages/php-ffmpeg/tests-metadata-api.patch,我認爲可能會解決這個問題,但即使沒有補丁,我也無法編譯php-ffmpeg,所以一直無法解決問題。

看來這個擴展前被放棄了幾年,所以我不捧出來得到這個工作的很大希望。

有沒有人有任何想法如何從使用其他工具的音頻視頻文件獲取遠程元數據?

我想到的只是解析的ffmpeg使用「-i」選項itelf,因爲這不會返回正確的元數據輸出。出於安全考慮,在PHP中調用exec需要謹慎一點。

+1

對於它的價值,我只是用'exec()'調用FFMPEG。不過,我主要這樣做是因爲我一直無法正確構建/安裝PHP擴展。部分原因在於託管我的服務器的人員,但最終調用'exec()'似乎更容易。只要驗證你傳遞給它的任何參數,你應該沒問題。 – Brad 2012-04-01 16:45:03

+0

我也在我的服務器上使用exec(),即使是基於用戶請求的wget(獲取文件)(因爲它們可以在不需要php等待的情況下在後臺運行)。在這種情況下,我把函數本身放在public_html中,但是在某些被腳本或crontab包含/需要或執行的路徑中。此外,我使它儘可能靜態,只有函數所需的必要變量。只有這樣,人們才能做壞事,就是通過登錄我的ftp並改變它 - 這在任何時候都是不可能的:) – ArendE 2012-04-01 16:54:12

+0

公平的,謝謝你的評論。我只是要做類似的事情,並解析ffmpeg輸出本身。如果我知道更多C,我可能會嘗試自己修復PHP擴展。也許我應該學習! – chrismacp 2012-04-03 13:29:12

回答

0

在嘗試了一些位於網絡中的其他舊代碼後,我找到了解決此問題的解決方案。

退房https://github.com/char0n/ffmpeg-php一個基於PHP的面向對象的解決方案,包裝的ffmpeg。它消除了對php-ffmpeg的需求,它一直爲我工作。

我只是在檢索遠程文件信息感興趣,並不得不爲此做出與遠程文件,一個非常小的修改,但它運作良好,現在可以做以下,並返回正確的信息!

$movie = new FFmpegMovie('URI'); 
$title = $movie->getTitle(); 
$author = $movie->getAuthor(); 

如果你想獲取遠程信息看看我的叉子在這裏:https://github.com/chrismacp/ffmpeg-php

我並添加命名空間我的叉子,並刪除自動加載機和舊的PHP-ffmpeg的適配器,以防萬一你需要功能或正在運行< 5.3。

相關問題