在openstack对象存储服务器中将视频文件转换为另一种格式?

时间:2016-03-29 08:08:17

标签: openstack openstack-swift

我正在使用swift API PHP从web上传所有格式(.webm,.wmv,.avi ..etc)视频文件。在openstack对象存储上载视频文件后,我需要以一种格式转换所有视频文件.mp4。

是否可以以一种格式转换视频(.mp4)。请建议。

1 个答案:

答案 0 :(得分:0)

您可能已经怀疑,Swift中没有内置功能来执行视频转码。但是,有一种添加额外处理逻辑的机制,您可以在其中实现代码转换器。这种机制称为"middleware",实际上只是一个非常简单的Python API。然后将您的实现放在一个特殊的目录中,代理将在启动时加载它。

因此,您可以编写一个中间件,该文件将在上载文件时触发,检查扩展名,执行转码,然后发出另一个请求以保存该文件(原始文件除外)。

只有一个小问题......这会让你的集群陷入困境,因为中间件调用会阻止代理工作者。如果您完全关心性能,则需要异步完成。要做到这一点,我所知道的只有一个解决方案:

在Java中实现转码逻辑并利用Storlets middleware。 Storlets将在Docker容器中的计算资源池上运行您的自定义逻辑,而不会阻塞代理(太多)。

我知道这听起来很复杂。但是,你处于存储技术领域一个勇敢的新领域的最前沿。