If you need to do any sort of screen capturing using FFMPEG, you might need this one day.
# http://ifhere.org/ffmpeg
# Example
# SMPTECodes.standard= :pal #=> :pal
# SMPTECodes.fps #=> 25.0
# t = "95:33:24.92" #=> "95:33:24.92"
# t.to_frame #=> 8256118
# t.to_frame.to_smpte #=> "95:33:24.92"
# t == t.to_frame.to_smpte #=> true
# SMPTECodes.standard= :ntsc #=> :ntsc
# SMPTECodes.fps #=> 29.97002997003
# t = "95:33:24.70" #=> "95:33:24.70"
# t.to_frame #=> 10309831
# t.to_frame.to_smpte #=> "95:33:24.70"
# t == t.to_frame.to_smpte #=> true
class SMPTECodes
#http://en.wikipedia.org/wiki/SMPTE_timecode
@@standard = :ntsc
def self.standard
@@standard
end
# Set the frequency standard, ie :ntsc, :pal, :dv
def self.standard=(code)
@@standard = code
end
def self.fps
case self.standard
when :ntsc: 30/1.001
when :pal: 25.0
when :dv: 30.0
end
end
module String
# Converts an SMPTE code into a frame number based upon the current FPS
def to_frame
t = self.split(/:|\./).map {|i| i.to_i}
while t.length < 4 do
t.insert 0, 0
end
# hours(?):Miutes:seconds.frames
((t[0]*(60*60*SMPTECodes.fps)) +
(t[1]*(60*SMPTECodes.fps)) +
(t[2] * SMPTECodes.fps) +
( (t[3].to_f*(SMPTECodes.fps/100)).round)).round
end
end
module Numeric
# Converts an a frame number to an SMPTE string
def to_smpte
h, m = self.divmod(60 * 60* SMPTECodes.fps)
m, s = m.divmod(60* SMPTECodes.fps)
s, f = (s).divmod(SMPTECodes.fps)
f = (f.round*(100.0/SMPTECodes.fps))
if f >= 100
s = s+1;
f = 0;
end
"#{("%02d" % h.round)}:#{("%02d" % m.round)}:#{("%02d" % s.round)}.#{("%02d" % f.round)}"
end
end
end
# Mixin the modules
String.send :include, SMPTECodes::String
Numeric.send :include, SMPTECodes::Numeric
Deploying Rails 5.x on AWS ElasticBeanstalk using AWS CodeCommit
How to deploy your Rails app on ElasticBeanstalk (including S3 buckets, security groups, load balancers, auto-scalling groups and more) using CodeCommit.
Subscribe to new posts
Processing your application
Please check your inbox and click the link to confirm your subscription
There was an error sending the email