在rails3项目中使用html5视频的奇怪情况

时间:2010-12-05 03:56:13

标签: ruby-on-rails video html5

我正在尝试在rails3项目中实现html5视频,我陷入了奇怪的境地。 要在用户页面上显示HTML5视频,我添加了以下代码:

<!-- Video element -->
<video width="420" height="240" controls preload="metadata" poster="/images/video.jpg">
 <!-- Video sources -->
 <source src="/movies/video.ogv" type='video/ogg; codecs="theora, vorbis"'>
</video>

首先奇怪的是,浏览器已经将“GET / users / 1”这样的请求添加到原始请求“GET / users / null”,但它应该是“GET / users / 1”,因为当前用户已经ID = 1。然后在电影控制器(show action)中我添加了这段代码:

filename = Rails.root.join('public/videos/' + params[:id] + '.' + params[:format])
send_file filename, :type => 'video/ogg'

其中params [:id]是视频文件的名称。 一切似乎都没问题,但我有错误:

ERROR Errno::ENOBUFS: An operation on a socket could not be performed 
because the system lacked sufficient buffer space or because a queue was full

你能帮我理解和解决这个问题吗?感谢

2 个答案:

答案 0 :(得分:1)

可以理解你的第一个问题。对于#2,试试这个:

send_file filename, :type => 'video/ogg', :disposition => 'inline'

答案 1 :(得分:0)

据我所知,Webrick不支持视频流。尝试切换到乘客