我正在尝试实现paperclip-av-transcoder gem。我检查了一切但却无法找到我在这里做错了什么。我正在编写我所遵循的步骤。
添加到gemfile
--> gem 'paperclip-av-transcoder'
添加到我的模型中
--> has_attached_file :video_file, :styles => {
:medium => { :geometry => "640x480", :format => 'mp4' },
:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10 }
}, :processors => [:transcoder]
--> validates_attachment_content_type :video_file, :content_type => /\Avideo\/.*\Z/
创建架构以添加列名
"video_file_meta"
在我的视图文件中
video_tag(video.video_file.url, controls: true, autobuffer: true, size: "320x240")
我已检查公共/系统文件夹中的视频已正确保存我能够在那里看到该视频,但我无法在我的视图文件中看到它。
Video Url -> /system/videos/video_files/000/000/003/original/tingtong_464.mp4?1497851104
答案 0 :(得分:0)
从我的观点来看,一切都是正确的,除了Paperclip要求数据库中至少有一个字段 - *_file_name
(对你而言video_file_file_name
),但你没有添加它Paperclip无法正确构建url。阅读更多https://github.com/thoughtbot/paperclip#usage
答案 1 :(得分:0)
目前工作模型文件代码:
has_attached_file :video_file, :styles => {
:medium => { :geometry => "500x500", :format => 'jpg' },
:thumb => { :geometry => "100x100", :format => 'jpg' }
}, :processors => [:transcoder]
validates_attachment_content_type :video_file,
:content_type => [
"video/mp4",
"video/quicktime",
"video/3gpp",
"video/x-ms-wmv",
"video/mov",
"video/flv",
],
:message => "Sorry! We do not accept the attached file type"
我想我没有以任何其他视频格式调整视频文件的大小,因此它正常工作。