我希望能够在用户上传视频后使用手刹CLI对视频进行编码。我不知道怎么做这个,我猜想我可以想到的是使用php的exec()命令并从那里执行程序。但是不存在风险吗?
或者还有其他办法吗?我基本上需要将视频编码为具有基线3编码的网络可播放格式,以便在所有设备上通过JWPlayer播放。
我怎样才能实现这个目标?
答案 0 :(得分:0)
exec()
就不必是不安全的。
或者,更好的解决方案是使用生产者 - 消费者模型。每次上传视频时,都会将对它的引用添加到队列中。有一个监视队列的CLI脚本,只要队列中有需要处理的视频,脚本就会进行编码。
您可以使用数据库,甚至只使用目录作为队列。例如,将所有新视频上传到目录unprocessed
。消费者脚本可以从那里获取视频,对其进行编码并将它们放在名为processed
的文件夹中。
这允许您控制应同时处理的视频数量(通过改变消费者数量)。关于用户上传的exec()
不允许这样做,您冒着将服务器降到最低的风险。
编辑:
如果您打算使用多个消费者,我建议不要使用目录为队列模型,因为您冒着竞争条件的风险。