Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Apple Final Cut Pro Legacy export text that displays timecode of every frame in a timeline

  • export text that displays timecode of every frame in a timeline

    Posted by Susan Dempster on January 19, 2010 at 7:43 pm

    Does anyone know of a way to export text (xml, edl?) from FCP that shows the timecode for each individual frame of video in a timeline?

    Ex. Frame 1102 = 21:21:39:17 Timecode…..

    This information will be used to pair the video with GPS coordinate info (based on the matching timecode) to create an interactive map. While it may sound excessive, each frame (all ___thousand of them) is important for the precision mapping to work…

    Any suggestions are greatly appreciated!

    Ignasi Rius replied 14 years, 1 month ago 3 Members · 7 Replies
  • 7 Replies
  • Matt Lyon

    January 20, 2010 at 1:43 am

    Well I\’ll take a stab at it but I don\’t know if you\’ll like my answer 🙂
    I can\’t think of any way to do this in fcp. I would hire a programmer to write a python script to parse an EDL or XML. It shouldn\’t actually be that hard to code, but it would need to have some smarts built in re: timebase. Do you already have someone on board the project who is doing any coding to parse the gps data? Maybe this is a job for them…

    Matt Lyon
    Editor
    Toronto

  • Susan Dempster

    January 25, 2010 at 7:47 pm

    Hello again, Dave!

    (We gave up on trying to render the 3D route for the last project and went with a Google Earth nadir view instead. The clients seemed satisfied overall… much to my relief!)

    Fortunately, all the current footage is 29.97 – but unfortunately a visual representation of the TC isn’t going to be enough… we need each frame and its TC in text form. Once we have this information, our map-guy pairs the TC from GPS generated info to TC in our clip… His script will associate the TC in the clip with the frame # which will somehow tell the video when to begin playing based on where a client clicks on the corresponding map. While I don’t understand all technical aspects of that end of the project, I do understand that in order for his part to work, I have to be able to get him that text.

    I thought about trying to mathematically output the TC based on a Start TC and Start Frame, and knowing that there are 29.97 frames in a second – but honestly, the math eludes me!

  • Susan Dempster

    January 25, 2010 at 7:57 pm

    How accurate do you have to be for this gizmo to work accurately?

    The more precise the better! I suppose it would be ok if we were off about a second here or there… but any more and we would certainly run into trouble with everything pairing up nicely in the end. We’re dealing with 20-40 minute clips. So far my failed attempts to write a script to do the math always rounded up to the nearest whole frame… while not noticeable in the beginning, it’s very apparent in the end of then clip where the difference becomes about 3.5 seconds off…

    You come up with some really unique requirements.

    I do enjoy picking all of the brains on this forum! It’s been a great way to learn and such a helpful resource!

  • Susan Dempster

    January 26, 2010 at 2:19 pm

    Thank you, Dave and Matt. I’ll have to look into this!

  • Ignasi Rius

    February 26, 2010 at 12:18 pm

    Dear Susan,
    Trying to solve the exact same problem that you mention I ended up reading your message. Finally, I decided to implement it by my own (I am a research developer) since I couldn’t find any free alternatives to do everything I needed.

    I was wondering if you were still interested in hiring a developer to solve this task? In case you are, my program can generate frame-Timecode pairs given a starting timecode or framenumber in 3 Timecode formats (NTSC with/without DropFrame, PAL_25 and 24 FPS).
    I’ve also implemented an script that automatically generates a CSV file with framenumber-timecode pairs given an input MXF file. (However, I haven’t tested this one thoroughly.)
    Anyway, I could adapt it to your specific needs in case you are still interested.

    Yours sincerely,
    Ignasi Rius.

  • Susan Dempster

    March 14, 2012 at 5:17 pm

    Hi Ignasi,

    Now that 2 years have gone by since this initial post, I was wondering if you (or anyone else) have come up with a solution to generate a list of all frames numbers in a sequence and their corresponding time-codes? If so, is your program for sale?

    Susan

  • Ignasi Rius

    March 15, 2012 at 5:05 pm

    Hi Susan,

    Long time ago since last post in this thread!

    So the answer is yes: we finally built a small tool for generating frame_number, SMPTE time-code pairs. It consists of a command-line tool with the following parameters:

    TCGenerator v.1.0
    Usage: TCGenerator [options] [outFile.csv]
    Options
    -h --help Prints this help
    -t0 --start_tc [H]H:[M]M:[S]S[.FF]
    Initial SMPTE Timecode
    -t1 --end_tc [H]H:[M]M:[S]S[.FF]
    Final SMPTE Timecode
    -f0 --start_frame 0
    Initial Frame Number
    -f1 --end_frame 0
    Final Frame Number
    -fps {25|24|30}
    Frames per second setting (default: 25)
    -df --drop_frame {0|1}
    Drop Frame Setting for NTSC fps(default: 0(Non_drop_frame))
    -1 --base1
    Set initial frame as number 1 (default: 0)
    outFile.csv
    Output File for generated TimeCodes

    Here’s a usage example for generating timecodes between frames 12032 and 12065 in NTSC (30 fps) DropFrame.

    TCGenerator.exe -f0 12032 -f1 12065 -fps 30 -df 1 sampleOut.csv

    The output is written to a CSV file with the following contents:

    0,12032,00:06:41.14
    1,12033,00:06:41.15
    2,12034,00:06:41.16
    3,12035,00:06:41.17
    4,12036,00:06:41.18
    5,12037,00:06:41.19
    6,12038,00:06:41.20
    7,12039,00:06:41.21
    8,12040,00:06:41.22
    9,12041,00:06:41.23
    10,12042,00:06:41.24
    11,12043,00:06:41.25
    12,12044,00:06:41.26
    13,12045,00:06:41.27
    14,12046,00:06:41.28
    15,12047,00:06:41.29
    16,12048,00:06:42
    17,12049,00:06:42.01
    18,12050,00:06:42.02
    19,12051,00:06:42.03
    20,12052,00:06:42.04
    21,12053,00:06:42.05
    22,12054,00:06:42.06
    23,12055,00:06:42.07
    24,12056,00:06:42.08
    25,12057,00:06:42.09
    26,12058,00:06:42.10
    27,12059,00:06:42.11
    28,12060,00:06:42.12
    29,12061,00:06:42.13
    30,12062,00:06:42.14
    31,12063,00:06:42.15
    32,12064,00:06:42.16

    The exact format of the Timecode (such as using “:” instead of “.” after the “second” part) could be easily tweaked by me to fulfill your needs.

    Are you interested in a binary instance of the tool, or do you need it’s source code?

    Just for your information, the tool is written in C++ (Visual Studio) and the class which handles TimeCode operations supports addition and subtraction of TimeCodes of different formats among other common operations.

    Please, contact me at i g n a s i e t AT g m a i l . c o m for further discussion.

    Best,
    Ignasi.

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy