dbvideostriketeam / wubloader

MIT License
14 stars 6 forks source link

Support video transitions #390

Closed ekimekim closed 1 month ago

ekimekim commented 3 months ago

This PR has quite a few changes to how cutting is done, in support of two new features:

This required rewriting ffmpeg handling considerably. In the process I was able to build slightly higher level abstractions around calling ffmpeg which I think is a win overall. The simple cut functions (eg. to build a waveform or extract a frame) are considerably easier.

It may be best to review this commit by commit - the first few commits are setting up the abstractions I then use for rewriting the fast and full cuts.

We support all transitions built into the xfade filter in ffmpeg, including basics like fade but also many kinds of wipe. We also have two custom wipes, a star wipe and a clock wipe.

Audio is cross-faded over the same time period as the video transition - we may revisit this in the future but this was the simplest option.

The cutter needed almost no changes to pass in the transitions correctly. The restreamer learned a new option to the cut endpoint to also take a number of transitions.

ekimekim commented 1 month ago

I'd rather not leave this sitting on top of master while other changes go in, so I'll just merge it now. I tested this when I first implemented it and it works. If we hit any problems it can be avoided by simply not doing any transitions.