2011-06-29 55 views
1

,我已经上所以这里读了一堆相关的帖子,并在这里得到了以下思路:需要给exec()的ffmpeg在共享主机,托管的1and1

首先,我的网站是在共享的1and1托管.COM。我的目标是在我的PHP代码中调用exec()来运行ffmpeg将短视频(30秒)从格式A转换为格式B.

1)现在,由于我共享的托管情况(1and1 web服务器我的网站与其他1and1用户共享) - 1and1的管理员可能将其服务器设置为“安全”模式,因此我希望PHP中的exec()能够执行视频的ffmpeg转换 - 将失败。 (据说有一个'安全模式'共享目录,但这是一个跳过1和1的箍)。

2)即使1and1不介意从我的PHP代码中调用'exec(ffmpeg -i yada yada)'来转换视频格式 - 我听说这样做并不合适。我被引导认为我需要一个专用服务器而不是共享服务器。这听起来很奇怪,因为(a)该网站永远不会扩展到大量的用户,(b)当我在2年半的笔记本电脑上运行ffmpeg,运行Xampp作为本地主机开发Web服务器时,转换就像现在一样。非常快。

上述限制是否正确(共享虚拟主机上的'安全模式',运行ffmpeg是没有专用框的禁止)? 我想,如果我的网站每天都做了一些(比如20个以下)短视频转换,那么1and1就不会注意到。

此外,如果任何人都可以为我的情况推荐适当的网络托管公司,我会在你的债务。谢谢。

+0

在用户界面中,用户是否期望上传一些内容,并立即以另一种格式访问它? – Shad

+2

如果你尝试在1and1的服务器上部署它,如果你使用nice(1)以较低的优先级运行你的转换器,它们可能会更友善。 – sarnold

+2

另请考虑使用[第三方视频编码服务](http://www.encoding.com/pricing/monthlyPlans)。 – sarnold

回答

3

我相信安全模式可以让你使用exec,因为1and1会让你chroot,所以你运行的程序将无法访问其他用户。但是,您可能需要检查AUP以查看是否阻止了那些进程(消耗大量资源)。

为了获得最佳性能,您应该使用VPS服务器来控制您的php环境。 ffmpeg有潜力成为非常耗费资源的,所以为了获得最佳性能,VPS /专用是最好的。另外,在共享主机上使用ffmpeg也会影响其他网站的性能。

任何VPS都可以,但是因为您要求推荐,我会推荐BlueMileCloud。 PS:你不应该直接从exec调用进程。您应该将其添加到队列中,以便脚本不会等待进程完成并导致网站挂起。

+0

不错() - 一个进程,正确的,男人,因为我在一个* nix环境中工作了很长时间。 '添加到队列',在Windows中我可以通过执行一个.bat批处理文件来模拟。什么是热门的设置分支视频转换过程,然后返回,而不是等待它完成?因为我怀疑我的网站可能没有反应,否则... – wantTheBest

+1

@Want,像[beanstalkd](http://kr.github.com/beanstalkd/)或'batch(1)'可以很容易地提交工作一个队列在负载允许时处理。 – sarnold

+0

@sarnold beanstalkd看起来很酷,谢谢你...看起来很容易部署和有效。 – wantTheBest