# frozen_string_literal: true require 'time' module Evideo # permite analizar/processar videos para arquivo class HRVideo # @return [String] tempo: rate: def show return nome unless @probe "tempo: #{tempo} rate: #{bitrate} ratio: #{ratio} height: #{height}" end # Testa validade video original # # @param [String] aot pasta destino dos videos absoluta # @return [true, false] sim ou nao video original esta ok def ofok?(aot) return false unless processa_of? puts "mv \"#{nome} #{aot}/#{base}.mp4\" # #{show}" true end # @return [true, false] video original precisa ser processado? def processa_of? # prossecar somente videos grandes (>1 min) ou extensao errada ou bitrate >= 3000 ((bitrate < 3000 && ext == '.mp4') || Time.parse(tempo) < Time.parse('00:01:00')) && # prossecar somente videos com ratio, height, audio errados ratio == '16:9' && height > 480 && audio.zero? end # Testa validade video processado contra video original # # @param [String] hrv video processado a testar validade # @return [true, false] sim ou nao video esta ok def vfok?(hrv) return false unless File.exist?(hrv.nome) && hrv.bitrate < 3000 && Time.parse(hrv.tempo) > Time.parse(tempo) - 60 puts "rm \"#{nome}\" # #{hrv.nome} #{hrv.show}" true end # Testa validade videos processados em todos locais contra video original # # @param [Array] ary array locais onde procurar videos # @param [String] pot pasta destino dos videos # @return [true, false] sim ou nao /