Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se |
|
|
#1 | Link |
|
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,754
|
Zscene - Scene change detection for Vapoursynth
Repo: https://github.com/adworacz/zscene
Version: 0.1 In a bit of "if you can't beat 'em, join 'em", I threw together a quick plugin to handle scene change detection. More specifically, it doesn't actually do any scene change detection itself (yet), but farms out to much more accurate tools like av-scenechange. All that's currently implemented is a "ReadScenes" function that (you guessed it) reads the scene data produced by external tools and adds the pertinent scene change properties to each frame. Use it to replace the (much outdated) "misc.SCDetect" function for automatic scene change detection. In the future, I'll likely implement some custom scene change detection algorithms to do this all inline, but for now relying on scene change detection that's literally used in the AV1 compression algorithm is enough for most use cases.
__________________
Flawless Media - Digitizing and Restoration Zsmooth - Cross-platform smoothing for Vapoursynth Zscene - Scene change detection for Vapoursynth Old Site:Adubvideo Last edited by Adub; 2nd June 2025 at 20:59. |
|
|
|
|
|
#2 | Link | |
|
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,647
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
|
|
|
|
|
#3 | Link |
|
Registered User
Join Date: Aug 2024
Location: Between my two ears
Posts: 957
|
Personally I don't think av-scenechange is good.
Sure it's better than simple pixel difference thresholding or smth, but we have mvtools which is online and faster (last time I checked it). Taking some sort of RD cost into account (av-scenechange is taken from rav1e, so I think there must be some) can be a desired feature depending on the following process though. Last edited by Z2697; 3rd June 2025 at 07:59. |
|
|
|
|
|
#4 | Link | ||
|
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,754
|
Quote:
Quote:
av-scenechange uses 3 different metrics for scene change detection, as described in the source code: https://github.com/rust-av/av-scenec...ard.rs#L19-L21 And to clarify the av-scenechange / rav1e relationship - rav1e was the original source of the scene change detection, but it was split out as a separate module to av-scenechange and now rav1e has been updated to depend on av-scenechange directly. So they are using the exact same code at this moment. |
||
|
|
|
|
|
#5 | Link |
|
Registered User
Join Date: Aug 2024
Location: Between my two ears
Posts: 957
|
I don't have. It's more like a personal preference. I don't want to consider encoding cost in the scene detection for filtering.
Plus the ability to run online. And the speed, well I tested again, av-scenechange can be faster, even much faster if the fast mode is used, but MVTools is still fast enough. Although, I must say they are closely related - the motion and the cost, and worth considering in many cases. |
|
|
|
|
|
#7 | Link | |
|
Registered User
Join Date: Aug 2024
Location: Between my two ears
Posts: 957
|
Quote:
If we forget about the outdated XviD based ones, there're MVTools and styler00dollar's AI models (works on downscaled video so quite fast actually), and others I don't know of. (I don't mean zscene shouldn't be one of them) Speed-wise, I don't think there's anything that can beat misc.SCDetect because it's so simple. |
|
|
|
|
|
|
#8 | Link | |
|
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,754
|
Quote:
|
|
|
|
|
|
|
#10 | Link | |
|
Fighting spam with a fish
Join Date: Sep 2005
Posts: 2,754
|
Yes, that's correct, although depending on your use case, and the features (like ffmpeg support) that av-scenechange is compiled with, you can feed your source file directly to it with something like this:
Quote:
But in sum, you do need to run av-scenechange on your source somehow to produce the JSON that Zscene can then read. |
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|