2011-08-03 95 views
0

我試圖運行此命令在這裏:Rails的不響應的ffmpeg命令

f = open("|ffmpeg -i /Users/joaoh82/Desktop/teste.MP4") 
result = f.read() 

但我沒有得到任何迴應...

但是,當我在終端試試這個命令它的工作原理太棒了:

ffmpeg -i /Users/joaoh82/Desktop/teste.MP4 

但現在在rails代碼。有趣的是,當我嘗試與其他一些像回聲$ PATH一樣的東西,它很好用!喜歡:

f = open("|echo $PATH") 
result = f.read() 

任何想法!?

+0

不直接關係到你的問題,但我創建了一個FFMPEG寶石:https://github.com/owahab/paperclip-ffmpeg –

回答

0

ffmpeg -i打印到標準錯誤,它不會被管道捕獲。你可以將stderr重定向到stdout:

result = `ffmpeg -i /Users/joaoh82/Desktop/teste.MP4 2>&1` 
+0

現在我得到這樣的回覆... SH:ffmpeg的:命令未找到 –

+0

外貌就像通過添加2>&1導軌找不到ffmpeg一樣... –

+0

@Joao Henrique:我不認爲它可以找到ffmpeg,但現在您捕獲stdout就可以看到它了。 @Kelvin建議指定整個路徑(或適當地設置PATH)。 – cam

0

你可能需要指定的完整路徑的ffmpeg。它可能在你的shell中工作,因爲ffmpeg在你的PATH中。

基本上在你的shell中輸入which ffmpeg。在open()調用中使用完整路徑。