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

时间:2010-10-11 15:21:28

标签: ruby-on-rails video streaming

将视频上传,编码和流媒体功能添加到我的Rails应用中的最佳方法是什么?

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

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

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

    rails应用程序中的
  1. (后台或前台):视频上传(.mov,.avi,...)
  2. VOE:FLV格式的视频编码+ Amazon S3中的存储
  3. 在rails app中,后台:在自制的Flash应用程序中,“添加”视频,例如1分钟后显示的文本和模式(存储在Rails应用程序数据库中的信息)。
  4. 在rails app中,frontoffice:在自制的Flash播放器中播放来自Amazon S3(+ Cloudfront)的流式视频,播放1分钟后,动态显示视频上的Text和Schema。
  5. 我真正不理解的部分是FLV视频流。我以为Cloudfront可以做到这一点。

    我希望我足够清楚; - )

    谢谢大家的答案!

3 个答案:

答案 0 :(得分:9)

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

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

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

这是一个很短的问题清单,但一般情况下,你可以在100个小时左右的时间内运行一个没有hickup并且可以处理一些负载的系统。

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

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

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

- FG

答案 1 :(得分:8)

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

答案 2 :(得分:1)

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

编辑:This Link应该对你有所帮助