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