HTML5 VIDEO is not working in my rails 3 app

13,213

Solution 1

The video_tag helper builds an HTML 5 <video> tag.

By default, files are loaded from public/videos. To load from assets/video add the following line to your config/application.rb file:

config.assets.paths << "#{Rails.root}/app/assets/videos"

Tag Usage:

<%= video_tag (["movie.mp4", "movie.ogg", "movie.webm"] :size => "320x240", :controls => true, :autobuffer => true) %>

Solution 2

The assets pipeline is used for static assets. If you're adding video files to your app often, you should put them somewhere else (for example, public/videos or public/system/videos). If they really are static assets, try restarting your server first.

Solution 3

Assuming your html is correct, unless things have dramatically changed in rails 3.1 with the asset pipeline anything contained in the public folder can be served up from the web server, so the exact location of where to store videos is up to you. According to your sources above you should put your videos in public/assets then confirm the videos are being served up by accessing http://localhost:3000/assets/movie.mp4 (or any other src url for a video).

Share:
13,213

Related videos on Youtube

katie
Author by

katie

Updated on June 04, 2022

Comments

  • katie
    katie almost 2 years

    I am trying to display HTML5 video in my Rails 3 app in development,i am using Sqlite3 and default webserver(Webrick).I put the video file (movie.ogg) under assets (assets/movie.ogg).The video window screen shows up but there is no video on there though.I have 3 questions...Since rails app assets doesn't have sub-folder for video(as the way it has images),where do you put video files? Does Webrick support Html5 video?Here is my code below ,what am i missing here,to make the video work?

    view

           <video width="320" height="240" controls="controls">
           <source src="/assets/movie.mp4" type="video/mp4" />
           <source src="/assets/movie.ogg" type="video/ogg" />
           <source src="/assets/movie.webm" type="video/webm" />
             Your browser does not support the video tag.
           </video>
    

    config/initializers/mime_types.rb

      Rack::Mime::MIME_TYPES.merge!({
      ".ogg"     => "application/ogg",
      ".ogx"     => "application/ogg",
      ".ogv"     => "video/ogg",
      ".oga"     => "audio/ogg",
      ".mp4"     => "video/mp4",
      ".m4v"     => "video/mp4",
      ".mp3"     => "audio/mpeg",
      ".m4a"     => "audio/mpeg"
    })
    
  • katie
    katie over 12 years
    Thanks.But in Public folder there is no assets sub-folder though?
  • nbrew
    nbrew over 12 years
    You need to create a new folder named assets in public. Rails doesn't come with defaults other than images, javascripts and stylesheets.
  • wuliwong
    wuliwong almost 12 years
    I have a model called Video which is something the user creates but I also need to be able to have videos that I embed on the site. When I create this configuration and then use the video_tag the app goes through the video_controller which causes it to look for an object in the Video class with the id = "movie" or whatever is the name of the video file. Any idea how to work around this?