ClipMash - Generate video compilations automatically (v0.21.0)

What about allowing this at least from a single video? :eye: :eye:

Storage isn’t a huge issue with the encodes, but I’m thinking about using this for some 4k vid compilations and maybe throwing in some music or letting Syncbot’s AI process it to make a script, and those could get big and lossy. I also don’t like remixing HMVs into HMVs and deepfrying the quality too much.

Another bug/not bug is when generating the funscript, it won’t tell you if one of the clips didn’t have a matching .funscript file in the folder. You just end up with this bizarre combined funscript if you missed a file.

All right, I have another actual bug to report:
When I use a .ogg music file followed by a .m4a file, only the first song works. Multiple .m4a files has worked, but it seems like mixing formats is causing an issue here.

I think the most useful thing would be to just check if all the files have the same video parameters, then just don’t re-encode the videos, that obviously would also work when the source is a single video. Also made a ticket: Feature request: Don't re-encode clips if they have the same encoding parameters · Issue #56 · soundchaser128/clip-mash · GitHub

Yeah, that’s fair. Not sure what to do in that case, though. I guess the best solution would be to have some choice in what to do in between the scripts, so… just fill with some type of pattern or something, but that would require a decent amount of work.

Ah, yeah, I think I can see why (the way I set it up, ffmpeg just concatenates the audio clips without re-encoding them, so when they are different formats, you get junk)

I’m also currently in the middle of a pretty big rework of the app, since I want to unify Stash and local files (and I’m on vacation next week), so it might take me a bit to get around to this stuff.

I’m also currently in the middle of a pretty big rework of the app, since I want to unify Stash and local files (and I’m on vacation next week), so it might take me a bit to get around to this stuff.

That sounds great, much appreciated.
Just wanted to report some bugs. Very cool tool btw, just wanted to improve ease of use for people a bit.

I would also personally like things like hotkeys for Start Marker and End Marker, as well as the ability to hit Escape to close the video and return back to the search page with all the videos, rather than having to hit the X.

Also, for selecting the video, we should also be able to just toggle the video on and off by clicking on the picture preview of the video, rather than clicking the little Include toggle: (click the orange region to toggle)


I think it would just make it a lot faster for high # of clips. Idc much for the VIdeo preview.

Also, another bug I guess is the video preview usually just loads from the very beginning of the whole video file, rather than showing the specific clip from the markers.

I’m glad people are enjoying this app! I’ve put a decent amount of work in it at this point and it’s super motivating to hear people like it.

Closing modals with ESC (including the marker dialog) is implemented in my refactoring branch, other stuff is also planned, but haven’t gotten around to it yet.

Good idea, also implemented.

Noted

1 Like

It’s funny, I had no idea this video could do things like the music-based funscripts and do the clip combination stuff so well. I thought it was just another sort of PMV generator, but the stash-like interface makes it quite nice, and maybe something that people will want to use long-term to generate clips.

I think if it has a feature to do lossless splitting, it will be great for people who want to take, say, a 60 minute long video where they made a 10 minute funscript from, and then export that on its own without re-encoding.

The ffmpeg command is pretty simple for lossless clip generation:
ex.
ffmpeg -i “path\to\inputfile.mp4” -ss 00:37:00 -to 00:47:00 -c:v copy -c:a copy “path\to\output clip.mp4”

Hello @soundchaser128 , this program is wonderful!

Especially nice if I want to quickly grab a bunch of clips of a specific performer. After conversion, I can open the internal folder and have a bunch of separate videos of the clips.

I have a few feature suggestions:

  • This seems easy, but when filtering markers, if I use “Select All”, then remove the filter, all the videos are selected. I would like to filter, select all, unfilter, and only have the markers I previously had filtered selected. Likewise, if I have all the markers selected, then filter, and click “Deselect All”, I would like it to only deselect the clips.
    – Lets say I have 1000 markers, now I just want the markers that include facials and blowjobs, ideal would be start with no markers selected, filter for the Facial tag, select all, clear filter, filter for the Blowjob tag, select all. Now when I clear the filter all the facial and Blowjob markers should be selected.
    – I’ve been using stash and marking where I want the end of clips with a “End Clip” tag. Doing so makes it so I can make a compilation and don’t have to set lengths. I don’t want “End Clip” markers to be included, so I filter these, but if I have a large collection of videos, there could be hundreds of these markers. Currently I must either manually uncheck them all, or I can also use adjust marker ratios and turn that ratio to zero.

  • A mode to filter both performers and tags in one go would be nice.

  • Some sorting features would be nice, like sorting by the number of markers including a tag.

  • When using stash, there’s no way to preview the markers until the preview clips page if I did not generate marker previews in stash. Generating previews in stash produces 20 second videos which can take up a lot of space. There’s also not a way to generate a static marker preview without generating the video in stash.
    – So it would be nice if by checking the preview, it would directly stream the video like it does in the preview page.
    – It would also be nice if there was a way to generate image previews of the markers.

  • Fullscreen the video in the preview page.

  • Feature to just output clips that are done with keyframe cuts(closest keyframe before start of marker) that outputs in original encoding format and quality. Similar to how the app “Lossless-cut” works.

  • More resolution options like 1440p, and an option for vertical video.

  • More complex feature, but would be cool if there are vertical videos if it could randomly stack 3 videos next to each other.

  • Another more complex feature, but a way to create groups with different ratios, so one group could be just “Hardcore, Cowgirl”, another “Blowjob, Facial”, etc so you could build up a compilation with different types of action. Of course I could do this by making multiple separate compilations then stitching them, but takes more effort.

hi,
There’s a bug on videos longer than an hour. if i try to create a marker from 01:02:55 to 01:03:55 the time set goes to 2:02:55 to 02:03:55, and even if i enter it by hand it’s impossible to create the marker.

Hey, this program is absolutely amazing!
Is there a way you could add an option to rename video files/move video files from within the program so that the markers stay connected to the files?

Thanks for the nice words! And yeah, that does sound useful.

In general, if you have feature requests or find any bugs, can I ask you to post them as issues on GitHub? It’s getting harder to keep up with all the forum posts, discord messages etc.

So, I’ve been working on a big set of changes to the app, which involves having just one video library that you can add videos into, either from Stash, your local hard drive or via downloading them from a website directly. I need some eyeballs on this, since this is a really big change and it’s probably still buggy in some places. I’ve also fixed at least one of the bugs mentioned here.

Known issues:

  • The “create funscript” page is currently not working Fixed
  • For videos from Stash, the markers are added to the local database from Stash only once, so when you add new markers in Stash, they won’t show up in clip-mash (only relevant for videos added via Stash)
  • Adding markers currently only adds them to the local database, not to Stash (only relevant for videos added via Stash)

Here’s the build: Release v0.17.0-pre.3 · soundchaser128/clip-mash · GitHub

1 Like

This is now implemented in the newest pre-release build.

This should be fixed as well.

Fixed.

Implemented this

Done, you can now just enter the resolution in two text inputs, so you can do vertical videos, whatever you want.

Fixed

Here’s the new build with all the goodies (still a pre-release version, but should work pretty well by now):

2 Likes

I like the changes, but this limit is a little weird, just noticed:
image
If I put 30 on a 24fps video it just losslessly combines the clips from it, and then sets the framerate to 30 with the minimum framerate in the media info being 24 anyway.

  1. Ah, that’s fair. (there doesn’t need to be validation for a minimum frame rate)
  2. At the moment, you can’t see in the UI when clips are created without re-encoding, and when they are, the video settings page is pretty much useless. I should probably still change that.

I was thinking that for #2 lol
Found out by just setting the resolution to the normal one provided by the video, and then it finished instantly so I knew it wasn’t re-encoded.

Should be fixed in this pre-release. It’ll hide the video options form with an information text when there’s no transcoding happening. I also added the option to sync data from Stash after the scene has been added (will replace title and tags with what’s stored in Stash, add local markers to Stash and also add the markers from Stash to the local database)

1 Like

Sweet, appreciate all the improvements.

New release: ClipMash 0.17.0

This is probably the biggest release so far.

New features

  • Unified video library. You no longer need to choose between whether you want videos from Stash or from your local hard drive.
  • Only re-encode clips when the source videos have different encoding parameters (width, height, FPS, codec). Clips will be created losslessly, without re-encoding if the source videos’ encoding parameters are the same.
  • Pressing ESC now closes modal windows
  • Clicking on a marker or a video’s image now selects/deselects it
  • Add basic sorting options to the video library page
  • Resolution can now be set freely via input fields, allowing more exotic resolutions and vertical videos, for example.
  • Greatly improve OpenAPI docs.
  • Allow filtering videos by source

Bugfixes

  • Bug when trying to add markers in videos longer than an hour
  • Select all/Deselect all on the marker page now only selects the currently visible markers
  • Marker video preview now shows the correct time range of the video

I started working on this. Right now, the idea is that you can create groups of markers that will appear together in a compilation. At the moment I’m messing around with the UI to get to something that’s somewhat usable and understandable

Some work-in-progress UI

1 Like

Hi! I just started to use ClipMash and after downloading the compilation video, I tried to download the funscript and nothing was on the file. All my funscripts and videos are the same name in the folder (Title.mp4 and Title.funscript). The funscript was blank. Could it have to do with where my videos are stored? I have them on a hard drive. Thanks!

Atm this is what my funscript file looks like in notepad.

{“version”:“”,“inverted”:false,“range”:-1,“bookmark”:-1,“lastPosition”:-1,“graphDuration”:-1,“speedRatio”:-1,“injectionSpeed”:-1,“injectionBias”:-1,“scriptingMode”:-1,“simulatorPresets”:,“activeSimulator”:-1,“reductionTolerance”:-1,“reductionStretch”:-1,“clips”:,“actions”:,“rawActions”:,“metadata”:{“creator”:“clip-mash v0.17.0”,“description”:“”,“duration”:0,“notes”:“”,“performers”:,“script_url”:“”,“tags”:,“title”:“”,“type”:“”,“video_url”:“”}}

Oh also in CMD I see this

failed to get .funscript for scene ID potable-impressive-icelandicsheepdog: HTTP status client error (400 Bad Request) for url (http://localhost:9999/scene/potable-impressive-icelandicsheepdog/funscript)

Hmm, that sounds like it’s probably a bug. I’ll take a look.