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.