Hello guest, if you like this forum, why don't you register? https://fanrestore.com/member.php?action=register (December 14, 2021) x


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Peter Pan
#31
I can't remember ever testing a scene detection script, but I also don't remember ever hearing of any that were considered good at the job.
Sorry, no advice on this one.
Reply
Thanks given by:
#32
Okay, it turned out to be an easy fix -- one of the script's .DLL's needed to be linked to Windows through the PATH statement (I thought it was an Avisynth .DLL and had it in the Avisynth plugins directory). Not doing that made the media player sit and wait ... for nothing ... forever. (Dodged that bullet ... Eek )

So far, I was able to test 3 scene-change scripts. One (Doom9 forum's johnmeyer script using Avisynth's YDifferenceToNext) exported per-frame information, without explanation of how to interpret or use it, and the other two (SCDetect & SceneChangeLavc) did nothing, even when varying parameters.   Rolleyes

It would be easier to simply to sample one frame every second.   Dodgy   76 minutes at 24/or/30 frames (per minute) should be portable enough and have samples enough to check a single correction setting for the entire movie's variety of shots. If that produces too big of a file, one frame every 2 (or 3, or even 4) seconds will cut it in half (or thirds, or fourths) and still shouldn't lose any individual shot.

I used this video https://www.youtube.com/watch?v=uYhFVfkfujs for testing (24fps) . .

Code:
## Avisynth script - samples every x-th frame from video
## ----------


## video
## ----------
movie1A = FFAudioSource( "Peter Pan - You Can Fly -360p.mp4" )
movie1V = FFVideoSource( "Peter Pan - You Can Fly -360p.mp4" )
movie = AudioDub( movie1V, movie1A ).KillAudio()


## sample one frame of every 24 /or/ 30 frames (depending)
## ----------
movie.SelectEvery( 24, 0 ).AssumeFPS( 23.97 )    # for 24fps
#movie.SelectEvery( 30, 0 ).AssumeFPS( 29.97 )    # for 30fps

If you don't already have it, get the plugin FFmpegSource http://avisynth.nl/index.php/FFmpegSource (for AviSynth 2.6.0 or greater) and use it with the recommended split call (audio first) and then recombine it. As the audio would be ridiculous (and a waste of space), just KillAudio it.
Reply
Thanks given by:
#33
Here I used Avidemux 2.7.0 (it's the latest, with it's included AVS proxy GUI program) for the Avisynth script (with new settings for processing the test YouTube video), . .

Code:
##=================
## Avisynth 2.6.0
## Disney's Peter Pan restoration/correction
##=================



## ==========
## SECTION - plug-ins
## ==========

LoadVirtualdubplugin( "D:\projects\Disney Peter Pan\VDub files\"+"gradation.vdf", "VDub_GradationCurves", 1 )

## ==========
## END SECTION
## ==========



## ==========
## SECTION - load files
##
## Load sample frames as video
## NOTE: replace this section with acutal video-files code
## ==========

## DVD sample frames - files path & name
## ----------
frameDVD01 = "frames\DPP_DVDSE2002_01.jpg"
frameDVD02 = "frames\DPP_DVDSE2002_02.jpg"
frameDVD03 = "frames\DPP_DVDSE2002_03.jpg"
frameDVD04 = "frames\DPP_DVDSE2002_04.jpg"
frameDVD05 = "frames\DPP_DVDSE2002_05.jpg"
frameDVD06 = "frames\DPP_DVDSE2002_06.jpg"
frameDVD07 = "frames\DPP_DVDSE2002_07.jpg"
frameDVD08 = "frames\DPP_DVDSE2002_08.jpg"
frameDVD09 = "frames\DPP_DVDSE2002_09.jpg"
frameDVD10 = "frames\DPP_DVDSE2002_10.jpg"
frameDVD11 = "frames\DPP_DVDSE2002_11.jpg"
frameDVD12 = "frames\DPP_DVDSE2002_12.jpg"
frameDVD13 = "frames\DPP_DVDSE2002_13.jpg"
frameDVD14 = "frames\DPP_DVDSE2002_14.jpg"
frameDVD15 = "frames\DPP_DVDSE2002_15.jpg"
frameDVD16 = "frames\DPP_DVDSE2002_16.jpg"
frameDVD17 = "frames\DPP_DVDSE2002_17.jpg"
frameDVD18 = "frames\DPP_DVDSE2002_18.jpg"
frameDVD19 = "frames\DPP_DVDSE2002_19.jpg"

vidDVD = (
    \  ImageSource( frameDVD01, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD02, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD03, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD04, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD05, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD06, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD07, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD08, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD09, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD10, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD11, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD12, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD13, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD14, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD15, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD16, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD17, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD18, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameDVD19, start=0, end=0, fps=0.5 )
    \ ).ConvertToYV12()

## Get sample frames for video - files path & name
## ----------
frameLD01 = "frames\DPP_LDCAV1990_01.jpg"    # blank for missing sample
frameLD02 = "frames\DPP_LDCAV1990_02.jpg"
frameLD03 = "frames\DPP_LDCAV1990_03.jpg"
frameLD04 = "frames\DPP_LDCAV1990_04.jpg"
frameLD05 = "frames\DPP_LDCAV1990_05.jpg"
frameLD06 = "frames\DPP_LDCAV1990_06.jpg"
frameLD07 = "frames\DPP_LDCAV1990_07.jpg"
frameLD08 = "frames\DPP_LDCAV1990_08.jpg"
frameLD09 = "frames\DPP_LDCAV1990_09.jpg"
frameLD10 = "frames\DPP_LDCAV1990_10.jpg"
frameLD11 = "frames\DPP_LDCAV1990_11.jpg"
frameLD12 = "frames\DPP_LDCAV1990_12.jpg"
frameLD13 = "frames\DPP_LDCAV1990_13.jpg"
frameLD14 = "frames\DPP_LDCAV1990_14.jpg"
frameLD15 = "frames\DPP_LDCAV1990_15.jpg"
frameLD16 = "frames\DPP_LDCAV1990_16.jpg"
frameLD17 = "frames\DPP_LDCAV1990_17.jpg"
frameLD18 = "frames\DPP_LDCAV1990_18.jpg"
frameLD19 = "frames\DPP_LDCAV1990_19.jpg"

vidLD = (
    \  ImageSource( frameLD01, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD02, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD03, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD04, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD05, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD06, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD07, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD08, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD09, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD10, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD11, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD12, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD13, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD14, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD15, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD16, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD17, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD18, start=0, end=0, fps=0.5 )
    \ +ImageSource( frameLD19, start=0, end=0, fps=0.5 )
    \ ).ConvertToYV12()

## Get video - files path & name
## ----------
vidYT_audio = FFAudioSource( "Peter Pan - You Can Fly -360p.mp4" )
        \ .ConvertAudioTo16Bit()    # for Avisynth Proxy GUI
vidYT_video = FFVideoSource( "Peter Pan - You Can Fly -360p.mp4" )
vidYT = AudioDub( vidYT_video, vidYT_audio )
#        \.KillAudio()            # no audio when sampling

## ==========
## END SECTION
## ==========



## ==========
## SECTION - processing
## ==========

vidDVDfix = vidDVD

## DeHalo_alpha MT2 - remove ringing artifacts
## rx        default = 2.0
## ry        default = 2.0
## darkstr    default = 1.0
## brightstr    default = 1.0
## lowsens    default = 50
## highsens    default = 50
## ss        default = 1.5
## ----------

vidDVDfix = DeHalo_alpha( vidDVDfix, brightstr=1.8 )

## BlindPP - Deblock and/or Dering
## BlindPP( clip, int "quant", int "cpu", bool "iPP", int "moderate_h", int "moderate_v", str "cpu2" )
## Blocks result from the 8x8-pixel DCT used by the MPEG encoder. Be sure that blocks are aligned at 8-pixel boundaries -- no blind cropping or resizing before BlindPP(). Default is progressive source or set iPP=true for interlaced source
## quant -- specifies overall strength of the deblocking process
## cpu2  -- "xxxxoo" for horizontal and vertical deblocking on luma and chroma
##          "xooxoo" for horizontal luma and vertical chroma deblocking
## moderate_h & moderate_v
##       -- horizontal and vertical sensitivity a block to be preocessed
## ex: quant=2, moderate_h=35 (to 45), moderate_v=45 (to 55)
##      very gentle softening on strong visible blocks only, retaining detail and
##      sharpness, leaving intact weaker blocks
## ex: quant=16, moderate_h=15 (to 20), moderate_v=20 (to 30)
##      strong deblocking on almost any block, smoothing away lots of detail & sharpness
## ----------

vidDVDfix = BlindPP( vidDVDfix, cpu2="xxooxx" )


## LimitedSharpen - resharpen without halo's
##  defaults:
##
##  float ss_x      = 1.5
##  float ss_y      = 1.5
##  factors for supersampled operation. hardly ever need to go higher than 2.0. For simple sharpening tasks, set these to 1.0 (no supersampling).
##
##  int   dest_x    = last.width
##  int   dest_y    = last.height
##  Default is same resolution as the input clip. parameters specify arbitrary output resolution. handy if supersampled operation is used in processing chain resizing to avoid an unneeded resizing step.
##
##  int   Smode ("Sharpen mode")     = 3
##  1 = UnsharpMask() [from WarpSharp.dll package]
##  2 = Sharpen()
##  3 = "MinMaxSharpen()" [private routine of LimitedSharpen]
##
##  int   strength  = 100
##  default strength=160 for Smode=1; strength=100 for Smode=2 or 3
##  For Smode=1, 0~127 (simple sharpening), 128~255 (simple overdrive), 255~4096 (big overdrive).
##  For Smode=2, 0~100 to Sharpen() as 0.0~1.0. >100 are mapped to 100.
##  For Smode=3, 0~100, but 100~infinity can be used.
##
##  int   radius    = 2
##  radius for the unsharp masking of Smode=1. For Smode=2 or 3, it's ignored. radius now applies "directly". not scaled with the ss_x|y values.
##
##  int   Lmode ("Limiting mode")     = 1
##  1 = hard limiting with "overshoot".
##  2 = soft limiting (square of real overshoot)
##
##  bool  wide      = false
##  false = use min. and max. values of a 3x3 neighborhood for limiting.
##  true = use min. and max. values of a 5x5 neighborhood for limiting. TRUE for blurry sources and/or bigger supersampling.
##
##  int  overshoot = 1
##  how much sharpening "shoots over" the min/max limits, before clipping or reduction.
##  0 = no overshoot allowed
##  128 = useless
##
##  bool  soft      = false
##  for soft sources with noise. On sharp sources with little noise, you'll loose some detail.
##
##  int   edgemode  = 0
##  0 = deactivated, process the whole frame
##  1 = process only edge areas
##  2 = process only NOT-edge areas
##
##  bool  special   = false
##  TRUE and Smode=3 uses smart contrast sharpening. For other sharpeners, no effect.
##
##  int   exborder  = 0
##  1 thru 4 - excluded from sharpening (use if borders are not clean 2 to 8 pixels from each side of the frame, plus soft transition area.
## ----------

vidDVDfix = LimitedSharpen( vidDVDfix )

## Set proper video for color correction
## ----------

#vidCC = vidDVDfix
vidCC = vidYT

## VDubMod GradationCurves - color correction
## ----------

vidCC = vidCC.ConvertToRGB32()
    \ .VDub_GradationCurves(1,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323435363738393b3c3d3f404143444547484a4b4d4e5052535556585a5b5d5f6162646668696b6d6f7072747678797b7d7f8182848688898b8d8f9092949697999b9c9ea0a1a3a4a6a8a9abacadafb0b2b3b4b6b7b8b9bbbcbdbebfc0c1c2c3c4c5c5c6c7c8c8c9cacacbcccccdcdcececfcfcfd0d0d1d1d1d1d2d2d2d3d3d3d3d4d4d4d4d4d5d5d5d5d5d6d6d6d6d6d7d7d7d7d7d8d8d8d8d8d9d9d9dadadadbdbdbdcdcdddddddededfdfe0e1e1e2e3e3e4e5e6e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1d1e1f2021222323242526272828292a2b2c2c2d2e2f2f303132323334353536373838393a3a3b3c3d3d3e3f40404142424344454546474848494a4b4b4c4d4e4e4f5051515253545555565758595a5a5b5c5d5e5f60616162636465666768696a6b6c6d6e6f7071727374757778797a7b7c7d7e8081828384858788898a8c8d8e8f90929394959798999a9c9d9e9fa1a2a3a5a6a7a8aaabacaeafb0b1b3b4b5b6b8b9babcbdbebfc1c2c3c4c6c7c8c9cbcccdcecfd1d2d3d4d5d6d8d9dadbdcdddfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202060505020000ffff0000181840448ec0e4e4ffff000018188080e4e4ffff00001818806ce4e4ffff0000ffff")

## Return color correction to proper video
## ----------

#vidDVDfix = vidCC
vidYTfix = vidCC


##  convert all to RGB to match the color correction format
## ----------
vidDVD        = vidDVD.ConvertToRGB32()
vidLD        = vidLD.ConvertToRGB32()
vidDVDfix    = vidDVDfix.ConvertToRGB32()    # already applied for GradationCurves
vidYT        = vidYT.ConvertToRGB32()
vidYTfix    = vidYTfix.ConvertToRGB32()    # already applied for GradationCurves

## ==========
## END SECTION
## ==========



## ==========
## SECTION - display files
##  video comparisons - uncomment the one to show
## ==========

## show individual videos
## ----------
#vidDVD
#vidLD
#vidDVDfix
#vidYT
#vidYTfix


## compare x4 ZOOM
## ----------
zoom_factor    = 4
zoomsize_wide    = 480
zoomsize_high    = 360
## format is "zoomsize_wide/4" when not "0"
zoompos_x    = 0            
zoompos_y    = -zoomsize_high/4

zoom_wide    = 640*zoom_factor
zoom_high    = 480*zoom_factor

zm_left        = (zoom_wide-zoomsize_wide)/2
zm_right    = zm_left
zm_top        = (zoom_high-zoomsize_high)/2
zm_bot        = zm_top

## create a spacer from the video
vidSpacer = vidDVD
    \ .PointResize( zoom_wide, zoom_high ).Crop( 0, zm_top+zoompos_y, 8, -zm_bot+zoompos_y )

## magnify the videos
vidDVD_zoom = vidDVD
    \ .PointResize( zoom_wide, zoom_high ).Crop( zm_left, zm_top+zoompos_y, -zm_right, -zm_bot+zoompos_y )

vidLD_zoom = vidLD
    \ .PointResize( zoom_wide, zoom_high ).Crop( zm_left, zm_top+zoompos_y, -zm_right, -zm_bot+zoompos_y )

vidDVDfix_zoom = vidDVDfix
    \ .PointResize( zoom_wide, zoom_high ).Crop( zm_left, zm_top+zoompos_y, -zm_right, -zm_bot+zoompos_y )

#StackHorizontal( vidDVD_zoom.Subtitle( "DVD-SE 2002 (x4 zoom)", size=36, text_color=$ffff00, align=2), vidSpacer, vidDVDfix_zoom.Subtitle( "w/DeHalo/deblock/cc", size=36, text_color=$ffff00, align=2) )

## compare DVD & LD
## ----------
#StackHorizontal( vidDVD, vidLD )

## compare DVD & DVD-fix
## ----------
#StackHorizontal( vidDVD, vidDVDfix )

## compare DVD & LD & DVD-fix (smaller for convenience)
## ----------
#StackHorizontal( vidDVD.Subtitle( "DVD-SE 2002" ), vidDVDfix.Subtitle( "DVD-SE fix" ), vidLD.Subtitle( "LD-CAV 1990" ) ).BilinearResize( 480*3, 360 )

## compare YT & YT-fix
## ----------
StackHorizontal( vidYT, vidYTfix ).BilinearResize( 640, 180 )
    \ .ConvertToYV12()    # for Avisynth Proxy GUI


## ==========
## END SECTION
## ==========

Note the additional lines of changing audio to 16bit and changing video output to YV12 format to makes it acceptable in this program. Ultimately, with a more robust program, this would be processed fully in RGB, without conversions that shift the color spectrum.

[Image: DPP_cc_YT_clip.png]

View this from uploadfiles.io (download page available for 30 days with their no account, free up/downloads) ... https://ufile.io/4ez4d
Reply
Thanks given by:
#34
I was going to dig into this today and got lost on the way.  I noticed that a bonus feature "You Can Fly! The Making of Peter Pan" has been on nearly every home video release.

More importantly, the movie clips used APPEAR to be from the 1990 transfer.

How can I be sure?
[Image: vlcsnap-5062-04-03-15h20m55s868.png]

I attempted to cobble together a few minute supercut of just the movie scenes from the BD for reference, but the software failed.  I'll have to try again with a DVD source.

It's apparent the reds are in need of help, but it's 1990 NTSC, so that's a given.  Otherwise, it's interesting to see the colors are a bit different than the screenshots making the rounds for that release.

Here's a few more:
[Image: vlcsnap-3770-08-04-23h49m45s199.png]
[Image: vlcsnap-3872-12-02-12h23m59s502.png]
[Image: vlcsnap-8991-02-24-03h21m21s180.png]
Reply
Thanks given by:
#35
I went poking around at OT looking for (and found) this easy-on-the-eyes version of your comparison (open in a new tab for max size):

[Image: Disneys_Peter_Pan_releases_comparison_black-bkgd.png]

Wink
Reply
Thanks given by:
#36
I think the correct look probably lies somewhere between the 1990 and 1998 CAV discs.
Damn Fool Idealistic Crusader
Reply
Thanks given by:
#37
^ Agreed! I'd love some AviSynth-compatible settings that do for the Limited Issue DVD what has already been accomplished for the SE DVD. The former is my go-to version at present.
Reply
Thanks given by:
#38
I don't know. The 1990 release mostly seems so much more like the strong colorful (but not artificial) Disney animations we've come to expect. I mean, the colors of Tinkerbell peering through the keyhole just look right !
Reply
Thanks given by:
#39
I always noticed that Tinker Bell's hair, when seen in other media, even the CG movies is the color of the 1990 release.
Ditto Peter Pan's clothes.

Edit: That said, I think the screen caps from the LD might have some issues. The pics from "You Can Fly!" look like it is from the same source, but maybe not as overdriven(?)
Reply
Thanks given by:
#40
B I N G O ! !

eBay - 16MM PETER PAN IB TECHNICOLOR DISNEY FEATURE

And the winner is   . . .

.                       IB TECH 16mm                                       1990 LD                 1998 LD / 1999 DVD                2002 DVD

[Image: DPP_versions_compare_1.png]

[Image: DPP_versions_compare_2.png]

. . .   almost  1 9 9 0   L a s e r d i s c !

Huh
Reply
Thanks given by:


Forum Jump:


Users browsing this thread: 5 Guest(s)