Архив рубрики: video

Cкриншот с видео при загрузке

before_save :define_screenshot
 
 def define_screenshot
    return if file.queued_for_write.empty?
    temp_name = get_temp_name
    video_file = file.queued_for_write[:original].path
    cmd = 'ffmpeg -i #{video_file} -an -ss 00:00:10 -an -r 1 -vframes 1 -y -f mjpeg #{temp_name} >/dev/null 2>&1'
    Rails.logger.info 'Running cmd: #{cmd}'
    system cmd
    self.thumbnail = File.open(temp_name)
  end

  def get_temp_name
    tempdir = Dir::tmpdir || /tmp
    t = Time.now.strftime('%Y%m%d')
    path = 'clip#{t}-#{$$}-#{rand(0x100000000).to_s(36)}.jpg'
    File.join(tempdir, path)
  end