我正在使用 Ffmpeg 在 Rails 应用程序中录制视频。我想给用户一个最小和最大的时间限制。用于设置此限制的最佳标志是什么?
问问题
44 次
2 回答
1
于 2017-03-18T00:53:37.897 回答
1
这有点超出了 Paperclip 所做的基本验证的范围。Paperclip 试图为您提供足够的验证来覆盖 95% 的用例,但对于任何不典型的情况,您必须编写自己的逻辑。我不相信有用于检查视频长度的内置自定义验证。(但是,validates_attachment_size
您可以使用一种验证方法来验证资产的文件大小。在紧要关头,这可能就足够了。)
如果你想对回形针附件做一些更深入的验证,你应该研究一些不同的工具来编写你自己的验证方法。如果您正在处理视频,我会看一下streamio-ffmpeg 。
使用该 gem,您可以编写如下自定义验证:
class YourModel < ActiveRecord::Base
has_attached_file :your_media
validate :duration_in_range
private
def duration_in_range
# See https://github.com/streamio/streamio-ffmpeg#usage
unless FFMPEG::Movie.new(your_media.path).duration.in?(MIN_TIME..MAX_TIME)
errors.add(:your_media, "Video duration must be within #{MIN_TIME} and #{MAX_TIME} seconds")
end
end
end
于 2017-03-18T02:41:45.910 回答