在我的项目中,将视频上传到网络服务器后,我必须将.avi
转换为.webm
。正如我从许多教程中读到的,我可以使用exec()
来完成,但我的项目正在使用docker。
我可以将ffmpeg和php容器分开,还是必须在php容器中安装ffmpeg?
答案 0 :(得分:0)
你可以做任何一件事。在您的Docker镜像中安装ffmpeg
和PHP一起使用exec()
调用它是最简单的选择。 Docker的优势在于您将PHP应用程序与其依赖项打包在一起,因此无论您运行的是什么主机,都可以使用ffpmeg
。
虽然简单方法有限 - 您需要确保ffmpeg
调用是异步的,否则在转换完成之前页面不会响应。而且你需要处理exec()
可能超时的大文件。
更好的选择是为视频转换服务构建单独的Docker镜像,该服务在自己的容器中运行。转换服务可以有一个简单的API供PHP站点调用(指定共享卷上的源和目标文件路径),或者您可以使用异步消息传递在另一个容器中添加消息队列,以提高可靠性和扩展选项。 / p>