From 251625624088ab6af6db03f29334ef845dbc3359 Mon Sep 17 00:00:00 2001 From: Matt Braddock Date: Tue, 1 Jan 2019 13:33:51 -0500 Subject: fixed frame timing from debug info --- README.md | 2 +- main.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9089135..957cf5d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # yt-frame-timer -A JavaScript-based program to determine the time between start and end points of a YouTube video down to the frame. Based on [https://docs.google.com/spreadsheets/d/1c3eiw1_00Tx1snAdU_kvncuA8C8xu5-q3tSOPRuqhzI/](https://docs.google.com/spreadsheets/d/1c3eiw1_00Tx1snAdU_kvncuA8C8xu5-q3tSOPRuqhzI/). \ No newline at end of file +A JavaScript-based program to determine the time between start and end points of a YouTube video down to the frame. Based on [https://docs.google.com/spreadsheets/d/1c3eiw1_00Tx1snAdU_kvncuA8C8xu5-q3tSOPRuqhzI/](https://docs.google.com/spreadsheets/d/1c3eiw1_00Tx1snAdU_kvncuA8C8xu5-q3tSOPRuqhzI/) by Slush Puppy (big thanks to them for their work). \ No newline at end of file diff --git a/main.js b/main.js index 66e1e10..1deac10 100644 --- a/main.js +++ b/main.js @@ -8,8 +8,10 @@ function compute() { let seconds = 0; let milliseconds = 0; let frameRate = parseInt(framerate); - let diff = (endObj.lct - startObj.lct) * frameRate; - let frames = diff; + let frameFromObj = (time, fps) => Math.floor(time * fps) / fps; //round to the nearest frame + let startFrame = frameFromObj(startObj.lct, frameRate); + let endFrame = frameFromObj(endObj.lct, frameRate); + let frames = (endFrame - startFrame) * frameRate; if (frames >= frameRate) { seconds = Math.floor(frames / frameRate); frames = frames % frameRate; -- cgit v1.2.3