PDA

View Full Version : Real Life TV Scene Change Detection?


MDLuffy
8th October 2008, 06:07
Hello everyone, I have searched the forums as well as Google and I am puzzled at how to create a good script for real life TV that detects scene changes. I have run samples through every setting in MeGUI, but none of them detect the scene changes very well (the changes are just blended instead of corrected).

Anyways, here is an 11 MB sample. I am pretty new to real life TV encoding, so please make your responses n00b friendly.


http://www.mediafire.com/?yjzn2yhiglu


Thanks for looking!

TheRyuu
8th October 2008, 06:35
http://ivtc.org/new/SCXvid.rar

SCXvid 1.0

SCXvid produces first pass xvid logs from avisynth at the equuivalent of the default vfw preset. These logs are primaliy intended to get scenechange information from but could probably be used in some kind of twisted encoding setup too with lossless encoding of the output.
Usage

Mpeg2source("some_progressive.d2v")
SCXvid("C:\xvid_first_pass.log")
Arguments

SCXvid(clip, string log)
All arguments are required
The clip can be in any colorspace and will be converted internally to yv12 with xvid's routines
Log is the output filename

MDLuffy
8th October 2008, 16:54
Thanks for the reply Dragon5152, but it's not quite "dumbed" down enough for me. How exactly do I use this--like what do I do with the logs after they are created?

TheRyuu
8th October 2008, 18:09
Thanks for the reply Dragon5152, but it's not quite "dumbed" down enough for me. How exactly do I use this--like what do I do with the logs after they are created?

I dunno. Do whatever you want to do with it. You asked for something which could detect scene changes. There you go.

Comatose
9th October 2008, 07:50
But to use the log you'll probably have to write a program to interpret it and generate an AVS for you.

SCSelect is a special filter, which distinguishes between scene begins, scene ends and global motion. (http://home.arcor.de/kassandro/RemoveDirt/RemoveDirt.htm)
scene_end = subtitle("scene_end")
scene_begin = subtitle("scene_begin")
global_motion = subtitle("global_motion")
SCSelect(scene_begin,scene_end,global_motion,dfactor=3)
Didee recommended this a few months back. Play with dfactor to adjust the sensitivity. (once you've got it just the way you like it, you can replace the subtitle()s with real filters. If you don't want to process one, then you need scene_end = last for example.

Lele-brz
9th October 2008, 09:12
Hi Comatose,
I'm interested in finding scene changes insisde a video too. Where can I get SCSelect plugin?

Is there a way to use an Avisynth filter not in real time, I mean is there a way to process a video file and generate the log file without watching it and using all CPU?

thanks in advance

Sagekilla
9th October 2008, 19:03
Try opening the avs file in virtualdubmod and set it to play. Just minimize it afterwards.

Comatose
10th October 2008, 10:07
SCSelect is part of RemoveGrain.

Lele-brz
10th October 2008, 15:46
thanks,
I checked here: http://avisynth.org/mediawiki/Removegrain
but I couldn't find the dll for SCSelect

Comatose
10th October 2008, 16:00
Part of meaning it's part of (in) the RemoveGrain DLL :X

45tripp
10th October 2008, 16:07
scselect is a part of removedirt, not removegrain

Lele-brz
10th October 2008, 16:45
Thanks,
yes, it's inside removedirt.

Now I just need to understand hot tou use it to detect frames with scene change without playing the video in real time.

Comatose
10th October 2008, 18:04
scselect is a part of removedirt, not removegrain
Oops. I thought RemoveDirt turned into a scripted function somehow.

thetoof
11th October 2008, 03:15
Yes, removedirt was turned into a script function using RestoreMotionBlocks from removedirt.dll & other functions of removegrain.dll, but SCSelect is a function inside removedirt.dll

http://www.removedirt.de.tf/
http://www.removegrain.de.tf/

MDLuffy
20th October 2008, 19:02
Hello everyone. I'm still looking for some good/basic settings that will properly deinterlace (including the scene changes) the sample I posted. Can anyone test it out and post a script for me? As I mentioned, I've tried all of the setting combinations in MeGUI, but not any of them handle most of the scene changes very well.

TIA!

Fizick
21st October 2008, 08:11
DePanScenes is scenechange detector from DePan plugin.
how to use it for deinterlace -it is another question. :)

Didée
21st October 2008, 09:15
Ah, and I wondered about this here (http://forum.doom9.org/showthread.php?p=1205155#post1205155) ...

It's broken. Your sample shows interlaced content that is encoded with progressive encoder setting. This means that the blending is already in the source you're starting with.

This stuff is FUBAR. If that TV station is airing their stuff always like that (you're catching DVB-S/T/C streams), then blame them for not knowing what they're doing. If it's kind of an analog recording (you're using a DVD recorder, or a PC capturing to mpeg2), find ways to set the encoder to interlaced encoding style.

If it's only about the scenechenages, SCSelect should be the way to go to clean them up. But that doesn't change the basic fact that the source is seriously broken, broken, broken.

MDLuffy
22nd October 2008, 16:48
I was afraid of that. I have satellite, yes. I'm almost thinking that it has something to do with either the cables running to my house from the dish, the grounding the dish has, or my actual receiver, because all channels are like this. I have tried numerous settings to get it looking better, but even the raw files are like the sample.