I'm trying to make compilations of scripted videos

A spreadsheet that could automatically do the conversions would be extremely helpful, and I’m certain others would find that useful too. I don’t know that I have a preference for google sheets or excel since I don’t normally use spreadsheets anyway. I have OpenOffice on my computer so Excel would probably be fine.

Looking at the audio for the timecode in milliseconds is a really good idea. Unfortunately that reddit sub is for Premiere so the solution doesn’t work for DaVinci Resolve. I’m still looking for a solution with that angle though.

That other link you provided, for getting the timecode for each individual clip, provided some really useful information. Something that was quickly turning into a headache for me was how to make sure I was getting the correct timecode with my transitions. With a hard cut everything is pretty clear since the script should begin and end at the same moment the clip begins and ends. With transitions however, I want the next script to start and the previous script to end just as the transition begins rather than in the middle which is where the initial cut is. Now I think I can actually get those timecodes and be certain I’m getting the correct ones. It will also show up in the one and only place it actually allows me to copy the timecode rather than just reading it and typing manually into a spreadsheet.

You can also use the minutes in the fsVideoMergerSplitter btw.

2:46056 works just as good as 166056 and 2:46.056 in the csv

2 Likes

That’s really good to know. It would be easier to spot timecode mistakes in the minutes and seconds format rather than convert the entire number to milliseconds. When I look at minutes converted to milliseconds it becomes just a big blur of numbers to me.

Following your tutorial I was able to make a short compilation with five clips from the same video. Because my framerate was 29.97, I got decimal places on all my timecodes which fsVideoMergeSplitter didn’t like so abbreviated them all. From what I can tell, both the merged funscript and the split scripts all match up to their respective videos identical to the original which makes this part a success.

Now here’s the part where I goofed up, and things didn’t work out. As I said my original video is 29.97 fps. My project and final video that I made in DaVinci Resolve is 24 fps. Unless there’s something else at play here that I don’t understand, this seems to have caused my script and video to be just a little off. Now I can go back, start my project again from scratch, and this time set the framerate to 29.97 fps from the very beginning. However, ultimately I don’t want to make compilations from just one video which means I’m going to have to deal with a collection of framerates anyway so how would I solve that?

EDIT: If run all of my videos through HandBrake first and convert them to the same framerate as my project, would that keep all the scripts in sync when the final video is rendered?

EDIT 2: Just went through the entire process again. Started a new project with the same framerate as my video source (29.97 fps). I added basically the same clips and tried to make it as identical as possible. The end result is that my script still does not match the actions of the original. It’s also nearly identical to my first attempt, but just slightly off. Is it the 29.97 fps framerate that’s causing the problem? Should all of my videos be a round number like 24 fps or 30 fps?

EDIT 3: I converted my video to 30 fps, and tried again with a 30 fps project in DaVinci Resolve. The first action is 4 seconds in, and it is off by exactly one frame. This an improvement over the previous version which was off by 6 frames. However the first version where the final rendered video is 24 fps is slightly better than version 2 by being off by 5 frames.

I didn’t realize you could do that! Definitely gonna be using seconds and ms from now on. Thanks for building such a great tool, @overkeks!

I’m so glad to hear that you’re making good progress! I’m going to work on that spreadsheet soon, which should make doing the batch timecodes much easier. I’m excited to hear that you can copy/paste the timecode, because that should save a LOT of time. Would you do me a favor and paste an example of what gets copied when you use that method? That way I can set up the spreadsheet to correctly read the timecode without you having to tweak it at all before pasting. (Also, it breaks my heart a little that the audio timecode solution didn’t work for DaVinci Resolve. I didn’t realize that was for a different application, and I was hoping we had stumbled onto a great solution!)

As for the framerate issue… That is a bit beyond my knowledge of video editing. As I understand it, the funscript format uses timecodes, not frames. So in theory, things should continue to match up. I looked around a little and I was able to find a topic regarding framerate conversions. You may find it helpful. You could also consider reaching out to some of the more knowledgeable people in that topic and see if any of them have suggestions for you.

Does scripting a 60FPS in 30FPS mess any thing up? - Help - EroScripts

1 Like

Here’s an example of the source timecode from the timecode window 00:03:08:03
The last two digits are frames. It can also be changed to show the source frame like this 4519.

I just took a look at some of my split scripts and vids from fsVideoMergerSplitter, and compared it to the original. The split vid and script matches up perfectly with the original. This suggests that there’s nothing wrong with fsVideoMergerSplitter and that it’s doing everything it’s supposed to correctly. I went back into my DR project that I used to fetch the timecodes used to create those split clips. I opened up one of the clips in a media player, scrolled through my DR project to where I found the starting timecode for that clip, and sure enough they do not match up. The clip starts several frames earlier. From all three of those tests that I talked about in my post above, I had to move my script backwards between 1 to 6 frames. From what I can tell this means that the timecode of my video is getting messed up when it’s imported into DR. Maybe this has to do with drop frames from the framerate being 29.97 fps. I’m going to try this again with a different video that was shot and scripted at 30 fps and see if this same thing happens.

Thanks for the link to that post. I’ll read through that some more, and probably post my issue over there too.

Just made a two clip edit from a single 30 fps video. Once again the split clips match up perfectly with their split scripts, but the timecodes that DR is giving me are just a little off. Just like my previous test with a (converted) 30 fps video, this one was also off by exactly one frame. Now if I just have to always shift my final script one frame forward every time I make a compilation, that’s not the worst thing in the world, but it tells me that there’s something wrong with my workflow or understanding of the process.

Alright, I’ve got a spreadsheet put together that should work some magic! It’s set up so that you just copy/paste the timecodes in, set the framerate, and then you can export the second sheet as a CSV and it’s already formatted to be used in fsVideoMergerSplitter. The only thing you will need to do is remove some extra semicolons that will show up in the CSV.

This is just my first stab at it, so please don’t hesitate to let me know if there are some things you’d like to see changed or added.

Reading through your post about the 30 fps still being off by one frame, it makes me wonder if it’s a thing where maybe DR considers a certain time code to be the “start” of the frame, while fsVideoMergerSplitter considers it to be the “end” of the frame (or vice versa). If so, there are two easy ways to fix it. First, you could just always scoot one frame to the right or left as necessary, and then go get the timecode. That will just take a little testing to figure out which way you need to go. The other option is we can update the spreadsheet to either add or subtract 1 from the number of frames when it calculates that in column F. Let me know if you want me to make that update.

1 Like

Thank you so much! Hopefully I can test out the spreadsheet later, and let you know what I think.

In the meantime, I think I can declare at least a partial victory. I took my 30 fps video, ran it through HandBrake, converted it to 60 fps, started a new project with a 60 fps framerate, did everything all over again, and everything came out synced up perfectly. Next up I’m going to try this same thing with a 29.97 fps video and a 24 fps video. If those work out, then I’ll move on to combination framerates.

That’s awesome! Definitely sounds like a victory to me. :smile: Hopefully the videos with the weirder framerates will work out. I’m looking forward to hearing how it goes!

I just took a quick look at the spreadsheet and input the values from my last project just to see how it works. I got the calculated minutes and milliseconds, but column J with Combined (MM:SSmss)just shows “Err:511” all the way down. It also shows the same thing on columns A and B on the second tab. I’m not very good with spreadsheets so maybe there’s something I’m doing wrong.

Interesting… Ok, here are some questions that might help me identify what’s wrong.

  1. When you first opened the spreadsheet, was column J showing Err:511? I had put some example values in the first few rows, so those should be displaying properly.
  2. Does the entire column J show the error? Even on rows where column B is blank?
  3. If you copy/paste the timecodes in, does the error show up? If you type the same timecodes by hand, does the error show up?

You can also try these two versions of the spreadsheet and see if one of those works better. The original version was saved as Microsoft Excel, but the new versions was saved with the OpenDocument format. I’m hoping that resolves the issue.

1 Like

Just downloaded, and tried the two new versions. When I open the .ods version, I get a message saying “This document uses an unsupported version of the Open Document Format. Some features may not be displayed correctly.” It asks me if I would like to try to update Open Office, I do that, but I have the latest version already. The following answers also apply to the two new versions as well.

  1. Yes, it also already displays the error in the results section of the second tab.
  2. Yes, in every row all the way down to row 101.
  3. Yes, the error remains regardless of whether I copy and paste or type in the timecode.
1 Like

Sweet, thank you for testing that out. Turns out that the TEXTJOIN function I used in that column is not supported by OpenOffice, only LibreOffice. I downloaded OpenOffice and checked it there, and I was seeing the same problem as you were. I’ve adjusted the spreadsheets to use the CONCATENATE function instead, and it should work now. I opened the new version and confirmed that OpenOffice was able to run it.

You can use either the .ods or the .sxc file. I’ve put both up just to cover my bases, but they’re the same thing. Each day we get a little closer to figuring this out!

1 Like

It looks like the final display of the calculation is using only the minutes and milliseconds but dropping the seconds entirely. After the column G divider, it just has column H “Calculated Minutes,” column I “Calculated Millisecs,” and then column J “Combined (MM:SSmss).” The result is a format that looks like XX:XXXX instead of XX:XX.XXX.

I really like that the results tab lets you save the final doc. That’s a really nice touch.

I made a multi-vid compilation and used the spreadsheet before I realized it wasn’t working. When I got done I realized that I forgot to change the framerate in the spreadsheet for any of the vids. I foresee this happening a lot. This is the time that I would really appreciate some kind of nag screen. Maybe the first tab of the spreadsheet could be nothing but the framerate option so it’s the first thing you see when you open it up.

Oops! Lol. Ok, I updated both files to fix that little mistake. :sweat_smile: I also updated them with a new tab that is just for the framerate. That was a good idea, and hopefully it will help people to remember to update it.

Both files should be fixed and available using the links from my last comment. (I’m new to using Mega, so if for some reason the fixed versions aren’t available at that link, let me know!)

1 Like

It looks like I ended up just downloading the same two files again. I think I’ll need a new link.

Ok, sweet. Try these! :smiley:

1 Like

I’ve had some time to try out the spreadsheet tool, and I think it works really well. Thank you very much for making this!

Unfortunately I’m still banging my head against the framerate problem. I thought I had found a solution, but when I put it to the test by making a compilation of videos with multiple framerates it didn’t work out. I even rendered the video with fsVideoMergerSplitter on the slow setting, and I think it might be even more out of sync in places than my DR rendered video.