Help

This Product Ideas board is currently undergoing updates, but please continue to submit your ideas.

Video Timecode Advanced Support

cancel
Showing results for 
Search instead for 
Did you mean: 
Sam_Sandweiss
5 - Automation Enthusiast
5 - Automation Enthusiast

Hello!

Love this software. Starting to use it for post-production supervising in film and I was wondering if there were any plans to spruce up timecode support? Right you have duration which does, HH:MM:SS, but it would be great to get HH:MM:SS:FF, and different framerate support as well. Would also be amazing to add, subtract, and convert these values to different framerates. Anyone know of another way of doing this? Was thinking about doing a bunch of formula fields to manually calculate, but I’m thinking I might just use my google sheets script to calculate everything out first.

Thanks,

11 Comments
PhilipHS
4 - Data Explorer
4 - Data Explorer

I would like to amplify this feature request!

I’m an assistant editor in TV and am using Airtable to track VFX shots. The addition of frames to the Duration field would be a HUGE help to my workflow. Just like Sam said. HH:MM:SS:FF with a variety of framerate options.

Thank you!

RathaiM
5 - Automation Enthusiast
5 - Automation Enthusiast

Thirding this! Would help a tonne with post-production work, right now I’m also using the Google Sheets script but I like the ability to sort and view records in Airtable. I hope someday it’s added soon.

Cheers,

RM

Nimrod_Erez
5 - Automation Enthusiast
5 - Automation Enthusiast

Adding timecode support will bring over so many more users. And just for clarity, timecode support means that a cell can be edited to support timecode in a specified frame rate (23.976, 24, 29.97, 30, etc.) so any duration and calculations on timecode yield proper results. A timecode cell needs to be in a HH:MM:SS:FF format under a frame rate system (as noted above).

Reuben_Lim
4 - Data Explorer
4 - Data Explorer

Couldn’t find a Video Timecode Duration Calculator for Airtable either and am relatively new so created this rough template for one. Not perfect but functional for a few bases I’m currently using:


Relies on 19 hidden fields to break down timecode entered as text to HH MM SS FF to get frame counts against 24fps time base. The frame counts can be operated on (added subtracted) the results converted back to HH:MM:SS:FF display. Clunky but works for now. Hope someone can improve on it and share back.

Good luck to everyone on their projects.

Bill_French
17 - Neptune
17 - Neptune

Hi Reuben and welcome to the community!

Here’s an alternate way of getting there - it is a Script Block and requires only a few lines of code. A script like this could read from TC In and TC Out and write results to another [actual] field and all without the added 19 fields. Imagine logic wrapped around these functions that look at all records and perform computations for any result fields that are empty.

Frames to Timecode & Timecode to Frames

var framerate = 24

let t1 = "00:59:20:02";
let t2 = "13:05:16:23";

output.markdown("### T1: " + t1);
output.markdown("### T2: " + t2);

let thisFrames = timecode_to_frames(t2) - timecode_to_frames(t1);
output.markdown("### Frames: " + thisFrames);

let thisTimeCode = frames_to_timecode (timecode_to_frames(t2) - timecode_to_frames(t1));
output.markdown("### Timecode: " + thisTimeCode);

function timecode_set_framerate(rate) {
  framerate = rate;
}

function timecode_get_framerate() {
  return framerate;
}

function timecode_to_frames(timecode) {
    var a = timecode.split(':');
    return ((Number(a[0])*3600 + Number(a[1])*60 + Number(a[2]))*framerate + Number(a[3]));
}

function frames_to_timecode(frames) {
    return(Math.floor(frames / (3600 * framerate)).toString().padStart(2, '0') + ":" + Math.floor((frames / (60 * framerate)) % 60).toString().padStart(2, '0') + ":" + Math.floor((frames / framerate) % 60).toString().padStart(2, '0') + ":" + (frames % framerate).toString().padStart(2, '0'));
}
Reuben_Lim
4 - Data Explorer
4 - Data Explorer

Thanks Bill, will give this a try. Appreciate the quick reply on this!

EastEndTom
6 - Interface Innovator
6 - Interface Innovator

Reuben - this is AMAZING! Thank you so much. I’ve been trying to work with timecode properly for years, and this is a really good building block. Without native support from Airtable this is a great workaround, albeit rather complex!

I tweaked it to have a field that chooses FPS (replacing all your "24"s in the formulas with a reference to a new dropdown field and then value formula field {FPS}) so now it works with 25 and 30, as well. And I’m now using this to deal with small edit change calculations for feature films of 2,000 shots.

Thank you!

Reuben_Lim
4 - Data Explorer
4 - Data Explorer

Thanks great to hear, Tom. Look forward to seeing your version with the drop down frame selector. That was something I was hoping to implement later (probably in a less elegant way) but haven’t needed yet. I’m sure it will be helpful to a lot of folks.

Matt_Garner
4 - Data Explorer
4 - Data Explorer

Hi Bill, great script - how would you then adapt this script to add up the total durations of one column (perhaps more applicable if you already have duration values from an imported EDL) and present the overall total at the bottom of that column? Or would it only be displayed in the Run section of Scripting?

Many thanks

EastEndTom
6 - Interface Innovator
6 - Interface Innovator

Hi Bill, I’m just coming back to this post and your script looks SUPER DUPER USEFUL…! I was wondering if I may, would you be able to bridge my knowledge gap to get data IN and OUT of the base itself, please? Ideally it would parse data OUT of fields {T1} and {T2}, and {Framerate}, then send results back into the fields {Frames} and {Timecodes}. This could be repeated on each record.

Would you be able to help with this addition to you code, please? Apologies for my coding noob question.
Thanks so much in advance!