Vtc.Timecode (vtc v0.2.0) View Source
Represents the frame at a particular time in a video.
New Timecode values are created with the Vtc.Timecode.with_seconds/2
and
Vtc.Timecode.with_frames/2
Link to this section Summary
Types
Type returned by Vtc.Timecode.with_seconds/2
and Vtc.Timecode.with_frames/2
.
Vtc.Timecode
type.
Functions
Returns the number of feet and frames this timecode represents if it were shot on 35mm 4-perf film (16 frames per foot). ex: '5400+13'.
Returns the number of frames that would have elapsed between 00:00:00:00 and this timecode.
Returns the number of elapsed ticks this timecode represents in Adobe Premiere Pro.
Runtime Returns the true, real-world runtime of the timecode in HH:MM:SS.FFFFFFFFF format.
The individual sections of a timecode string as i64 values.
Returns the the formatted SMPTE timecode: (ex: 01:00:00:00).
Returns a new Vtc.Timecode
with a Vtc.Timecode.frames/1
return value equal to the
frames arg.
As Vtc.Timecode.with_frames/2
, but raises on error.
Returns a new Vtc.Timecode
with a Vtc.Timecode.premiere_ticks/1
return value equal
to the ticks arg.
As Vtc.Timecode.with_premiere_ticks/2
, but raises on error.
Returns a new Vtc.Timecode
with a Vtc.Timecode.seconds field value equal to the
seconds arg.
As Vtc.Timecode.with_seconds/2
, but raises on error.
Link to this section Types
Specs
parse_result() :: {:ok, t()} | {:error, Vtc.Timecode.ParseError.t()}
Type returned by Vtc.Timecode.with_seconds/2
and Vtc.Timecode.with_frames/2
.
Specs
t() :: %Vtc.Timecode{rate: Vtc.Framerate.t(), seconds: Ratio.t() | integer()}
Vtc.Timecode
type.
Fields
:seconds: The real-world seconds elapsed since 01:00:00:00 as a rational value. (Note: The Ratio module automatically will coerce itself to an integer whenever possible, so this value may be an integer when exactly a whole-second value).
:rate: the Framerate of the timecode.
Link to this section Functions
Specs
Returns the number of feet and frames this timecode represents if it were shot on 35mm 4-perf film (16 frames per foot). ex: '5400+13'.
What it is
On physical film, each foot contains a certain number of frames. For 35mm, 4-perf film (the most common type on Hollywood movies), this number is 16 frames per foot. Feet-And-Frames was often used in place of Keycode to quickly reference a frame in the edit.
Where you see it
For the most part, feet + frames has died out as a reference, because digital media is not measured in feet. The most common place it is still used is Studio Sound Departments. Many Sound Mixers and Designers intuitively think in feet + frames, and it is often burned into the reference picture for them.
Telecine.
Sound turnover reference picture.
Sound turnover change lists.
Specs
Returns the number of frames that would have elapsed between 00:00:00:00 and this timecode.
What it is
Frame number / frames count is the number of a frame if the timecode started at 00:00:00:00 and had been running until the current value. A timecode of '00:00:00:10' has a frame number of 10. A timecode of '01:00:00:00' has a frame number of 86400.
Where you see it
Frame-sequence files: 'my_vfx_shot.0086400.exr'
FCP7XML cut lists:
<timecode> <rate> <timebase>24</timebase> <ntsc>TRUE</ntsc> </rate> <string>01:00:00:00</string> <frame>86400</frame> <!-- <====THIS LINE--> <displayformat>NDF</displayformat> </timecode>
Specs
Returns the number of elapsed ticks this timecode represents in Adobe Premiere Pro.
What it is
Internally, Adobe Premiere Pro uses ticks to divide up a second, and keep track of how far into that second we are. There are 254016000000 ticks in a second, regardless of framerate in Premiere.
Where you see it
Premiere Pro Panel functions and scripts.
FCP7XML cutlists generated from Premiere:
<clipitem id="clipitem-1"> ... <in>158</in> <out>1102</out> <pproTicksIn>1673944272000</pproTicksIn> <pproTicksOut>11675231568000</pproTicksOut> ... </clipitem>
Specs
Runtime Returns the true, real-world runtime of the timecode in HH:MM:SS.FFFFFFFFF format.
Arguments
precision
: The number of places to round to. Extra trailing 0's will still be trimmed.
What it is
The formatted version of seconds. It looks like timecode, but with a decimal seconds value instead of a frame number place.
Where you see it
• Anywhere real-world time is used.
• FFMPEG commands:
ffmpeg -ss 00:00:30.5 -i input.mov -t 00:00:10.25 output.mp4
Note
The true runtime will often diverge from the hours, minutes, and seconds value of the timecode representation when dealing with non-whole-frame framerates. Even drop-frame timecode does not continuously adhere 1:1 to the actual runtime. For instance, <01:00:00;00 @ <29.97 NTSC DF>> has a true runtime of '00:59:59.9964', and <01:00:00:00 @ <23.98 NTSC NDF>> has a true runtime of '01:00:03.6'
Specs
sections(t()) :: Vtc.Timecode.Sections.t()
The individual sections of a timecode string as i64 values.
Specs
Returns the the formatted SMPTE timecode: (ex: 01:00:00:00).
What it is
Timecode is used as a human-readable way to represent the id of a given frame. It is formatted to give a rough sense of where to find a frame: {HOURS}:{MINUTES}:{SECONDS}:{FRAME}. For more on timecode, see Frame.io's excellent post on the subject.
Where you see it
Timecode is ubiquitous in video editing, a small sample of places you might see timecode:
- Source and Playback monitors in your favorite NLE.
- Burned into the footage for dailies.
- Cut lists like an EDL.
Specs
Specs
with_frames(Vtc.Source.Frames.t(), Vtc.Framerate.t()) :: parse_result()
Returns a new Vtc.Timecode
with a Vtc.Timecode.frames/1
return value equal to the
frames arg.
with_frames takes many different formats (more than just numeric types) that represent the frame count of the timecode.
Arguments
frames
- A value which can be represented as a frame number / frame count.rate
- The Framerate at which the frames are being played back.
Specs
with_frames!(Vtc.Source.Frames.t(), Vtc.Framerate.t()) :: t()
As Vtc.Timecode.with_frames/2
, but raises on error.
Specs
with_premiere_ticks(Vtc.Source.PremiereTicks.t(), Vtc.Framerate.t()) :: parse_result()
Returns a new Vtc.Timecode
with a Vtc.Timecode.premiere_ticks/1
return value equal
to the ticks arg.
with_premiere_ticks takes many different formats (more than just numeric types) that can represent the tick count of the timecode.
Arguments
frames
- A value which can be represented as a frame number / frame count.rate
- The Framerate at which the frames are being played back.
Specs
with_premiere_ticks!(Vtc.Source.Frames.t(), Vtc.Framerate.t()) :: t()
As Vtc.Timecode.with_premiere_ticks/2
, but raises on error.
Specs
with_seconds(Vtc.Source.Seconds.t(), Vtc.Framerate.t()) :: parse_result()
Returns a new Vtc.Timecode
with a Vtc.Timecode.seconds field value equal to the
seconds arg.
Timecode::with_frames takes many different formats (more than just numeric types) that represent the frame count of the timecode.
Arguments
seconds
- A value which can be represented as a number of seconds.rate
- The Framerate at which the frames are being played back.
Specs
with_seconds!(Vtc.Source.Seconds.t(), Vtc.Framerate.t()) :: t()
As Vtc.Timecode.with_seconds/2
, but raises on error.