跳至内容 跳至搜索

Active Storage 视频分析器

从视频 blob 中提取以下内容

  • 宽度(像素)

  • 高度(像素)

  • 持续时间(秒)

  • 角度(度)

  • 显示纵横比

  • 音频(如果文件有音频通道,则为 true,否则为 false)

  • 视频(如果文件有视频通道,则为 true,否则为 false)

示例

ActiveStorage::Analyzer::VideoAnalyzer.new(blob).metadata
# => { width: 640.0, height: 480.0, duration: 5.0, angle: 0, display_aspect_ratio: [4, 3], audio: true, video: true }

当视频的角度为 90、-90、270 或 -270 度时,其宽度和高度会自动交换以方便使用。

此分析器需要 FFmpeg 系统库,Rails 未提供此库。

方法
A
M

类公共方法

accept?(blob)

# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 25
def self.accept?(blob)
  blob.video?
end

实例公共方法

metadata()

# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 29
def metadata
  { width: width, height: height, duration: duration, angle: angle, display_aspect_ratio: display_aspect_ratio, audio: audio?, video: video? }.compact
end