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.
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 21 def self.accept?(blob) blob.video? end
# 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.