class ActiveStorage::Analyzer::VideoAnalyzer

Parent:
ActiveStorage::Analyzer

Extracts the following from a video blob:

  • Width (pixels)

  • Height (pixels)

  • Duration (seconds)

  • Angle (degrees)

  • Display aspect ratio

Example:

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

When a video's angle is 90 or 270 degrees, its width and height are automatically swapped for convenience.

This analyzer requires the FFmpeg system library, which is not provided by Rails.

Public Class Methods

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

Public Instance Methods

metadata() Show source
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 25
def metadata
  { width: width, height: height, duration: duration, angle: angle, display_aspect_ratio: display_aspect_ratio }.compact
end

© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.