【问题标题】:Video playback with paperclip rails使用回形针导轨播放视频
【发布时间】:2015-10-14 07:50:15
【问题描述】:

我想要设置视频上传,以便用户可以查看和播放它们。我是 Rails 新手,有人知道如何做到这一点吗?

【问题讨论】:

  • 像其他文件一样设置(按照回形针文档),并使用video_tag

标签: ruby-on-rails video paperclip


【解决方案1】:

你可以看看Paperclip

在将包含视频的模型中,您需要正确的格式 (ffmpeg) 和视频验证:

   has_attached_file :attachment,
          styles: lambda { |a| a.instance.is_image? ? {:small => "x200>", :medium => "x300>", :large => "x400>"}  : {:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10}, :medium => { :geometry => "300x300#", :format => 'jpg', :time => 10}}},
          :processors => lambda { |a| a.is_video? ? [ :ffmpeg ] : [ :thumbnail ] }
    validates_attachment_content_type :video, content_type: /\Avideo\/.*\Z/ 

评论更新:

 has_attached_file :video, styles: {
    :medium => {
      :geometry => "640x480",
      :format => 'mp4'
    },
    :thumb => { :geometry => "160x120", :format => 'jpeg', :time => 10}
  }, :processors => [:transcoder]

【讨论】:

  • 因此生成轨道会生成回形针帖子附件,然后在 model/post.rb 文件中添加上面/然后在 post_params 中添加:attachment / 然后用于视图
  • ffmpeg 已经贬值,所以我使用的是回形针-av-transcoder
  • 谢谢! - 在本地我得到一个黑色的视频屏幕,但视频播放按钮是可点击的,但没有任何动作 - 我想可能是因为需要加载 ffmpeg 或视频转换器?
  • 是的,您可能需要转换器或至少需要跨浏览器解决方案。看看这个帖子stackoverflow.com/questions/19222492/paperclip-video-upload
  • 我必须同时添加这两个 has_attached_file 选项还是只添加一个?
【解决方案2】:

有一些实时代码可以实现这个here

#Gemfile
gem "paperclip-ffmpeg", "~> 1.2.0"

#app/models/attachment.rb
class Attachment < ActiveRecord::Base

   has_attached_file :attachment,
        styles: {:thumb => { geometry: "100x100#", format: 'jpg', time: 10}, medium: { gemometry: "300x300#", format: 'jpg', time: 10}},
        processors: [ :ffmpeg ]

end

您遇到的主要问题是调用preprocessing

当您使用 Paperclip 上传任何附件时,它必须在存储之前对其进行处理。处理转换为正确的格式并调整其大小(您也可以用它做其他很酷的事情)。

视频处理与图像处理略有不同,因为您首先必须处理视频以便服务器可以播放它,然后您还必须从中提取一些屏幕截图。

因此,您需要一个自定义处理器,@Czanfar 在他的回答中发布的将是ffmpegtranscoder 之间的选择


我也在这里写了一个答案: Rails video uploading


顺便说一句,这是我去见制作回形针的人的时间:

【讨论】:

  • 谢谢老兄,在斯德哥尔摩
【解决方案3】:

感谢Cyzanfars 的回答让我成功了!

确保你安装了 ffmpeg

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    相关资源
    最近更新 更多