2011-08-03 52 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()调用中使用完整路径。