我有一个Ruby on Rails应用程序,用户可以上传视频,我正在寻找一个系统,用于将用户上传的视频转换为FLV
格式。
目前我们正在使用FFMPEG
,因为视频转换是一项繁重的任务,所以似乎需要花费大量时间和大量CPU资源。
我们正在研究是否可以使用map-reduce / Hadoop框架来实现视频转换,因为它是完全分布式的。
使用map-reduce进行实时视频转换是一个不错的选择吗?如果是这样,那该怎么办呢?
注意:每个视频文件大小约为50 - 60 MB。
答案 0 :(得分:2)
您的要求是"实时"转换。请记住,Hadoop是一个"批处理框架"。
恕我直言,我说Hadoop在这里是一个糟糕的选择。一个更好的解决方案肯定是使用Storm:之类的东西Apache Storm是一个免费的开源分布式实时计算系统。 Storm可以轻松可靠地处理无限数据流,实时处理Hadoop为批处理所做的工作。
就个人而言,我使用Storm实现了一个类似于你的项目,结果令人惊讶。
另一种选择是使用分布式Actors模型,例如Akka.io或Erlang。但是既然你是一个Ruby商店,那么对你的团队来说,Storm或Akka会更容易。