2009-12-08 84 views
0

我知道這不完全是一個編程問題本身,而是設置問題,但仍:問題的FFMPEG和PHP

我試圖將視頻轉換與FFMPEG用PHP腳本,這之後教程:

http://vexxhost.com/blog/2007/05/20/how-to-convertencode-files-to-flv-using-ffmpeg-php/

FFMPEG完美的作品,我已經在命令行中使用它的次數。 PHP也似乎工作正常。我也安裝了ffmpeg-php,它似乎在加載文件。

問題在於,當我嘗試做在PHP中的以下內容:

$ SRCFILE = 「p1.avi」;

$ ffmpegObj = new ffmpeg_movie($ srcFile);

無論怎樣,PHP將返回此:

警告:/var/www/converter.php無法打開電影文件p1.avi上線XX

很顯然,無論我以後用$ ffmpegObj做的任何調用都會導致一個致命的錯誤。我絕對堅持下去,廣泛的谷歌搜索沒有多大幫助。

如果您必須知道,我使用Ubuntu 9.04以及默認的LAMP服務器軟件包以及php5-ffmpeg,並且我已經編譯了ffmpeg,遵循我在Ubuntuforums上找到的教程(我會鏈接到它,但是stackoverflow不會讓我)

謝謝!

+0

'file_exists($ srcFile)'返回true? – leepowers 2009-12-08 18:22:47

+0

哇,實際上它確實返回false。我該如何解決這個問題? 謝謝你給我一個線索:) – ziritrion 2009-12-08 18:35:24

+0

等待,錯誤警報:file_exists確實返回true(經過多次測試,文件不是它應該在的地方)。 – ziritrion 2009-12-08 18:38:25

回答

1

請問您的用戶運行腳本權限打開該文件?請使用ls -l /var/www/flashvideo/p1.avi

0

嘗試指定到你的電影完整路徑類似如下:

$srcFile = "/home/path/something/p1.avi"; 
$ffmpegObj = new ffmpeg_movie($srcFile); 
+0

感謝您的建議,但我已經嘗試了儘可能多的組合,因爲我可以在此之前詢問。 我的Web服務器根目錄是/ var/www。 我的腳本是/var/www/converter.php。 我的視頻在/var/www/flashvideo/p1.avi上。 我試過以下路徑: flashvideo/p1.avi /var/www/flashvideo/p1.avi 我也嘗試將p1.avi移動到/ var/www並嘗試使用p1.avi和/ var/www/p1.avi沒有運氣; _; – ziritrion 2009-12-08 18:28:42

+0

嘗試將其移至'/ tmp/1.avi'並設置666權限:'chmod 666/tmp/1.avi'。 – 2009-12-08 19:22:16

1

最後!正如你們中的一些人所建議的那樣,目錄和文件都沒有適當的權限被我的腳本修改。我改變了他們,現在一切正常=)。我是一個白癡,不知道這個小時:P

謝謝你們!

0

我知道這是一個古老的線程,但因爲我碰到了這個......如果ffmpeg_movie通過一個損壞的電影,它似乎也會發出警告。除非實際嘗試創建對象,否則無法分辨。我的最佳解決方案是壓制警告,然後在與它進行交互之前檢查資源:

$movie = @new ffmpeg_movie($path_to_file,false); 
$duration = isset($movie->ffmpeg_movie)?intval($movie->getDuration()):'Bad File?'; 
0

我有同樣的問題。這既不是錯誤的道路,也不是與腐敗的電影有關。路徑是絕對的,文件存在並且可讀並且權限是0777.可悲的是,我不知道如何處理這個。

UPD:問題是一個過時(從回購)ffmpeg版本與很多的錯誤。