【发布时间】:2015-03-11 07:22:43
【问题描述】:
我正在尝试创建一个学术网站,用户可以在其中上传讲座视频,其他用户可以查看它们 - 类似于 Udemy 之类的网站。
我正在使用 Carrierwave、Carrierwave-video(用于编码视频)和 AWS 来实现这一点。 AWS 配置已完成,并且正在运行。
但是,我收到此错误。 (顺便说一句,我正在一个 Yelpdemo 网站上测试这个视频功能,所以我现在正在尝试让用户将视频上传到餐馆。)
rails 将错误指向@restaurant = Restaurant.new(restaurant_params)
RestaurantController#create 中的 Errno::ENOENT
没有这样的文件或目录 - ffmpeg
# POST /restaurants.json 定义创建 @restaurant = Restaurant.new(restaurant_params)
respond_to do |format|
if @restaurant.save
这是我的 video_uploader.rb
# encoding: utf-8
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::Video
include CarrierWave::Video::Thumbnailer
process encode_video: [:mp4]
include CarrierWave::MiniMagick
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process thumbnail: [{format: 'png', quality: 10, size: 192, strip: true, logger: Rails.logger}]
def full_filename for_file
png_name for_file, version_name
end
end
def png_name for_file, version_name
%Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.png}
end
end
我已经手动(向模型添加了一个文件)在模型中创建了 video.rb - 不确定这是否是正确的方法..
class Video < ActiveRecord::Base
attr_accessor :user_id, :video,, :type, :filename, :path, :filesize, :width, :height, :duration, :bit_rate
belongs_to :restaurant
belongs_to :user
mount_uploader :video, VideoUploader
end
在 app/views/restaurants/show.html.erb 中显示视频。现在,在没有完成编码的情况下,我可以看到视频的图像。当我正确地舔并复制代码时 - 它给了我 AWS URL,这意味着 AWS 配置已经到位
<p>
<strong>Video:</strong>
<%= video_tag @restaurant.video_url %>
</p>
我正在尝试展示这样的视频。
我已经下载了 FFMPEG(ffmpeg-2.6 和 SnowLeopard_Lion_Mountain_Yosemite_17) - 不确定哪个是正确的.. 我已经读过你需要将 FFMPEG 放在你的 usr/local/bin 中的地方 -> 所以你必须将ffmpeg exec文件物理放置在您各自的文件夹中?
需要您的专家帮助。
提前谢谢你!
【问题讨论】:
标签: ruby-on-rails video amazon-web-services ffmpeg