Active Storage Video Analyzer
Extracts the following from a video blob:
-
Width (pixels)
-
Height (pixels)
-
Duration (seconds)
-
Angle (degrees)
-
Display aspect ratio
-
Audio (true if file has an audio channel, false if not)
-
Video (true if file has an video channel, false if not)
Example:
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 }
When a video’s angle is 90, -90, 270 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 25
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 29
def metadata
{ width: width, height: height, duration: duration, angle: angle, display_aspect_ratio: display_aspect_ratio, audio: audio?, video: video? }.compact
end
🔎 See on GitHub