2010-12-05 8 views
1

rails3プロジェクトでhtml5ビデオを実装しようとしていて、私は奇妙な状況に陥っていました。rails3プロジェクトで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 /ユーザー/ 1」は、この「GET /ユーザー/ nullのような要求に追加されたことです。私はこのコードを追加したユーザーのページにHTML5のビデオを表示するには 現在のユーザーがid = 1であるため、 "GET/users/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 

あなたはこの事を理解し、解決する方法を私を助けてもらえますか?ありがとう

+0

ソースタグのsrc属性ポイントをpublic/videos /ディレクトリのファイルに直接設定することはできませんか? – drummondj

+0

私は「映画」を「ビデオ」に変更した後、ウェブサーバーがそれを簡単に扱い、別のエラー「エラーErrno :: ECONNABORTED:確立された接続がホストマシンのソフトウェアによって中断されました。 – megas

+0

Rails 3を使用してwebrickを介して140MBのHTML5ビデオファイルを送信しようと同じ問題が発生しました。http://127.0.0.1/video.webmをダウンロードしようとすると、サーバは接続を切断し続けます – bcoughlan

答えて

0

Webrickは私が知る限りビデオストリーミングをサポートしていません。パッセンジャーに切り替えてみてください

1

あなたの最初の問題を理解することができます。 #2の場合、これを試してください:

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

WEBrickサーバーで – megas

関連する問題