HTML5 VIDEO is not working in my rails 3 app
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).
Related videos on Youtube
katie
Updated on June 04, 2022Comments
-
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 over 12 yearsThanks.But in Public folder there is no assets sub-folder though?
-
nbrew over 12 yearsYou need to create a new folder named assets in public. Rails doesn't come with defaults other than images, javascripts and stylesheets.
-
wuliwong almost 12 yearsI 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?