Extracts the following from a video blob:
-
Width (pixels)
-
Height (pixels)
-
Duration (seconds)
-
Angle (degrees)
-
Display aspect ratio
Example:
ActiveStorage::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.
Methods
Class Public methods
accept?(blob)
📝 Source code
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 23
def self.accept?(blob)
blob.video?
end
🔎 See on GitHub
Instance Public methods
metadata()
📝 Source code
# File activestorage/lib/active_storage/analyzer/video_analyzer.rb, line 27
def metadata
{ width: width, height: height, duration: duration, angle: angle, display_aspect_ratio: display_aspect_ratio }.compact
end
🔎 See on GitHub