class ActiveStorage::Analyzer::QiniuVideoAnalyzer

Public Instance Methods

metadata() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 5
def metadata
  {
    width: width,
    height: height,
    duration: duration,
    aspect_ratio: aspect_ratio
  }.compact
rescue
  {}
end

Private Instance Methods

aspect_ratio() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 30
def aspect_ratio
  video_stream['display_aspect_ratio']
end
duration() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 26
def duration
  video_stream['duration']
end
height() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 22
def height
  video_stream['height']
end
streams() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 34
def streams
  @streams ||= begin
    code, result, res = Qiniu::HTTP.api_get(blob.service.url(blob.key, fop: 'avinfo'))
    result['streams']
  end
end
video_stream() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 41
def video_stream
  @video_stream ||= streams.detect { |stream| stream['codec_type'] == 'video' } || {}
end
width() click to toggle source
# File lib/active_storage/analyzer/qiniu_video_analyzer.rb, line 18
def width
  video_stream['width']
end