The Free Side of Output (Monster Post)

JeganRX

Well-known member
It seems few people realize how many tools and tricks can be used throughout the post process which are completely free. I think it's important to know what programs can absolutely save your ass in a pinch, and also surprise you with the outstanding quality that some tools actually possess... Mac users may want to stray away from some parts of this if they're afraid of feeling insignificant! :cheesy:

I've decided to categorize these into common problems and processes that we face in the post world, particularly on the output end.

Broken 24p/A Streams:

The Problem: Often with broken/differing timecodes, NLEs cannot properly IVTC 24p/A material. The general rule is to shoot 24pA for superior IVTC, though a correct IVTC can also be performed on regular 3:2 material as well... Given you use the proper tools.

The Solution: AVISynth with tritical's wonderful "TIVTC" plugin set. Re-encoding is necessary (which you can do through a variety of programs, such as VirtualDub), though you can do this to a lossless format such as Huffyuv or Lagarith if you want. See Doom9's forums and AVISynth.org for more info on AVISynth in general but I'll summarize this and the rest in steps.

  • - Install AVISynth and an appropriate encoder that can accept AVISynth input (VirtualDub, MeGUI, SUPER, AVIDemux). My preference, to the behest of many on Doom9, remains VirtualDubMod.
  • - Download the filter "TVITC" http://bengal.missouri.edu/~kes25c/TIVTCv105.zip Place the DLL file into the plugins folder of your AVISynth installation.
  • - Create a new text file with the extension .avs, load the video by typing in the following line (generally, there are also ways of loading Quicktime movies).
  • AVISource("...avi") Quotes included, and the ... being the path of your file.
  • - Go down a line, and type out:
  • TFM(pp=0).TDecimate() This is the IVTC operation, TFM identifies matches, and TDecimate removes the duplicate frames. The "pp" parameter is post processing, which I often turn off simply because it can detect many correct frames as "problem" frames and attempt to deinterlace them (which is DIFFERENT than IVTC)..
  • - Save the file and open it in your preferred compatible encoder; I will go into encoding details later as it deserves a separate category. ONLY encode to a lossless format if you want maximum quality (Huffyuv, Lagarith, or a very high bitrate lossy format).
_________________________________________

Extremely Noisy Footage:


The Problem: Low-light, high gain, or just old footage is often encountered, and it's a pain to deal with especially when intercutting with beautifully clean footage. There are commercial solutions out there, and even built in filters for NLEs, but they are slow, and often present an extreme difference between preserving the majority of the detail and eliminating an amount of grain that's enough to even consider using the filter to begin with.

The Solution: Once again, AVISynth is my friend with this, and it will unfortunately require you to re-encode your footage. This method can also reduce some compression artifacting, though not too much. At this time, I have three preferred filters for denoising, with one of them being my personal favorite, and almost never resorting to the other two unless under extreme circumstances. One is "MVTools2", while the others are "dfttest", and FFT3DFilter, all created by some of the best on Doom9. Here's what needs to be done:

- Follow the instructions on AVISynth and VirtualDub in the 24p guide, install what is necessary.

- Download MVTools2 from: http://avisynth.org.ru/mvtools/mvtools-v2.4.6.zip Naturally, place the DLL in your AVISynth plugins folder.

- Bring up your trouble clip in an AVISynth (check 24p guide for loading clips in AVISynth) script, and add the following lines:
super = MSuper(last)
backward_vec2 = MAnalyse(super, isb = true, delta = 2, overlap=2)
forward_vec2 = MAnalyse(super, isb = false, delta = 2, overlap=2)
MDegrain1(super, backward_vec2,forward_vec2,thSAD=400)

Unfortunately, the details of this code are a bit beyond my understanding, though basically, the filter works in "passes" of the video, checking both backwards and forwards frames (corresponding to the current frame it's on), and comparing the similarities and differences between them. This is standard of any temporal filter, though the results of MVTools are astounding...
​
- Save your script and encode in your preferred encoder and codec (Again, it's highly preferrable to encode lossless).

Method B:

- Instead of MVTools2, grab dfttest from: http://web.missouri.edu/~kes25c/dfttestv16.zip Install the dfttest DLL in the plugins folder, but make sure to also place the libfftw DLL in your system32 folder.

- Use the following line, though the strength may be too weak/strong for your clip.
dfttest(sigma=.5) Yes, this should be an extremely low number (I only use "1" on some animation that I encode, but it's still quite strong. Note that dfttest is prone to banding, and should be used only if absolutely necessary. It's quite effective, and doesn't have much of any temporal instability, but it can and usually DOES lead to banding. I think it's a great solution for low resolution web encodes to be honest, as it gives a smoother look.​
Method C:

- Grab FFT3DFilter from: http://avisynth.org.ru/fft3dfilter/fft3dfilter211.zip Place the DLL in your plugins folder, and also grab ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip The DLL in here must be placed in your system32 folder (it is NOT the same as the additional dfttest DLL).

- FFT3DFilter has tons of parameters that can affect the image, and I often stray away from it as it softens the image a good deal, but can sometimes work miracles, so I recommend something light, such as:
FFT3DFilter(sigma=2)
An awesome use of FFT3DFilter is to reduce chroma noise exclusively, and to reduce chroma rainbowing, (though take note, this also reduces overall saturation). You can do so with the following alteration:
FFT3DFilter(sigma=2, plane=3)
​
________________________________________________________

DVD Encoding
The Problem: Commercial Solutions are expensive, and one-click programs don't offer absolute control over your encoding.
The Solution: Admittedly, freeware has yet to catch up in quality to some of the more professional solutions, in my opinion. CCE-SP is ridiculously efficient for MPEG2, and the encoders built into Compressor and Adobe Encore are also quite adequate for MPEG2, but if you can't afford anything right now, the freeware MPEG2 encoder "HC" is fast, with decent quality, and full customization if you truly want. It can be batch processed to split your movie for each core that you have, so it will take advantage of multicore processors as well. I've had occasional glitches with it, so be wary, I wouldn't suggest it for a final encode. This whole part is aimed more at quick demo discs and such (and if you're encoding something short like a reel, simply pump the bitrate for maximum quality, since you have plenty of space anyway).
________________________________________________________

H264 and Lossless Encoding
The Problem: H264 is an incredible codec, but it seems very few programs encode it with great speed, great quality, and great customization. What's more, most people fear changing applications for compatibility reasons. The problem comes from compatibility across a BROAD range of hardware and software. For example: Apple as a whole does not support high profile H264 (this may have changed in the latest FCS considering it boasts Blu-ray encoding support) in Quicktime, the iPod, or Apple TV. This eliminates direct usage of Blu-ray streams, or even Blu-ray based settings with a lower bitrate. Flash players also don't support High Profile to my knowledge, instead relegating themselves to Main Profile, like Apple. By extension, a PC user (fully capable of high profile decoding with ffdshow, and soon-to-come Windows 7) must concern him/herself with being compatible with the vast Mac users out there in this industry.

It goes on further in that H264 encoding is oversimplified in most applications, giving you little control over tons of parameters, particularly those surrounding grain retention (H264 by nature is not too good with retaining dither or any type of noise).

The Solution: I'll be honest, I think it's completely fair to say that the absolute best *software* based H264 is of course, free. x264, which I'm sure many of you have heard of (it's integrated into many other packages such as SUPER), is quite possibly the fastest, highest quality, and most customizable H264 encoder out there. Some hardcore users prefer to encode via command line, though I find myself too stubborn to learn it, and prefer the great GUI for it simply known as "MeGUI". MeGUI goes leaps further than being a frontend for x264 though; It's literally a complete encoding suite, providing container muxing, audio encoding, video encoding (into many various formats, mind you), subtitle ripping, bitrate calculation, batch processing, stream extracting, chapter creation, etc. I barely use most of MeGUI's features myself, as I prefer other programs, but it truly is fully featured. For the following guide, download MeGUI from http://mirror01.x264.nl/x264/megui-0_3_1_1006.exe and let it update every single file. Make sure to also import all profiles that it asks you to import, as they are extremely helpful in encoding hardware compliant video.
________________________________________________________

Audio Encoding
The Problem: Audio is "easier" to encode in that very few parameters must be set. Audio production itself is of course, an intricate science and art, but the final compressed result is actually quite easy to produce. A main problem, however, is hardware compatibility. MP3 is nice, but one, it's old, and two, it's not standard for any kind of video format (DVD players may support MP3 playback, but NOT as an audio track for DVD Video). I strictly avoid MP3 these days, as most hardware and software out there fully supports AAC by now. For DVD encoding, MP2 and AC3 (Dolby Digital) are the standard (well, technically, AC3 is required in R1 regions, MP2 is optional for players), and I shall cover those as well.

The Solution: Besweet is still a favorite among some people, but I found its reliance on plugins and executables to be unreliable, and whenever it crashed, the reason always seemed vague, so I avoid it when possible. For simple WAV to AAC conversions, I prefer foobar2000 as a frontend to Nero's excellent (and free!) AAC encoder.
________________________________________________________

Miscellaneous
There's all sorts of advice I could give, and there's also admittedly too many parameters for me to go into detail with in this guide. Post away, and I'll be happy to answer any questions. Here's some great tools to consider on the side though:

- Free, Simple, but Efficient Audio Editing: http://audacity.sourceforge.net/ (Also on OSX)

- Free and Basic DVD Burning: http://cdburnerxp.se/

- Free ISO Burning, Creation and Folder Burning: http://www.imgburn.com/

- MPEG2 Stream Analyzing (Ever wonder just HOW you messed up your DVD?): http://neuron2.net/dgmpgdec/dgmpgdec.html

- MPEG4 AVC (H264) Stream Analyzing: http://neuron2.net/dgavcdec/dgavcdec100a3.zip

- All Around Codec Solution (Don't trust anything else): http://cccp-project.net/

- Free DV Codec for loading DV AVI files into AVISynth: http://www.free-codecs.com/download/Cedocida_DV_Codec.htm

- If you get asked about a missing YV12 Codec upon loading AVISynth: http://www.free-codecs.com/download/Helix_YUV_Codecs.htm
________________________________________________________

I'll fill in the rest later... It's gonna be one hell of a thread.
 
Last edited:
Back
Top