2013-05-15 19 views
0

我有一个PHP脚本来切断视频。这里有三个执行exec()命令 - 两个正确执行,而一个没有:php exec()在一些调用上工作,而不是其他类似的调用

作品:

须藤的ffmpeg -i /home/vidserver/videos/$filename.mp4 -ss $的ctime -t 00 :00:06 -acodec副本复印件-vcodec -y /var/vidcache/test$x.mp4

作品:

须藤的ffmpeg -i /var/vidcache/test$x.mp4 -qscale:v 1 /var/vidcache/i$x.mpg

不起作用:

须藤的ffmpeg -i CONCAT: “i0.mpg | i1.mpg” -qscale:V 1个/var/vidcache/output.mpg

在/ var/vidcache有777个PRIVS和www-data是在sudoers与NOPASSWD文件(是的,我知道 - 这仅仅是用于调试之前,我锁定安全)。

当我本身从运行在命令行PHP脚本的最后一个命令,它的工作。 (以www-data或root身份运行)。但是,当我尝试将它放入从网页调用的函数中时,它不起作用。

任何想法?

回答

0

其实,答案是既愚蠢“哪里WWW的数据知道到哪里寻找文件吗?”

我是假设了很多与i0.mpg。它显然需要一个完全合格的目录。

不管怎么说,更改代码看起来像这样的工作:

须藤的ffmpeg -i CONCAT: “在/ var/vidcache/i0.mpg | /var/vidcache/i1.mpg” -qscale: v 1 /var/vidcache/output.mpg

0

这应该可以解决第三EXEC:

sudo ffmpeg -i "concat:i0.mpg|i1.mpg" -qscale:v 1 /var/vidcache/output.mpg 

Here是如何Concat的在ffmpeg媒体文件的一个很好的维基页面。

相关问题