将video上传,编码和流媒体function添加到我的Rails应用程序的最佳方式?

将video上传,编码和流媒体function添加到我的Rails应用程序的最佳方法是什么?

我正在考虑混合:Rails app + Video Online Encoder + Amazon S3。 你怎么看 ?

对于video在线编码器(VOE),哪一个更容易使用Rails:heywatch,panvidea,encoding.com,pandastream,…?

顺便说一下,该应用程序将允许用户在运行时添加动态文本,模式和声音来播放流式video。 有一个例子:

  1. 在rails应用程序(后台或前台):video上传(.mov,.avi,…)
  2. VOE:FLV格式的video编码+ Amazon S3中的存储
  3. 在rails app,backoffice:在自制的Flash应用程序中,“添加”到video中,例如1分钟后显示的文本和模式(存储在Rails应用程序DB中的信息)。
  4. 在rails应用程序中,前台:在自制的Flash播放器中播放来自Amazon S3(+ Cloudfront)的流式video,在播放1分钟后动态显示video上的文本和架构。

我真正不理解的部分是FLVvideo流。 我以为Cloudfront可以做到这一点。

我希望我足够清楚;-)

谢谢大家的答案 !

Zencoder看起来很酷,它可能有你想要的API支持。 对我猜的玩家使用闪光灯? 你需要FMS或Red5。 这是一个非常简单的例子的链接,它可以为你转换存储在S3中的东西,当然是在Ruby中: http : //zencoder.com/docs/integration-libraries/#library

免责声明:我是transloadit.com的联合创始人。

我会阻止你推出自己的解决方案。 链接alexy13发布的链接肯定会为您提供一个可以接收用户video并对其进行编码的应用程序。 但是,您最终会遇到一些限制:

  • resize的video将被扭曲,除非它们的宽高比为4:3。 为避免这种情况,您需要在转换之前嗅探它们的尺寸,然后将一组填充-vfilter应用于ffmpeg。 正确地嗅探维度将需要至少2个命令行工具(ffmpeg本身和exiftool)的鸡尾酒+一堆疯狂的代码来处理与像素长宽比不同的显示宽高比。
  • 并非所有video都会转换。 有时您需要对video内容进行额外的嗅探并设置一些自定义标志,否则您将收到错误。 当然,95%的video都可能有效 – 但是获得最后5%的video很难。
  • 您将需要一个执行video编码的其他Web服务器,否则在编码video时您的站点将非常缓慢。 您可以使用nice命令来限制ffmpeg使用的CPU资源,但这会导致编码时间明显延长。

这是一个简短的问题列表,但通常你距离拥有一个没有hickup并且可以处理一些负载的系统大约100个小时。

所以我鼓励你重新考虑使用服务。 我们的竞争对手相当不错,但如果您有任何问题,如果您要查看我们的服务(transloadit.com)或者发送电子邮件至felix.geisendoerfer@transloadit.com,我当然也会非常高兴。

还有一个Rails3示例应用程序,用于将transloadit与paperclip和S3一起使用:

http://github.com/joerichsen/transloadit-paperclip-example

–fg

我会对使用免费的第三方在线服务持怀疑态度。 我会考虑使用服务器端video编码,因为第三方Web服务可能具有可变性能,并且基本上可以对video做任何事情。 如果你没有很多CPU,那么第三方服务可能是个不错的选择。

编辑: 此链接应该帮助你一点