Log in

View Full Version : Capturing and restoring old 8mm films


Pages : 1 [2] 3

johnmeyer
31st December 2013, 03:55
I doubt that the problem is caused by the media file itself, but if you can use Mediafire to post a short, unaltered clip, I'll certainly take a look and see if I can reproduce your problem. The text file you posted hasn't been approved yet, but I don't think I'll be able to learn much from that (although I'll certainly look at it when it becomes available).

Also, at the risk of being irritatingly redundant, may I ask again whether your AVISynth version is the one I showed? I am asking again because I've had several problems with multi-threading when using certain similar-sounding, but different, AVISynth versions.

bhershey
31st December 2013, 04:01
Also, at the risk of being irritatingly redundant, may I ask again whether your AVISynth version is the one I showed? I am asking again because I've had several problems with multi-threading when using certain similar-sounding, but different, AVISynth versions.

I'm using the stable version posted here... http://forum.doom9.org/showthread.php?t=148782

johnmeyer
31st December 2013, 04:11
I wish I could provide more help. I'm out of ideas. Hopefully someone else will have a suggestion.

bhershey
31st December 2013, 04:12
Thanks John.. are you able to change the X and X2 variables without error?

bhershey
31st December 2013, 07:45
Here is the exact script I'm using that is generating memory errors on exit. It also crashes AVSMeter. I expicitly load every DLL. If I use Fred's mvtools2 version instead everything works, AVSMeter included.

#VIDEO FILE
#----------------------------------------------------------------------------------------------------------------------------
#Change the following line to point to your video file
film="c:\film.avi"


#GENERAL PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
result="result4" #specify the wanted output here; valid results are "result1" through "result4" and "resultS1" through "resultS4" for before/after
play_speed=16 #play speed (8mm=16; Super8=18; 16mm sound=24)


#COLOR AND LEVELS PARAMATERS
#----------------------------------------------------------------------------------------------------------------------------
saturation=1.0 #for all outputs
gamma=1.0 #for all outputs
blue= -0 red=-0 #manual color adjustment, when returning result3 & result4. Values can be positive or negative
black_level=0 white_level=255 output_black=0 output_white=255 #manual levels, when returning result2 & result4


#SIZE, CROP AND BORDERS PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
CLeft=16 CTop=16 CRight=16 CBottom=16 #crop values after Depan and before final resizing
W=720 H=480 #final size after cropping
bord_left=0 bord_top=0 bord_right=0 bord_bot=0 #720p= borders 150
in_bord_left=0 in_bord_top=0 in_bord_right=0 in_bord_bot=0 #Borders around input that must be removed


#STABILISING PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
maxstabH=05 #maximum values for the stabiliser (in pixels) 20 is a good start value
maxstabV=20
est_left=40 est_top=40 est_right=40 est_bottom=40 #crop and contast values for special Estimate clip
est_cont=1.6

#DENOISING PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
#Fastest parameters
#denoising_strength=600 #denoising level of first denoiser: MVDegrain()
#denoising_strength=300 #denoising level of first denoiser: MVDegrain()
#block_size= 16 #block size of MVDegrain
#block_size_v= 16
#block_over= 8 #block overlapping of MVDegrainMulti()

#Best compromise between speed and quality
denoising_strength= 600 #denoising level of first denoiser: MDegrain()
block_size= 8 #block size of MVDegrain
block_size_v= 8
block_over= 4 #block overlapping of MVDegrainMulti()

dirt_strength=23 #sets amount of dirt removal (big spots)


#FOUR STEP SHARPENING PARAMETERS
#--------------------------------------------------------------------------------------------------------------------------------
PRE_sharp_ness= 120 PRE_radi_us= 3 #presharpening (UnsharpMask) just after first denoising
Sharp_Strength= 0.1


#AUTO LEVELS PARAMETER
#--------------------------------------------------------------------------------------------------------------------------------
X=4 #X is a special parameter for reducing the autolevels effect on the whites
X2=4 #X2 is a special parameter for reducing the autolevels effect on the blacks


#NUMBER OF THREADS
#--------------------------------------------------------------------------------------------------------------------------------
threads=2


# END VARIABLES, BEGIN SCRIPT
#=================================================================================================================================

# Using AVISynth version 2.60, build August 28, 2012 (Ben-Rudiak-Gould, etc.)
# Using VirtualDub 1.8.6

#Change the following (lower or higher) if you have stability problems with multi-threading
SetMemoryMax(512)

#Load plugins explicitly
LoadPlugin ("plugins\mvtools2.dll") #Version 2.5.11.9 2/24/2012
LoadPlugin("plugins\autolevels.dll") #Version 0.6.0.0 1/09/2011
LoadPlugin("plugins\Deflicker.dll") #Version 0.4.0.0 8/16/2004
Loadplugin("plugins\Depan.dll") #Version 1.10.0.0 4/09/2007
LoadPlugin("plugins\DepanEstimate.dll") #Version 1.9.2.0 3/25/2007
Loadplugin("plugins\mt_masktools.dll") #Version 2.0.23.0 3/14/2008
loadplugin("plugins\RemoveDirtSSE2.dll") #Version 0.9 5/05/2005
Loadplugin("plugins\RemoveGrainSSE2.dll") #Version 0.9 5/01/2005
Loadplugin("plugins\warpsharp.dll") # 4/05/2010

#Use the following for alternative frame interpolation
#loadplugin("svpflow1.dll") #Version 1.2.1.0 5/29/2012
#loadplugin("svpflow2.dll") #Version 1.3.1.0 6/02/2012
#Import("InterFrame2.avsi") #Version 2.1.0 6/27/2012

#Open and crop the video
#Remove all setmtmode statements (there are four in this script) if not using multi-threaded (MT) AVISynth
setmtmode(5,threads)
source1= Avisource(film).killaudio().assumefps(play_speed).converttoYV12() #killaudio() improves stability (in my experience -- others disagree)
cropped_source=source1.crop(in_bord_left,in_bord_top,-in_bord_right,-in_bord_bot) #temporarily remove any black borders on input video
setmtmode(2)

#cropped_source=filldrops(cropped_source) #Use this when removing bad frames that have been removed by duplicating previous frame
#(see notes in function at end of script)

#STABILIZING
#....................................................................................................................................................................
stab_reference= cropped_source.crop(est_left,est_top,-est_right,-est_bottom).tweak(cont=est_cont).MT_binarize(threshold=80).greyscale().invert()
mdata=DePanEstimate(stab_reference,trust=1.0,dxmax=maxstabH,dymax=maxstabV)
stab=DePanStabilize(cropped_source,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=1,mirror=15)

#Alternative line that includes deflicker. I find that this usually is not needed.
#stab=DePanStabilize(cropped_source,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=1,mirror=15).deflicker()


#DENOISING
#...................................................................................................................................................................

#Remove dirt
input_to_removedirt=stab.crop(CLeft,CTop,-CRight,-CBottom)
stabcrop=RemoveDirtMC(input_to_removedirt,dirt_strength,false)

#Reduce grain
prefiltered = RemoveGrain(stabcrop,2)
superfilt = MSuper(prefiltered, hpad=32, vpad=32,pel=2)
super= MSuper(stabcrop, hpad=32, vpad=32,pel=2)

halfblksize= (block_size>4) ? block_size/2 : 4
halfoverlap= (block_over>2) ? block_over/2 : 2

bvec1 = MAnalyse(superfilt, isb = true, delta = 1, blksize=block_size, overlap=block_over,dct=0)
bvec1 = MRecalculate(super, bvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

fvec1 = MAnalyse(super, isb = false, delta = 1, blksize=block_size, overlap=block_over,dct=0)
fvec1 = MRecalculate(super, fvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

bvec2 = MAnalyse(super, isb = true, delta = 2, blksize=block_size, overlap=block_over,dct=0)
bvec2 = MRecalculate(super, bvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

fvec2 = MAnalyse(super, isb = false, delta = 2, blksize=block_size, overlap=block_over,dct=0)
fvec2 = MRecalculate(super, fvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100)

denoised=stabcrop.MDegrain2(super, bvec1,fvec1,bvec2,fvec2,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0)


#SHARPENING
#...................................................................................................................................................................
sharp1=denoised.sharpen(Sharp_Strength)
PreBorderFrame = sharp1.Lanczos4Resize(W - bord_left - in_bord_left - bord_right - in_bord_right, H - bord_top - in_bord_top - bord_bot - in_bord_bot)


#FRAME INTERPOLATION (optional)
#...................................................................................................................................................................

#Interpolate frames
#Use this for progressive output -- example shows 29.97 progressive
#PreBorderFrame=InterFrame(NewNum=30000,NewDen=1001,PreBorderFrame,GPU=true,Cores=threads)

#Use this for interlaced output -- example shows 29.97 interlaced
#PreBorderFrame=InterFrame(NewNum=60000,NewDen=1001,PreBorderFrame,GPU=true,Cores=threads).SeparateFields().SelectEvery(4, 0, 3).Weave()


#RESULT1: AUTOLEVELS,AUTOWHITE
#......................................................................................................................................................................
SetMTMode(5) #Turn off SetMTMode for Autolevels
result1= PreBorderFrame.coloryuv(autowhite=true).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels(filterRadius=2).crop(X,0,-X2,-0).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)

#RESULT3: AUTOLEVELS, MANUAL COLOR CORRECTIONS
#.....................................................................................................................................................................
result3= PreBorderFrame.coloryuv(off_U=blue,off_V=red).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels(filterRadius=2).crop(X,0,-X2,-0).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)
SetMTMode(2) #Re-enable SetMTMode after Autolevels

#RESULT2: MANUAL LEVELS, AUTOWHITE
#......................................................................................................................................................................
result2= PreBorderFrame.levels(black_level,gamma,white_level,0,255).coloryuv(autowhite=true).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)

#RESULT4: MANUAL LEVELS, MANUAL COLOR CORRECTIONS
#.....................................................................................................................................................................
result4= PreBorderFrame.coloryuv(off_U=blue,off_V=red).levels(black_level,gamma,white_level,0,255).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)


#PARAMETERS FOR THE COMPARISONS
#.....................................................................................................................................................................
W2= W+bord_left+bord_right
H2= H+bord_top+bord_bot
source4=Lanczos4Resize(source1,W2,H2)


#COMPARISONS: ORIGINAL VS RESULTS
#......................................................................................................................................................................
resultS1= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result1,"autolevels, autowhite",size=28,align=2))
resultS2= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result2,"autowhite, manual levels correction",size=28,align=2))
resultS3= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result3,"autolevels, manual color correction",size=28,align=2))
resultS4= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result4,"manual colors and levels correction",size=28,align=2))

#Finish and go home
Eval(result)


# END SCRIPT, BEGIN FUNCTIONS
#=================================================================================================================================


#REMOVE DIRT FUNCTION
#......................................................................................................................................................................
function RemoveDirt(clip input, int limit, bool _grey)
{
clensed=input.Clense(grey=_grey, cache=4)
alt=input.RemoveGrain(2)
return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,dmode=2,debug=false,noise=limit,noisy=4, grey=_grey)

# Alternative settings
# return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=4,cthreshold=6, gmthreshold=40,dist=1,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey,show=true)
# return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,tolerance= 12,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey,show=false)
}

#This function provides motion compensation for the remove dirt function, thus improving quality.
function RemoveDirtMC(clip,int limit, bool "_grey")
{
_grey=default(_grey, false)
limit = default(limit,6)

prefiltered = RemoveGrain(clip,2)
superfilt = MSuper(prefiltered, hpad=32, vpad=32,pel=2)
super=MSuper(clip, hpad=32, vpad=32,pel=2)

bvec = MAnalyse(superfilt,isb=true, blksize=16, overlap=2,delta=1, truemotion=true)
fvec = MAnalyse(superfilt,isb=false, blksize=16, overlap=2,delta=1, truemotion=true)

bvec_re = Mrecalculate(super,bvec,blksize=8, overlap=0,thSAD=100)
fvec_re = Mrecalculate(super,fvec,blksize=8, overlap=0,thSAD=100)

backw = MFlow(clip,super,bvec_re)
forw = MFlow(clip,super,fvec_re)

clp=interleave(backw,clip,forw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}

# The following function will remove near duplicates ("0.1") or exact duplicates (change to "0.0").
# It replaces these duplicates with a motion estimated frame. It works really well (IMHO).
#
# Use: In your video editor, replace any single bad frame (burned frame, jump, missing frame from splice, etc.) with a duplicate of the
# previous frame. Then, include a call to this function (see script above, where it is commented out).
#
# Here's an example of how this function can be use:
#
# http://www.youtube.com/watch?v=uzMFodrGHDs
#

function filldrops (clip c)
{
super=MSuper(c,pel=2)
vfe=manalyse(super,truemotion=true,isb=false,delta=1)
vbe=manalyse(super,truemotion=true,isb=true,delta=1)
filldrops = mflowinter(c,super,vbe,vfe,time=50)
fixed = ConditionalFilter(c, filldrops, c, "YDifferenceFromPrevious()", "lessthan", "0.1")
return fixed
}

johnmeyer
31st December 2013, 21:41
I copied/pasted your code, but used my "Load" lines, because my DLLs are in different places. Everything worked OK.

I do sometimes get crashes when I seek (i.e., GoTo a specific frame number), because MaskTools isn't entirely happy playing with SetMTMode(). However, these crashes do not involve the "ntdll" DLL so I think they are different than what you are experiencing.

To avoid my seek crashes when I am moving about the film when using the side-by-side comparison feature (the "S" versions of the Results variable), I often comment out the two SetMTMode() statements on either side of the "source1" statement. This makes the script run in single threaded mode. I never get any instability when I do this. The script is still faster than Fred's script, even when run with one thread, but the difference is not as substantial.

So, you might try commenting out these two SetMTMode() statements and see if you get any improvement.

I think you are going to have to get help from someone who is more of an AVISynth guru because I think this has to do with something else besides the script itself.

Boffee
31st December 2013, 22:16
I made some more experiments tonight, and changed the MVtools2.dll plugin in Fred's script to the latest one. I was surprised to see that Virtualdub crashed exactly the same as with John's script, so whatever it is, it is common to both Fred & John's scripts. I then tried another script that I use to change film speed which has only one plugin, ie MVtools2.dll. No crash at all in this instance.

johnmeyer
31st December 2013, 23:07
Just to be clear, Fred's scripts all use the original MVTools. All versions of my script use MVTools2. Even though these two plugins have the same authors, they are not interchangeable and each uses completely different syntax. Therefore you cannot simply load one in place of the other. If you do that, nothing will work. My script will probably work with just about any version of MVTools2 and, as I said in a PM but want to say here, I don't think any of the problems reported when using my script have anything to do with MVTools2.

bhershey
31st December 2013, 23:50
So, you might try commenting out these two SetMTMode() statements and see if you get any improvement.


I've removed all MT statements and same error.

johnmeyer
1st January 2014, 00:05
I'm afraid I can provide no further help. I have no idea why it isn't working for you. Sorry.

bhershey
1st January 2014, 00:22
Just to be clear, Fred's scripts all use the original MVTools. All versions of my script use MVTools2. Even though these two plugins have the same authors, they are not interchangeable and each uses completely different syntax. Therefore you cannot simply load one in place of the other. If you do that, nothing will work.

John's script uses mvtools2.dll version 2.4.2.0 4/8/09.

Your script uses the special SVP version 2.5.11.9 2/24/12.

As Boffee and I have said, if we use mvtools2 v2.4 in your script it runs fine. I assume we lose any unique SVP improvements specific to the newer version.

Brian

bhershey
1st January 2014, 02:42
I made progress on the problem that is crashing John and Fred's scripts when using mvtools2 v2.5.11.9 on some computers. I've found two other people so far with the same problem.

It happens here in the RemoveDirtMC function...

backw = MFlow(clip,super,bvec_re)
forw = MFlow(clip,super,fvec_re)

This generates a memory error in ntdll.dll on exit from VDub.

The error does NOT happen if you use mvtools2 v2.4.2.0 and it does NOT happen if you replace the code above with...

backw = MCompensate(clip,super,bvec_re)
forw = MCompensate(clip,super,fvec_re)

Again, this is only a problem on some systems, not all. As before, I'm offering my time and services to the authors to help troubleshoot this problem.

Brian

johnmeyer
1st January 2014, 05:25
You might want to either start a new thread for this problem, or else post in the MVTools thread. It doesn't look like it has anything specific to do with the scripts posted here.

Since this is such a long thread, many people not interested in film restoration don't follow it, and you might get more help with a new thread or in the MVTools thread.

giuso71
13th January 2014, 11:09
Hello to everybody. I have been working with telece since 1years:builded a homemade telecine following Movie2video.com. The sistem work very well, but now i have to improve quality recording. I use a Panasonic gs10eg cam (720x576), than i deinterlace and flip horizzontally, than use VirtualMod with Fred Script. I don't use wetgate, but use one Moviola and a Eyes-clothe to clean the film manually. Really: very good results but when ii'm not satisfied.I'm working to reach Fred results ( even if my relatives weren't so good in taking film). My questions: is my cam enough to obtain good result or should i buy an Imaging Source Camera? Perhaps is too expensive for me....Moreover there is no cheap hd cam with firewire, isn't it??? Please answer me. Thanks Giu

Ps:moreover, i can't understand how Fred succeed on convertingreducing 4:3 Film (Normal 8) to 16/9 film (there is nothing on his script about it)

Guest
13th January 2014, 19:31
[bump after forum move for giuso71]

giuso71
17th January 2014, 23:00
Can someone help me?Read my topic please

johnmeyer
17th January 2014, 23:31
Can someone help me?Read my topic please ... builded a homemade telecine following Movie2video.com ... I use a Panasonic gs10eg cam (720x576), than i deinterlace and flip horizzontallyThe instructions on that site describe how to build a frame accurate capture system. If you have built according to those instructions, then you do not need to deinterlace, and doing so may make your results worse. Even when you use a camera which only records interlaced video, the nature of a frame-accurate capture device creates video where both fields are from the same point in time. Therefore, the video you capture will actually be progressive, not interlaced, even if the camera captures using interlaced video.

You omitted one important piece of information: what film gauge are you transferring? If it is 8mm or Super 8 or 9mm, then 720x576 is probably enough resolution. You may get a little improvement if you are transferring modern film of this size, but for most older, amateur film, this is enough resolution.

On the other hand, if you are transferring 16mm film, then more resolution will definitely give you an improvement.

As always, resolution is only a small part of what you must do to get a good transfer. Exposure is sometimes more important and is where most people who do film transfer themselves end up failing. You must make sure to never let the highlights go to 100% white. Your camera must have "zebras" in order for you to monitor the exposure and take corrective action when necessary.

i can't understand how Fred succeed on convertingreducing 4:3 Film (Normal 8) to 16/9 film Fred will have to answer, but this is normally done by cropping some of the original film (in other words, you are going to lose some of the original image). It can also be done by stretching, but this is usually obvious because everyone looks "fat." Some film was shot with a widescreen lens, and it is possible that some of Fred's film (much of which was shot in the past few years) simply uses a widescreen (anamorphic) lens.

giuso71
18th January 2014, 20:35
Thanks for your kind reply and sorry if i could be like a little newbie.
that's what i undestrand:
1- not to deinterlace
2-cause i'm working with amateur 8 and super 8 film (from 1965 to 1980), my 720x576 cam is good enough.

Only a question: you speak about "zebras" but i can't understand you. when i capture my problem is to reach the right white balance (i do this framing the white strip before the film).I decide the aperture only watching on the pc monitor. Could you please help me to understand you?
Thanks
Giu

johnmeyer
18th January 2014, 22:41
you speak about "zebras" but i can't understand you. when i capture my problem is to reach the right white balance (i do this framing the white strip before the film).I decide the aperture only watching on the pc monitor. Could you please help me to understand you?1. The zebra function of a camera or camcorder puts diagonal black & white stripes on top of any portion of the video that exceeds 100% (pure white) exposure. (Black & white stripes remind people of a zebra horse.) Zebras have nothing to do with white balance (at least not directly). The reason most higher-end cameras have this feature is that it lets you immediately see, in the camera viewfinder, whether any portion of the video is over-exposed, and you can then take corrective action, if your camera has the ability to manually correct automatic exposure.

If you don't manually correct the automatic exposure, I will guarantee that your camera will overexpose the highlights and all the detail in those bright areas will be lost forever. They cannot be recovered. On the other hand, areas that are under-exposed (too dark) can often be brightened, revealing detail, although usually accompanied by noise. Some of this noise can later be filtered using AVISynth.

So, when transferring film, under-exposure (too dark) is preferable to over-exposure (too bright).

This feature is extremely important when transferring film because film is capable of handling a much wider range of luma (light) values than can video. The ideal video camera for film transfer is one that lets you create a custom gamma function that matches the film you are using. Very few cameras under $10,000 offer this feature so you have to do what I described in the last paragraph. I believe, however, that the camera Fred uses does let him create these custom gamma curves. Just to be clear, a gamma curve defines how much to increase or decrease the brightness of each pixel, depending on how bright that pixel is in the original scene.

A large percentage of 8mm film transfers shown on YouTube exhibit horrible highlight loss. Less than 30 seconds of searching turned up this example of bad transfer technique:

Pink Floyd Concert (https://www.youtube.com/watch?v=aPmijzAjvd4&t=18m14s)

While it is possible that the film overexposed the highlights, I'm pretty certain the detail was in the original film, and the complete loss of detail on the guitar was caused by very poor film-to-video transfer technique.

2. Color correction is a different issue. You are correct that you should set the white balance using the projector light. However, this in no way will give you the correct white balance on most scenes. All film must be color corrected manually. The people who create commercial movies call this "color timing." That is a strange phrase, because it has nothing to do with time. Most of us who are amateurs call it color correction.

The reason you must do this manually is that each film emulsion has a very different way of storing color information, and without correction, it will look very strange when you play back the video. Also, film fades, often quite significantly.

There is no automatic white balance function that, in my opinion, does a very good job at giving you color that looks natural and real. You must achieve the correct color balance using the interactive color correction tools in your video editing program (I use Sony Vegas).

giuso71
2nd February 2014, 17:43
first of all thanks for all your reply.
One question: if i buy GZ-EX250 jvc Full HD Camcorder with wifi, perhaps i can use wifi function for telecinema(this camera is used for streaming in HD, like a HD webcam). Now i need only a stopmotion software that work with this camera. What do u think?
secondary: you write: "using the interactive color correction tools in your video editing program (I use Sony Vegas)". So, in your opinion, after used Virtualdub and your or Fred script i should use a video editing program like Vegas o Adobre Premiere for color correction? Is that right???
And u're also saying me that during a 3 minutes film i should adjust colour balance often? Is that right?
Thanks a lot

johnmeyer
3rd February 2014, 00:49
Now i need only a stopmotion software that work with this camera.For stop motion, I use SCLive, a DV capture program that also has stop motion capture capability. Andi (the developer) has discontinued support, but you may still be able to download it.

So, in your opinion, after used Virtualdub and your or Fred script i should use a video editing program like Vegas o Adobre Premiere for color correction?I usually do color correction within Vegas before frameserving that result into the script. Also, I never enable either the autolevels or autocolor correction in Fred's script because I have found, for my work, those functions do the wrong thing more often than they do the right thing. You should experiment with your own film transfer to see if you like the results: maybe these functions will work for you.

And u're also saying me that during a 3 minutes film i should adjust colour balance often?Proper color correction has to be done on a scene-by-scene basis. You will probably find that each time the date the film was taken changes to a different day, the color balance will change, sometimes radically. This might happen many times, even in a 50-foot, three minute reel.

giuso71
3rd February 2014, 09:49
Thanks 4 all:)

2Bdecided
7th February 2014, 17:00
This feature is extremely important when transferring film because film is capable of handling a much wider range of luma (light) values than can video. The ideal video camera for film transfer is one that lets you create a custom gamma function that matches the film you are using. Very few cameras under $10,000 offer this feature so you have to do what I described in the last paragraph.Various sub $1000 cameras will let you reduce the contrast, which helps this problem.

Cinemode on the Canon HV20, and Intelligent Contrast Control on the Panasonic HC-X920 are two quite different features that let you go even further in squashing the dynamic range, in combination with the normal contrast and brightness and/or (on the HV20) exposure controls if you wish.

It's far from a user defined gamma curve, but it certainly helps to bring wide dynamic range scenes in with both dark and light areas intact. Cinemode was static (and exposure could be locked), ICC is dynamic (and locking exposure knocks the camera out of ICC), so the former is better for film transfers. (The latter is better for getting a decent result out of the camera in real-life).

Your typical sub $500 camcorder is pretty hopeless for capturing the dynamic range of film (or real life IME!) - as you say, you can capture under exposed to avoid clipping whites and boost/twiddle in AVIsynth to make things visible, but dark areas can end up noisy and/or blocky.

Cheers,
David.

giuso71
8th February 2014, 13:33
What i mostrly understood is that 720x576 camera is not enough for a good telecine. I've tryied something with a Hd Camileo x200 trhought hdmi and a slot for hdmi and finally i obtained what i was lloking for: every detail was there, every colour, the sharpness was wonderfull. Now i have to buy a Hd camera (to use also during the day) but i can't afford the 2 cameras you say: these are too expensive for me.
I'd like to buy a camera like JVC EX355 Camcorder Full HD.
the question is: is it possible to use the wifisignal for telecine and which software is able to work with wifisignal. SCLive????
Can you help me?
Thanks for all
Giu

johnmeyer
8th February 2014, 18:21
What i mostrly understood is that 720x576 camera is not enough for a good telecine.
Thanks for all
GiuThat is not what I said above, and that is not what you said in your earlier response. You seem confused. To repeat, exactly, my earlier post:

"If it is 8mm or Super 8 or 9mm, then 720x576 is probably enough resolution. You may get a little improvement if you are transferring modern film of this size, but for most older, amateur film, this is enough resolution.

On the other hand, if you are transferring 16mm film, then more resolution will definitely give you an improvement.So, just to be clear, in my opinion you do NOT need to get a new camera because 720x576 is good enough for transferring 8mm and Super 8 film. According to your earlier posts, this is the gauge that you are transferring.

giuso71
9th February 2014, 00:15
You're right, but i'm not confused
during last week i've had chance to test an hd camera (camileo x200) vs 720x576 camera; there is no possibility to be wrong. A Simple hd camera (without autofocus and aperture), is much better that the other. If i could send you an example i would. These are months that i was trying to obtain best results, changing all i could change but the final video was not good for me, no similar with a good Fred Video. With Hd camera: yes, now all is ok. I could even stop to use Fred script.....

bookemdano
22nd February 2014, 16:51
Greetings everyone. I am really grateful that you guys (especially VideoFred and johnmeyer) have been so willing to share your knowledge and expertise with the rest of us. I am pretty new to video, avisynth, etc. but I’ve been wanting to telecine all my family’s old 8mm/Super-8 film for a while and there's nothing like jumping in head first!

After some early tries with a variable speed Chinon piece of crap and not being able to get rid of the shutter artifacts I finally bit the bullet and decided to do it right. I bought a Eumig 610D. Amazing piece of Austrian engineering right there. It almost pained me to modify it! But I did—removed the three shutter blades, removed the R8/S8 crop and widened the gate with a file.

I came across an intriguing method from this guy (http://oysteineliassen.blogspot.com/2012/09/diy-synced-telecine-with-eumig-mark.html) who used his DSLR to do the capture at 6fps and mounted a microswitch on a component of the claw mechanism on the projector to send a sound signal to the DSLR when the frame was advanced. I managed to get a switch managed in the same place he did (it wasn’t easy!) and in some limited testing it’s working great. He uses the GetDups plugin for avisynth which has an audio mode perfectly suited for this purpose. He also uses some of VideoFred’s restoration scripts. For the optics, he mounted a 60mm SLR macro lens backwards on the projector and projects directly onto the sensor of his DSLR. Capture is at 1080p/24 and the projector runs @ 6fps.

I duplicated his setup almost exactly (although I am using a different lens). I set the aperture to F8 for ease of focusing. I recorded one Super-8 reel as a test and ran it through his script (without understanding too much about all the script was doing). I’m amazed that it actually worked—got rid of all the duplicate frames and left me with a smooth 18fps progressive avi. It has given me much hope that my high standards for this project are going to be met and all the money and time I’ve spent so far will not be in vain.

That said, my eye has noticed a few things I would love to have some help with correcting. Would you guys be so kind as to offer your opinions on some of this stuff? I'll just start off with a couple basic questions:

1. LED light source. I’ve procured various 2-5 watt MR16 12V LEDs, both ~3500K and ~5500K. I figured that since these reversal films were formulated to be projected with incandescent/halogen bulbs that a warmer color temperature bulb would look best. But when I experimented a bit I found that my eye actually preferred the look of higher color temp bulbs. Is that what I *should* be using for the highest color accuracy? Or is this just a personal preference kind of thing?

2. On this particular reel the first 1.5 minutes is my first birthday party, shot indoors (tungsten light). The colors look more or less correct. The rest of the reel is scenes from my Aunt’s wedding. Everything there looks far too blue. From the googling I have done it seems that this was indoor-formulated film and my Dad should have flipped a switch on his camera before shooting the outdoor scenes (that engages an orange filter to account for the daylight color temperature). So assuming I have that right, what is the best way for me to correct his error after the fact? I'm assuming I shouldn't bother trying to do anything *during* the capture on my DSLR. Can/should I do this with avisynth? Or is it more effective to do this using my NLE of choice? For a case like this, is it OK to capture both indoor and outdoor scenes together as one file or is it better for me to cap the outdoor scenes separately to a different file?

3. Workflow in general. I'm struggling with trying to nail down a good order in which to do things. My starting point is the H.264 .mov files generated by my t2i and I'd like to end up with the cleaned, progressive 18fps footage in Final Cut Pro to add titles, score, etc. Not sure what codec(s) to use in between--Cineform? Uncompressed RGB? And should I remove the duplicate and smeared frames first thing? Or do color correction first? I know I need to run VideoFred's scripts after the duplicate frames are removed, but not sure if the order of the rest of the steps matters much.

I will have some specific questions about actual artifacts I've seen in the test reel I processed and how I might correct them. But I need to get some frames captured to show you what I"m talking about so I will work on that this weekend. I also think this post is long enough as it is.

Would much appreciate any comments from you guys. When I first decided I wanted to do this project I had no idea how involved it would be, but I also had no idea I'd have so much fun figuring it all out. Thanks a million.

johnmeyer
22nd February 2014, 18:25
Wow! I am really impressed by what you've done. Very professional. I'll be interested to see a few samples of your captures.

One of the key issues in any do-it-yourself telecine mechanism is the optical path. It is very easy to end up with focus issues (is it sharp from edge to edge?); keystoning (are the edges of the frame warped?); and fringing (do you see rainbows around the edges of the frame or in B&W transfers?).

If your optical path is clean, then you should be getting some really great results.

In answer to your questions ...


Bulb color temperature. I built my own 16mm capture system, but a few years before I did that, I purchased one of the very first Workprinter prototypes. That original used an incandescent bulb which was around 2700K color temp. Because this was an early prototype, I contacted the inventor (Roger Evans) several years later and he agreed to refurbish my unit for a reasonable fee. The new unit used a daylight LED. I have not found too much difference in color quality of the final product after this change, so based on actual experience, I don't think it maters much. What does matter is that you set the color balance on your camera correctly. The one thing you should never do is use Auto white balance because that will constantly be changing in every scene and you cannot possibly get predictable results. Instead, you can use one of the two presets (daylight or tungsten) available in most cameras and this often works pretty well. You can also do a white balance when no film is in the gate, and that also works reasonably well.

Try each of the three ways and see what performs best for the film you are transferring. However, whatever you end up doing, you should expect to do a LOT of color correction (or "color grading," as the film people call it) in post production. You will have to do this not only for the one issue you describe (correcting the error of using indoor film outdoors, or vice versa) but for all sorts of other situations. Color emulsions are not stable over time, so you will have to correct for fading. The beginning and ending points of each reel are often fogged, and this will change the color balance. Under- or over-exposure will change color balance.

I can list many more examples, but the bottom line is that film color changes a lot, and if you are trying to get a result that matches the effort you've already put into the project, you'll have to do a lot of color correction in post. This should be done in your NLE, not in AVISynth because it is an interactive process, and AVISynth is simply not the right tool. There is no automatic color correction tool that I've ever seen that can do a very good job with these sorts of problems.

As for workflow, if you can, try to capture using a codec that compresses each frame individually. h.264 would most definitely not be my codec choice for initial acquisition. In fact, it would be my absolute last choice. It is the worst possible codec for editing because of its long-GOP structure. The only reason it is used in camcorders is that it permits relatively modest-sized memory cards to hold reasonable amounts of very high resolution video. By contrast, Cineform is a fantastic choice for both capture and intermediate editing.

h.264 is a great choice for final delivery.

For 8mm and Super 8, I use DV. It is still one of the best capture and editing codecs (although its limited colorspace can sometimes be an issue). The resolution is, IMHO, more than adequate for the limited resolution available on 8mm and Super 8. For 16mm, HD resolution can provide better results.

So get rid of all your dups first. Next, set the playback speed in the video file header (I use AVIFrate for AVI files): 16 fps for old 16mm and 8mm film; 18 fps for modern 16mm and Super 8; and 24 fps for sound. Put that on your NLE timeline and do gamma correction and color grading on each reel. Then cut the video to get rid of blank spots, etc. Also, use the recently posted Stainless scripts to find and remove flash frames at the beginning of each scene. Then serve this edited and color-corrected version into the scripts posted in this thread to create a "restored" version (I do not use the gamma or color correction options in these scripts for the reasons I already gave). I then take all these restored video files and put them in whatever order is going to be on the final delivery format (DVD, for instance), add titles, etc., and then render to my final delivery format.

Hope that helps!

bookemdano
22nd February 2014, 21:00
johnmeyer - I was hoping you would respond. Thanks so much for your kind words and advice. Everything you said makes sense to me.

I cannot take any credit at all for the method I'm using--I pretty much copied exactly from that page I linked. I have loved reading about all of the different ways people have devised to get one capture per film frame (or decimate duplicate frames later as I know you have perfected). Such ingenuity... whereas I am just lucky to be able to follow in these footsteps.

I will definitely get some sample frames and show you what I am dealing with. Right now while experimenting I have had the projector on a table and the DSLR on a tripod in front of it (with a macro slider for focus adjustment) but next I think I may fashion a more stable setup to try to minimize some of the vibration/camera shake I am seeing.

I will definitely try another capture with AWB off and try the various settings. I notice also that the ISO changes throughout the course of the capture. Should I be setting a fixed ISO for the entire capture or is it OK to let that fluctuate a bit?

Your comments on H.264's weaknesses as a capture codec got me thinking a bit, although I'm not sure I have (m)any other options. On Canon DSLRs they give you no choices really. Now, I do have an EOS 6D (full-frame sensor) I could use--it offers the choice of All-I versus IPB which should give higher quality (albeit larger file size) captures. I was trying to stick with the t2i though since I'm not using it for anything else at the moment and I can completely fill its cropped sensor with the projector image. If I use the 6D I'd need a longer focal length lens if I wanted to fill the sensor.

The only other possibilities without switching to a completely different camera (not really in the budget) would be:

1. RAW video - This is thanks to the magic lantern firmware for the Canon DSLRs (pretty amazing stuff). The t2i due to its slower SD write speed of 21MB/s can only manage 960x540 when shooting RAW. I think the 6D at this point can get close to 720p but from what I've read it can't record audio at the same time. So I would have to try to record the beep track marking frame advance separately and then try to sync up before GetDups... sounds like a lot of hassle.

2. Capture from HDMI - I'd need to buy a capture device (no idea on the cost but my guess is that it's pricey) and everything I've read says it's not that advantageous (still 8-bit, also it's in 1080 60i).

I knew h.264 wasn't exactly an ideal capture format but I was hopeful I guess that considering the low-resolution source material that it wouldn't have too great an impact on the end product.

So considering I need to strike some kind of balance between indulging my perfectionism and actually completing this project in a reasonable amount of time and without spending much more money--do you think I should just deal with the h.264 source (I would transcode to cineform before any subsequent steps) or should I try dealing with RAW video despite the limitations/hassle? It sucks that there's no in-between those two extremes at the moment.

I mean I'm quite sure my family even thought my early attempts with the Chinon projector (shutter artifacts and all) were pretty great. I think I am the biggest critic I will need to satisfy at this point.

Thanks again. I'll post up some captures later today or tomorrow.

johnmeyer
23rd February 2014, 01:19
I think I may fashion a more stable setup to try to minimize some of the vibration/camera shake I am seeing.Yes, definitely put the equipment on a solid table, and the camera on a sturdy tripod. The sturdy tripod makes it harder to screw up the alignment as you are walking around changing film, etc. I can't begin to count the number of times I've bumped the tripod ...

I notice also that the ISO changes throughout the course of the capture. Should I be setting a fixed ISO for the entire capture or is it OK to let that fluctuate a bit?I forgot to mention how to deal with exposure. This is much more important than white balance. You have two problems: exposure variation, and the difference in exposure latitude between film and video.

The exposure variation is due to the fact that most film cameras, prior to Super 8, used manual f-stop settings for exposure, so most amateur film contains many segments that are either under- or over-exposed, often by a huge amount, because the operator was either operating without an exposure meter, or forgot to change the setting when conditions change, or just screwed up.

You can watch the video from your film transfer, real time, on a computer monitor and manually adjust the exposure, or you can use the auto exposure on the camera to track the changes in overall exposure. If you are doing a lot of film, you pretty much have to use the auto exposure, especially if you are capturing at six frames a second; otherwise you'd have to stand there all day to capture just a few 400 foot reels.

So, I recommend you use the camcorder/DSLR's auto exposure.

However, this will give you a second problem, and this problem is the Achilles heal of almost all amateur film transfers: film can capture a much wider range of dark to light than can video, and if you rely solely on the auto-exposure you may end up with exposure that looks like this horrible YouTube example (I've posted this before, and there are thousands more like it):

Pink Floyd Concert (http://www.youtube.com/watch?v=aPmijzAjvd4&t=18m14s)

As you can see, the body of the guitar no longer exists, even though I'm pretty sure that it was there on the original film. This example has a dozen other problems, but I post it here simply to show the exposure problem.

The solution to this hopefully exists in your DSLR, although it may not. On most traditional camcorders there is a "spotlight" function. This is designed to make the auto-exposure far more sensitive to small areas that are very bright, such as what you get when a performer is lit by a "follow spot." Using this feature, the camera will usually do a good job of exposing for the highlights. This often makes the shadows pretty dense, but you can adjust for that in post using either the features in your NLE (I use the "Color Curves" function in Vegas) or using various AVISynth plugins, like HDRAGC. AVISynth should be able to do a better job than the static NLE adjustments, but I've never been able to make any of the AVISynth auto-gamma plugins work the way I expect, so I do the adjustment manually in Vegas.

I also do one other thing for really critical transfers: I use the AE compensation. On most cameras this takes the exposure created by the auto-exposure and then adds or subtracts a set amount from that value. This lets you use auto-exposure but then adjusts (usually in the darker direction) to avoid blowing out the highlights.

Finally, always use the zebra function on your camera. This highlights sections of the film that are being overexposed so that you don't end up with nothing in the highlights. If your camera doesn't have zebras, that is going to be an issue ...

Remember that once over-exposed, the detail is gone forever; but if under-exposed, you can usually recover some detail from the shadows. As I've posted before, the ideal situation is to use a camera that lets you define your own gamma curve. This was discussed earlier in this thread (or in the parallel thread on film transfer -- I can't remember now which thread).

Oh yes, you asked about capture formats. Most DSLRs can capture in JPEG format. This should work great, and you can use either VirtualDub, AVISynth, or your NLE to assemble individual JPEG images into a video file and then save the result using whatever codec you want. Cineform, MJPEG, or Lagarith would be my initial choices for HD, and DV would be my choice for SD.

giuso71
8th March 2014, 13:41
Hello,johnmeyer, i've downloasd scenalyzer but i can see that it doeesn't work with wifi cam (That's to say ip HD video camera).
Can you suggest me something?

johnmeyer
8th March 2014, 18:09
I don't know who suggested Scenalyzer. It is a great (although no longer supported) application but is only for DV video. It most definitely will not work with HD.

Most people who go this route simply use the application that came with their capture card. The reason I answer the question that way is that you are somewhat limited in how you can import HD video into a computer. HDMI is used for getting video onto a TV screen, but the HDMI specification includes encryption to prevent copyrighted material from being captured. So I don't think you'll find an HDMI capture card that will work for you because their functionality is intentionally limited.

You can simply capture to your camera's memory card and then take the video from that. However, this brings us to the second problem in capturing HD video: compression.

Almost every camera compresses the video into (usually) AVCHD before sending to the memory card or even to an external capture location. Because of the long GOP used in this compression, the individual frames, when viewed one at a time, are not very clean compared to the original HD video at the moment it was captured. The key to good "frame accurate" film transfer is to capture each frame of film onto one frame of video with no compromises.

I actually did try to use the Firewire output from my Sony FX1 camera during my first attempt at capturing HD from my film transfer machine. I was able to capture the stream and then extract individual frames from that, but you could actually see the individual frames degrade as the stream got to the end of each GOP.

The right way to capture HD is to use a camcorder which has component output and then purchase a capture card for that. The video sent over this connection has not been compressed and, with the proper capture card, you can capture and store each frame and do the compression at that point in time or, if you have the space, store each image uncompressed.

As I've said several times in previous posts, you will get very little, if any, improvement capturing 8mm and Super 8 in HD. In an earlier post you said you did see an improvement when using an HD camcorder, but my guess is that this may be due to using an inferior SD camcorder. What I would suggest is that you consider getting an HD camcorder that can capture in SD. This is what I do (with my Sony FX1). It sensor captures in HD, and the lens and sensor are all upgraded to deal with HD. It then has the option of doing the downconversion to SD in the camera and outputting SD. I then use Scenalyzer to capture this output.

The important thing to note in this last paragraph is that there are a HUGE number of things that matter when choosing a camera beyond the one specification of whether it outputs SD or HD: the quality of the lens matters; the ability to control gamma matters; the color correction (white balance) matters; the focus controls matter (manual focus; focus assist); exposure controls matter (you should not use a camera if it doesn't have zebra patterns to indicate overexposure, IMHO).

giuso71
8th March 2014, 18:27
Hi
you're right.
You've told me : "For stop motion, I use SCLive", but if i surf on google i find Scenalyzer.....Sorry
Here (http://www.blackmagicdesign.com/it/products/intensity) i can see a box that work with Hd, without problem with encription, i suppose. Than, if i buy a hd video cam and that box i can have a HDMI in trhough my USB3.0. Is that right?
But i'd like not to buy 2 different things, than i think that even via wifi 802.11n i can have on the pC HD video. The problem is the software. Isn' it??

johnmeyer
9th March 2014, 00:20
Someone else will need to help you with your latest questions. I have some ideas, but I only like to post about things I have actually done myself. I don't own the BlackMagicDesign products, but that is definitely what I would look at getting if I were going to do what you are doing.

bookemdano
10th March 2014, 20:09
Hi again johnmeyer,

Sorry for the delay in response. After reading your last post I really started thinking about ways I could avoid using h.264 as the capture format.

MJPEG is just not an option with Canon DSLRs (I know it is with Nikons though), and the amazing Magic Lantern firmware has not yet added it.

However, I think I will be able to do even better. Even though my Canon 6D is gimped in terms of card write speeds (you need a 1000x CF card for continuous full HD capture), I have been able to capture 14-bit RAW in 960x800 with sound (to record the beep track used later to get rid of the duplicate frames). After finally getting a stable rig set up for the projector and camera I was able to capture a reel yesterday (projector @ 6fps, DSLR at 24fps) and I am liking the results. As you have said, 8mm/Super-8 probably can't benefit from full HD-resolution anyhow. But by recording in RAW format, I should be able to capture a lot more dynamic range, and more importantly, because RAW files are essentially just the data from the sensor itself, the exposure can actually be adjusted after the fact in post. Same thing with color correction. Powerful stuff!

Now though I am trying to figure out the workflow, as RAW complicates things a bit. For a 50foot reel projected @ 6fps a 24fps capture is 9-10mins in duration and spits out a 20GB file in a MLV container (this format is a creation of the magic lantern developers). There are various apps, scripts, etc. to deconstruct the mlv file into a sequence of DNG images, along with a wave file of the audio track.

I've gotten as far as creating the set of ~14,000 DNGs and the wave file. I can open the image sequence in DaVinci Resolve (I am brand new to this program but it seems very powerful). But considering the power RAW brings to the table, it seems I should do the exposure and color adjustments first (rather than get rid of the duplicate frames) because it appears that avisynth can't deal with RAW files--I would need to transcode into something avisynth could deal with.

I also recently came across this thread (http://forum.doom9.org/showthread.php?t=168830) where a guy developed scripts to use your method for removing duplicate frames from his DSLR-captured telecine. Because I'm not exactly sure how in-sync the audio will be from the DNG sequence for GetDups I am tempted to try his/your solution instead since it doesn't need audio at all.

It also got me thinking about the possibility of transcoding a copy to mjpeg or something to run through Avisynth with DeDup to mark the location of the duplicate frames and then use the ensuing log file to somehow delete the duplicate frames from the original set of DNGs. That may not be feasible. I will contact the author of those scripts to see if he has any ideas.

I did figure out how to grab a still using Resolve so I put it up in my dropbox as a jpg (~700KB) here (https://www.dropbox.com/s/qm878lfiroipqmn/Test_1.1.1.jpg). I did not make any adjustments yet. Note that Resolve exported it in 1920x1080, my original capture area of 960x800 was completely filled by the projected image. And yeah, my Dad evidently never cleaned the fuzz out of his camera gate!

You can see that the camera actually captured image detail in the curtain right next to the sunny window. I'd have to double check but I think my h.264 capture of the same reel had blown that out.

So while this is adding yet more complexity, I think it may be worth doing it this way. Would much appreciate your thoughts.

EDIT: Yes, here's (https://www.dropbox.com/s/fw4cae8b37ordg7/Testh264.jpg) the same frame (or thereabouts) from when I did the capture @ h264.... big difference.

johnmeyer
11th March 2014, 03:44
It is tough to comment on what you posted because you touched on so many different subjects.

Working backwards:

The still you posted is from an indoor shot. It looks like there might have been a movie light involved. It would be more instructive to post a frame from an outdoor scene, preferably taken on a cloudy day. One problem with DIY telecine is the hot spot you typically get when a projector is involved. There are ways to reduce this with AVISynth, but it is better to work on your rig to reduce this before the image is ever captured. The upper and lower left corners of your image definitely show a considerable drop off in exposure, but as I said, perhaps a video light was being used, and most video lights of that era had a beam spread that was more narrow than the Super 8 lens when it was in wide angle.

I got very confused as to whether you are capturing individual images as RAW and then converting to something else, or whether there is something else going on. If you are capturing individual frames to individual RAW images, that could be a very interesting approach. As you say, RAW could let you do some wonderful manipulation of the gamma (and color) before assembling into a video image. If this is indeed what you are doing, then the key to the workflow will be to use a photo editing program that can perform batch processing. Most can do this, but setting it up will be an interesting challenge. If you succeed, you should be able to get some stunning results.

Once you have manipulated each RAW image, then you can convert them to some sort of lossless intermediate, and from there assemble them into an editable video file. Most video editors let you assemble PNG and JPEG "image sequences" into a video file. You will then be able to save that file using whatever codec seems appropriate. If MJPEG isn't working for you, then I think I probably suggested the Cineform codec which is now available for free from the GoPro site (they now own Cineform). While this is defeatured compared to the professional version that is available for purchase, it is probably adequate for what you need.

bookemdano
11th March 2014, 04:29
Sorry, johnmeyer. I should have clarified. This is somewhat like the RAW still images that DSLRs can take, except that it is done while the camera is in video mode and without actuating the shutter (and at very high frame rates compared to still images--24p). Because it's so much data though, the write speed of the memory card is the bottleneck so you can't get the resolutions you can normally get when taking raw still photos.

It's similar to what the Blackmagic cinema cameras (and RED) can do out of the box. Canon's DSLRs are not supposed to be capable of this, but with the 3rd party "Magic Lantern" firmware addition they have gained this ability (just at limited resolution). It's extremely new, only having been made possible a year or so ago.

There are lots of comparisons and sample videos on the net, but here (http://www.eoshd.com/content/11395/real-difference-normal-dslr-video-5d-mark-iii-raw-video) is a site that summarizes the benefits pretty well.

If it helps, yes you can think of what I did was shoot 24 RAW images per second, and yes they are in the form of an image sequence. There are several editing programs which are able to open up the image sequence as a video and let you work with it as if it was a video.

Yes my Dad's camera had a light, and I am pretty sure it was used in that scene. Here is an outdoor scene to show you. EDIT: sorry I know you said cloudy but didn't have any such scenes on this reel (which is the only one I have attempted in raw format thus far).

RAW (https://www.dropbox.com/s/yety8o6xgaepfli/Untitled_1.1.2.jpg)
h.264 (https://www.dropbox.com/s/douhlr579xzt6ii/Testh2642.png)

Thanks for bearing with me!

EDIT: Looks like doom9 had some downtime there. I'm still trying to figure out if there is any way I can get rid of the dupes prior to transcoding. Avisynth can't deal with the DNG raw files obviously. But I could transcode a "proxy" to something small, detect the duplicate frames using that, and then ideally produce a text file with the frames "to keep" (which I could then script to act against my set of raw frames).

If I can't figure out a way to do that then I guess I would need to do all/most of the exposure and color grading adjustments first, then transcode to cineform, then remove duplicates/VideoFred scripts, then back to the NLE for editing/titles/soundtrack, etc.

One thing I am going to do is try capturing one of my Dad's old 8mm B&W cartoon films (gotta clean it first). That should allow me to judge the focus better and detect if my lens is causing color fringing. I am using a pretty well regarded Canon zoom lens (AF broke on it so I'm not presently using it for anything else). But if it's not going to give me even focus across the field or has too much chromatic aberration I may break down and buy a macro lens.

Anyway, hopefully I can do this here in the next day or so. Will post some frames up ASAP.

papcom
22nd July 2014, 09:34
Here (http://www.blackmagicdesign.com/it/products/intensity) i can see a box that work with Hd, without problem with encription, i suppose. Than, if i buy a hd video cam and that box i can have a HDMI in trhough my USB3.0. Is that right?
But i'd like not to buy 2 different things, than i think that even via wifi 802.11n i can have on the pC HD video. The problem is the software. Isn' it??

@giuso71 - You need a camera of this kind plus a camera control software which is available at the same place. Your projector must be modified in order to output a trigger pulse for each filmframe, as well as with a motorspeed control in order to determine the rate of FPS which can be captured per second. So each filmframe will be captured one after the other by the camera and memorized (via firewire or USB or GigE) on Your Computer. (as an image sequence or e.g. as an AVI)

http://www.theimagingsource.com/de_DE/products/cameras/

Pieter8mm
29th August 2014, 19:33
I have some old footage and I like to make the script so that i can see the different with S1 from Fred's script

What do I have to change in Fred's script to make my footage
16x9 like Fred's example at: http://vimeo.com/37394781 ?
My footage is 1280x960

johnmeyer
29th August 2014, 20:54
You just apply a crop. However, as you see in Fred's examples, you lose a LOT of the image. Are you sure you want to throw away all that picture information??

Pieter8mm
30th August 2014, 17:43
John I don't know for sure. I like to see the difference. If I use S4 and crop something only the comparison on the right crops. And after a day messing around in the script I gave it up. A other question:
Is het possible to remove yellow flames on the edge of the frame with a script? Some replacement from frames before or after the shot

johnmeyer
30th August 2014, 21:40
If I use S4 and crop something only the comparison on the right crops. The whole idea of the "S" is to give you a "before" and "after" comparison. Therefore, by design, only the "after" is going to show the crop.

papcom
9th June 2015, 11:28
@johnmeyer - I would like to add "AutoAdjust 2.5" in Your Film Restoring Script. Can You give me a hint where I optimally place the codeline for "Autoadjust" ? - Thank You very much.

johnmeyer
9th June 2015, 15:48
I would like to add "AutoAdjust 2.5" in Your Film Restoring Script. Can You give me a hint where I optimally place the codeline for "Autoadjust" ?I retained all the headings of the original VideoFred script. This lets you see what each section of the script is doing. I have never used AutoAdjust, but it looks like it is supposed to automatically attempt to change gamma levels and do white balance corrections (both of which I recommend you do manually). You will see that VideoFred did this all in one single line, under the heading:

#RESULT1: AUTOLEVELS,AUTOWHITE

So, just replace the code after "result1 = " with "PreBorderFrame.AutoAdjust()" or something like that. You'll have to decide how to handle all the border adjustments in that line. Some of them were put in there to make the autolevels filter work better, and you may not need them. Some of the others are there to restore borders that were cropped earlier in the script.

So, something like this might work:

result1= PreBorderFrame.AutoAdjust.addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)

However, I don't have time to try out this code.

papcom
10th June 2015, 18:19
thanks @johnmeyer - I personally like AutoAdjust 2.5 and it gives me good results ...but of course it is not a colour correction.

Anyway , I checked several positions for the "AutoAdjust" - line and I found a place where it suits best to my needs. I don't want do alter Your resp. Fred's script. I just want to add the line with AudoAdjust .

Can You please give me another hint regarding Your script? There is the following part in Your script:

source1= Avisource(film).assumefps(play_speed).converttoYV12().FlipHorizontal()AutoAdjust(auto_balance=true)
cropped_source=source1.crop(in_bord_left,in_bord_top,-in_bord_right,-in_bord_bot) #remove any black borders on input video
setmtmode(2)

I want to crop a black border of 8 Pixel around my 720x576px Video. If I set the source1.crop on the value "8" I do not see any alterations in my Results. What is my thinking fault?

johnmeyer
11th June 2015, 00:15
The video card in my main computer just went up in smoke (literally), so I'm not going to be able to answer this for some time, until the replacement card arrives. Someone else can hopefully provide an answer. Cropping is pretty straightforward. Just look at the AVISynth documentation and I'm sure you can figure it out.

Boffee
11th June 2015, 08:13
If you want to "add" autoadjust to John's script why not have a result 5 such as:-

#RESULT5: WITH AUTOADJUST
SetMtMode(1)
result5= PreBorderFrame.Autoadjust(auto_gain=true,high_quality=true,gain_mode=1,avg_safety=1.0,auto_balance=true,temporal_radius=0).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot)

resultS5= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result5,"autoadjust",size=28,align=2))

Boffee
11th June 2015, 09:10
If I want to do a simple crop. I open my script in AvsPmod. There is a handy crop editor in there under "Video" that will write a line of script for you. It will add that line at your cursor position.

papcom
11th June 2015, 10:51
thank You for Your answers - I know how to do"cropping" in avisynth! My question pointed exclusively to the specific line in Videofred's/Johnmeyer's Script. - I couldn't figure out why this line had no influences in my tests. And I would like to understand this.

thank You @bofee for the hint with "autoadjust" and result5.

johnmeyer
11th June 2015, 18:59
I know how to do"cropping" in avisynth! My question pointed exclusively to the specific line in Videofred's/Johnmeyer's Script. - I couldn't figure out why this line had no influences in my tests. Ah, I didn't realize that was what you were asking.

I added the "in_border..." parameters (VideoFred's scripts don't use this) for captures that contain borders. For instance, 8mm is almost perfectly square, and when captured with normal 4:3 video equipment, you end up with black borders ("pillars") on the left and right side.

But here's the problem, and this is why I added these new border parameters:

If you don't do anything, then the motion stabilization step will move the entire frame around in order to stabilize the main motion, but this will also cause the black borders to wander around, creating a huge mess. This is totally unacceptable. However, the final result must have borders because you are fitting, literally, a square peg in a rectangular hole. Yes, you could blow it up or stretch it, but both of these options degrades the main image.

So, what I did was to create a set of variables which temporarily remove all black borders. This temporarily cropped image is what the rest of the script sees. Then, as one of the last steps, I add back in, exactly, the borders which I took out. Doing it this way not only eliminates the "wandering border" problem, but it also gives me clean crisp borders, unlike the somewhat fuzzy borders you get when doing captures from a device which has an "open gate" and can capture the movie film all the way to the edge of the frame.

So, bottom line, no matter what "in_border" you specify, you will still have borders in the final result. If you specify too large a value, you will end up with borders which are even larger than your original, and you will start to lose part of the original image. So, ideally, you want to specify in_border amounts that are just slightly more than the original borders, both to make sure you get a clean new border, and to account for a certain amount of slop and gate weave in the original capture.