Based on my merge/split tool, I made a more user-friendly program to create a loop of a specified length from a loopable video.
You pick a video with a funscript, set the final length, review the settings and click start. Speed can increase with time, but that’s optional.
Source is included. As are some bugs - probably.
13 Likes
nice. got a repo? i kinda want to add an A→B loop option (yeah i see the source code folder)
1 Like
No repo yet.
But I think you can easily do what you want with my other merge tool.
1 Like
Thank you for making this. This is exactly what I need (and I was using your other tool to do this before). However after trying this on multiple videos, it just doesn’t seem to work at all. The looped videos this creates just start jittering after the first speed increase happens, like you’re fast forwarding on a VCR. And then it just breaks and the video file doesn’t continue to play. Would it help you if I uploaded a few of my failed attempts or is this known to not work anymore? I used the settings as you have them in the screenshot.
Oh, also had that bug and fixed it. But I thought I messed it up after the upload.
Anyway, I just uploaded a new version. Should work as intended now.
Also added an option to remove actions that are way too fast.
edit ok after running into that issue again, I REALLY fixed it now.
Problem is/was, that the normal speed video is not preprocessed before merging and could not be merged with the speed scaled versions sometimes.
Anyway, it has a checkbox now. Should fix the issue.
Great tool. Thank you overkeks!
Do you think you could expand upon the speed change options? It woud be great if the speed could not only be increased but also decreased at set intervals. Maybe consider adding ranges for the speed increase/decrease and interval to make everything a bit more random?
1 Like
Sure, but if I add too many features, I have to remove the easy at some point ;).
If you want more control, you can do that with my other tool: Funscript&Video merger / splitter
It also uses the same code to merge, so the result is exactly the same.
Just create a csv with the same video name and your desired speeds, hit merge and select the csv.
Like
video1.mp4 100
video1.mp4 100
video1.mp4 90
video1.mp4 120
video1.mp4 120
etc.
Thanks!
By the way, what am I doing wrong if i’m getting the following error:
finished cut
Object reference not set to an instance of an object.
This error only occurs when the speed value is set to anything other than 100
Hm, just tested it with the current version. Should work (fast merge).
Kind of hard to guess.
the csv is like this?
mergefilename;speed
x.mp4;123
x.mp4;123
x.mp4;140
x.mp4;140
Is it with all videos with different speed?
You used a mp4?
Are the timescaled videos created and the merge failed or no videos?
I used an .mp4 and tried different speeds (including no speed), the error only occured when there was a value other than 100 or blank. It was creating the timestamped videos but fail on the merge. However, the individial videos found in the temp folder would not play either.
Anyway, after reinstalling ffmpeg and deleting and readding the .mp4 it seems to work now. Not sure which of the two did the trick. Thank you for your help though!
One more question, with the current program the speed can only be changed for each full part, right? As far as I know ffmpeg technically also supports speed ramps, where the playback speed is increased linearly over time (as in during the play time of one part). Would it be possible to include that functionality in your tool? That way speed could be increased more smoothly in the loops created, eg. starting at speed 100, than gradually increasing the speed from 100-140 over the course of part2, holding it at 140 for part3, then jumping back to 100 at the start of part4, etc…
One more odd thing I noticed, the output fps is weirdly inconsistent for me. Starting from a 60 fps file, I sometimes get 25 fps (20 for slow mode), sometimes 11.77, 14.39, 122.92 or 123.04 fps (except the 20/25 fps ones, all of these files freeze at some point when playing). I think originally I managed to get the correct 60 fps merge file once or twice, but now all I seem to be able to get are files with the wrong framerate. I’m still trying to find reproducable contidions for this…
After some more testing I can say that the setting “also preprocess Speed 100 parts” reproducably results in files with 25.00 fps for fast mode and 20.00 fps for slow mode. Without this setting, I get weird fps. Oh and interestingly, when I dont specify any speed, it gives me the correct 60 fps merge file.
Medium mode didn’t work for me because it looks for the temp files in the wrong folder (fsVideoEditor_1_3\examples\merge\looperTemp\scaled_part1.mp4 instead of fsVideoEditor_1_3\examples\merge\temp\scaled_part1.mp4) and then shows the following error:
File mentioned in csv is not existing: fsVideoEditor_1_3\examples\merge\looperTemp\scaled_part1.mp4
Why are there two different folders (temp and looperTemp) anyway?
The .csv I was using for testing looks like this:
mergefilename;speed
part1.mp4;100
part1.mp4;110
part1.mp4;120
part1.mp4;130
all files used are named after the clip (part1.csv; part1.funscript; part1.mp4). The size for scaling is set to 2560:1440 and include audio stream was ticked. I tested two different 60 fps clips and manually cleared all the temp folders after each test (could this be cleared automatically by the tool? Otherwise lots of temp files pile up over time)