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

fro*_*_oo 14 video streaming ruby-on-rails

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

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

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

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

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

我真正不理解的部分是FLV视频流.我以为Cloudfront可以做到这一点.

我希望我足够清楚;-)

谢谢大家的答案 !

Fel*_*fer 9

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

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

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

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

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

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

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

--fg


Pre*_*all 8

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