2012-10-28 53 views
-1

我希望在用户上传视频后能够对视频进行编码。我不知道如何去做这件事,我猜想我可以想到的是使用php的exec()命令并从那里执行程序。但不会有风险?用户上传视频后使用HandbrakeCLI

还有没有其他方法可以做到这一点?我基本上需要使用基线3编码将视频编码为网络可播放格式,以便他们可以在所有设备上播放JWPlayer。

我该如何做到这一点?

回答

0

exec()只要您对执行的内容非常小心,就不一定非常不安全。

或者,更好的解决方案是使用生产者 - 消费者模型。每次上传视频时,都会将其引用添加到队列中。有一个监视队列的CLI脚本,只要队列中有需要处理的视频,脚本就会进行编码。

您可以使用数据库,甚至只是一个目录作为队列。例如,将所有新视频上传到目录unprocessed。用户脚本可以从那里获取视频,对它们进行编码并将它们放在名为processed的文件夹中。

这允许您控制应同时处理多少个视频(通过改变使用者数量)。 exec()上的用户上传不允许这样做,并且您冒着将服务器瘫痪的风险。

编辑:

如果你打算使用一个以上的消费者,我不建议使用目录作为队列模式,否则可能的竞争条件的机会。

+0

谢谢,你能指点我一些消费者脚本,会这样做吗? – Chud37

+0

很可能你必须自己写。我怀疑是否会有适合您需求的消费者脚本。 – xbonez