x264 Basics

*** the higher the resolution of your output the higher the filesize it needs
*** the lower the resolution of your output the lower the filesize it needs

for example a specific anime episode is encoded with same settings and same encoder and same video source but different 
resolution, at SD resolution it gave around 30mb for example but at HD it gives around 60mb 
(not the actual filesizes but the gist of it that HD needs high filesize is a fact)
 
the higher the resolution output the longer the encoding time too
the lower the resolution output the faster the encoding time too
 
=========================================================
 
Lossy Compression – x264 is mainly about lossy compression meaning it removes data like redundant data
to lower the filesize output, so in other words lossy compression sacrifices quality to get lower filesize, this also mean
that on each re-encode of a video source you do with x264 the quality will degrade, so this fact will tell you that its impossible to retain the same quality of a bigger video file when you re-encode (transrating) it to smaller video file or same video filesize as the original, the point of lossy compression is to reduce the filesize while maintaining a tolerable video quality
Lossless Compression – is the opposite of lossy compression that it retains the quality of the video no matter how many
times you re-encode since it does not remove video data like redundant video data, but non-removal of data also means
the filesize output of lossless compression are big/huge
=========================================================
 
Dark Scenes – x264 like any other DCT (Discrete Cosine Transform) base video compression is bad at compressing dark scenes
you will normally find that when encoding to mini-size (ultra low bitrates) the usual complain is that dark scenes have bad quality
nothing much you can do about this since its just the nature of DCT base video compression, other DCT base video compression that became popular are XVID, DIVX, WMV, RMVB, VP8, etc
 
=========================================================
 
their are 2 kinds of encoding mode (or Rate Control) on x264 they are CRF (Constant Rate Factor) and 2-pass (Multi-Pass encoding) 

*** CRF (Target Quality) is average quality but filesize varies
*** 2-pass (Target FileSize) is average filesize but quality varies 

let me give an example suppose you have one specific video source, same settings, but different resolutions
so if you encode at 720p and CRF=26 for example that video will output higher filesize
than when you encode it at 480p and CRF=26 since its Target Quality and to achieve that target/level
of quality the bitrate will increase if the resolution will increase 
while if you encode using 2-pass at 400kbps and at 720p it will have same output filesize
as when you encode using 2-pass at 400kbps and at 480p this is because 2-pass is considered as
Target Filesize meaning it does not care how the quality will look like it only cares that the
filesize intended for 400kbps is achieve no matter what the resolution is
 
CRF behaves like this, the higher the CRF value set the lower the quality thus lower the filesize, while the lower the CRF value set the higher the quality thus the higher the filesize, read more below to find other things about CRF
 
2-pass behaves like this, the higher the bitrate set the higher quality thus the higher filesize, while the lower the bitrate set the lower the quality thus the lower the filesize
 
==========================================================
 
their is no encoding mode for average quality and average filesize at thesame time because of 
video complexity, when we say video complexity it refers to compressibility
high motion scenes need higher bitrate and thus high filesize on that scene and 
low motion scenes need less bitrate and thus low filesize on that scene, the number 
of high motion and low motion scenes varies from every video and thus video compressibility 
varies from show to show, episode to episode, scene to scene

*** video complexity is the reason why in CRF (Target Quality) encoding the filesize vary a lot too
*** video complexity is the reason why in 2-pass (Target Quality) encoding the quality vary a lot too

high motion scenes examples: scenes that has fast pace action with explosions, scenes like opening songs that has a lot of background moving along with characters dancing 
low motion scenes examples: scenes where anime faces and only lips are moving, scenes that have slow moving to static non-moving backgrounds
 
 
CRF is average quality; CRF encoding means your guessing on its filesize output
2-pass is average size; 2-pass encoding means your guessing on its quality output
 
2-pass is CRF too, whats different in 2-pass is that it picks a CRF value that 
will target the file size you want
 
CRF is average quality if you constantly using a specific CRF value to a given 
resolution like for a 400p you always use CRF=26 no matter what video you re-encode then that 
is how you do CRF encoding
 
CRF is not constant quality if your always changing the CRF value to a given 
resolution just to target a specific filesize, this kind of CRF encoding is called manual 2-pass, so its better if 
you stick to 2-pass mode if your always changing your CRF value on a specific 
resolution just to attain the filesize you want
 
==========================================================
“Presets” are x264 options that are adjusted according to the tradeoff between compression and encoding time/speed, 
so if you set the preset at a slower value then youll end up with slower encoding but at the benefit of more 
reduce filesize, and if you set this at a faster encoding preset then youll end up with a bigger filesize output, 
its not highly recommended to use the “Placebo” on the “Presets” since it just give around 1% compression gain compared 
to “Very Slow” on most cases and at the cost of a whopping double to triple encoding time compared to “Very Slow”
 
“Tunes” option, the “Tunes” are x264 options that further adjust the settings of x264 according to what is the video 
source your encoding, so if your re-encoding any 2D videos like anime or cartoons then set “Tunes” to “Animation”
but if your re-encoding a live-action film with real-life footages then go with “Tunes” set to “Film”, 3D or CGI 
animations are considered on “Film” settings of “Tunes”
 
and the point of Presets and Tunes of x264 is to decrease the learning difficulty on the many/various settings available 
on x264, back in the old days when their is no Presets and Tunes, their are endless debates about the best settings for 
x264 and endless tweaking of values that just made people more confuse and argue a lot
so its better you stick with Presets and Tunes and do not delve much on to tweaking more 
since the Presets and Tunes already tweak those many/various settings of x264 accordingly
 
references

http://mewiki.project357.com/wiki/X264_Encoding_Suggestions#Commandline_Suggestions 
http://forum.doom9.org/showpost.php?p=1583580&postcount=67
http://forum.doom9.org/showpost.php?p=1410319&postcount=11
http://forums.animesuki.com/showpost.php?p=3125075&postcount=9
http://forums.animesuki.com/showpost.php?p=3125675&postcount=12

 
===========================================================
“Profiles” specify which features/settings/options of H264 are allowed (or not allowed), Profiles are needed to make sure 
your video file will play fine on a certain decoder (or device/hardware player, ex. xbox, PS3, mobile phones, etc)
the profile “Baseline” is the good choice for low power devices like mobile phone playback, the profile “Main” 
is mainly for standard definition (SD) TV broadcast, while profile “High” is for any applications that is powerful 
such as a laptop or desktop PC kind/like of devices
 
“Levels” put further restrictions on other properties of the video, these restrictions include the maximum resolution, 
the maximum bitrate, the maximum framerate (for a given resolution) and the maximum number of reference frames. 
In order play your H264 video on a specific device/hardware player
 
you do not have to be concerned about Profiles and Levels if your only playing videos on modern computers
that are using software players like VLC Player, CCCP, K-Lite, MPC-HC Player, etc
Profiles and Levels are just settings restrictions to achieve smooth playback on a target Hardware Player or Device
software players usually don't have such restrictions, as long as your CPU is powerful enough

Resolution Calculation

before we start never ever upscale for example your source is just 480p and you want it 720p that is wrong thinking, you will only make the video blurry 

ok back to the main guide if your wandering how to get properly the resize resolution of a source video here is the simple way

for example you got a source of 1280×960
then lets say you want to downsize to 576p:
1280 = 960
x = 576
then cross multiply:
x960 = 737280
x = 768
so its:
768×576
to check:
1280/960 = 1.333
768/576 = 1.333
1.333 = 1.333
so your 576p resolution is 768×576

for example you got a source of 1280×720
then lets say you want to downsize to 400p
1280 = 720
x = 400
then cross multiply:
x720 = 512000
x = 711
so its:
711×400
to check:
1280/720 = 1.77
711×400 = 1.77
1.77 = 1.77
so your 400p resolution is 711×400

for example you got a source of 1280×720
then lets say you want to downsize to 480p
1280 = 720
x = 480
then cross multiply:
x720 = 614400
x = 853
so its:
853×480
to check:
1280/720 = 1.77
853/480 = 1.77
1.77 = 1.77
so your 480p resolution is 853×480

thats it you got it now

MeGUI One-Click Tutorial

MeGUI One Click feature tutorial/guide
 
the newest MeGUI can automatically add the subtitles to the resulting mkv file output
so the “One Click” feature of MeGUI is looking as simple as Handbrake although MeGUI is still
more buggy or have lots of random errors that youll encounter, nevertheless i like the 
audio encoding of it as you can set the decoder to FFAudioSource (and Output Channels to mono)
for better encoding of FLAC 6 channels to as low as 32kbps using vorbis/ogg audio format for example
 
lets begin
 
install it and install .net framework 3.5 SP1 (if megui fail to run)
and install avisynth too -> http://sourceforge.net/projects/avisynth2/
 
run MeGUI (after all installations and updates) and at the bottom click “One-Click” button besides “AutoEncode” button
 
 
on the Input/Output area browse for your input file and choose your output location
on the Audio area just click the “downward arrow” button to select your audio
on the Target area click “Config” besides the “OneClick profile” 
now your on the “Encoding Setup”
on “Output Resolution” inputbox it accepts Width (not Height)
– so if you have a 16:9 (widescreen) source video and want 360p 
you will enter 640 on the inputbox to get 640×360 output resolution
– so if you have a 4:3 (non-widescreen or squarescreen) source video and want 384p
you will enter 512 on the inputbox to get 512×384 output resolution
NOTE: to know simple resolution calculation see this -> Resolution Calculation
uncheck “Automatic Deinterlacing” we do not need any filtering because
fansubs are already filtered and filtering them more will be (mostly) a waste of time 
on “Container Type” tab just select MKV, we will always use MKV to ensure
that subtitles will be included on the output
now go back to the “Encoding Setup” tab and select “*scratchpad*” on the combobox 
and then click “Config” besides “Avisynth profile” 
on the “Template” tab delete others besides <input> and <resize> make sure 
that <input> is at the top of <resize> and then click “OK” button
now go back to the “Encoding Setup” tab and select “x264: *scratchpad*” on the combobox
and then click “Config” besides “Video Preset”
 
on “Presets” slider select “Very Slow” this means higher settings for more compression
but at the cost of very slow encoding, if you want faster but still have some 
good compression then go for “Medium” 
on “Tunings” area select “Animation”
on “Modes” area go for “Targeting quality” and set 26 on the “Quality” inputbox 
and then click “OK” button
NOTE: the “Modes” area will be overidden if you set a filesize on 
“Target” area -> “Filesize” the screenshot is below
now go back to the “Encoding Setup” tab and select “Vorbis: *scratchpad*” on the combobox
and then click “Config” besides “Audio Codec”
 
on “Preferred Decoder” select “FFAudioSource”
on “Output Channels” select “Convert to Mono”
NOTE: you may ask why mono or 1 channel instead of stereo sound that is 2 channel? 
the answer is to ensure low bitrate encoding and processing of FLAC audio
especially those problematic FLAC 6 channels (or 5.1 surround audio)
do note that more audio channel means more bitrate needed so a 32kbps to 48kbps audio 
will likely to cause some errors if its more than 1 channel
on “Ogg Vorbis options” slider set it to -1.0 this will ensure 32kbps of audio output
as long as its mono or 1 channel then click “OK” button
now go back to the “Encoding Setup” tab and click “OK” button
 
now click “Go!” button and go to “Queue” tab and press “Start” button
thats it encoding will begin and thats the end of this little tutorial

Handbrake Tutorial

mainly for low size or mini size h264 video format encoding of fansubs using x264 encoder in mkv or mp4 container 

TIP: if your ripping a encrypted DVD then install libdvdcss here is a guide –  http://www.howtogeek.com/102886/how-to-decrypt-dvds-with-hardbrake-so-you-can-rip-them/ 

getting handbrake
go to http://handbrake.fr/
click “Downloads” and go to “Nightly Builds”
NOTE: we are using Nightly Builds because its more updated so less bugs and more updated encoding tools

installing handbrake
clicking “Nightly Builds” will take you here 
http://handbrake.fr/nightly.php
then download something that says “WindowsGUI” or “Win GUI”
then install it and open it

encoding with handbrake

click “Tools” menu and then click “Options” and then click “Output Files”
click “Browse” button and browse the desktop folder for example as your default output folder then click “Close”
click “High Profile” on “Presets” pane
click “Container” drop down box select “MKV”
NOTE: we select MKV to select Vorbis audio later on when encoding with audio because AAC of Handbrake
is not NeroAAC so Vorbis audio wins in here for good quality on low bitrate
go to “Picture” tab (Resolution tab) and select “None” on “Anamorphic” drop down box
then check “Keep Aspect Ratio” now on “Height” input box put 400 or 360
now the “Width” will be calculated automatically
NOTE: 400 as height is 400p so 360 as height is 360p


go to “Video” tab set “Video Codec” to “H.264(x264)” then set “Framerate (FPS)” to “Same as source”
then make sure that “Variable Framerate” is selected and then choose your encoding mode on “Qaulity”
i prefer “Constant Quality” or CRF
if you prefer “Constant Quality” take note that filesize will vary but quality will
be almost consistent through out the video for a given CRF value
and its a faster way of encoding too because its 1-pass
“Constant Quality” or CRF values good ranges are from 24 – 28 i prefer value of 26
in CRF the higher the value the lesser the quality but lesser the filesize
in CRF the lesser the value the higher the quality but higher the filesize
in CRF filesize will be less too if you set a low reolution thats why we set Resolution that
is in average 360p like 640×360 (for 16:9) or 512×384 (for 4:3)
if you prefer or “Avg bitrate” make sure to check “2-pass encoding”
and check “Turbo first Pass”
NOTE: in “Avg bitrate” good values are betweeen 300-450 bitrate

 
set x264 Preset to “Very Slow”
NOTE: the slower the x264 preset the better the quality and the smaller the filesize but “Placebo” preset is a waste of time
set x264 Tune to “Animation”
NOTE: we choose “Animation” as the preset since we are encoding anime/cartoons or cel shaded videos but if your encoding live action movies/series then choose “Film”
set H.264 Profile to “High”
set H.264 Level to “Auto”

go to “Audio” tab click “Clear” button to remove all the audio on the queue
click “Add Track” then “Add New Track”

on “Source” drop down box select an audio you want to add
on “Codec” drop down box select “Vorbis” 
on “Mixdown: drop down box select “Mono”
on “Bitrate” drop down box select “48” (this means you will encode the audio in 48 bitrate)
NOTE: for multi-audio (like dual-audio) you do same steps just click “Add Track” again and do the steps again
NOTE: take note that the first audio you put on the queue will be the default audio
when you play the reencoded file
NOTE: we set “Mixdown” to “Mono” and at 48kbps audio to ensure that we can encode sources that are FLAC and in 6 channels

go to “Subtitles” tab then click “Add Track” then click “Add New Track”

on the “Source” drop down box select a subtitle of your choice
in this case i select a SSA/ASS subtitle then i check the “Burn In” checkbox for Hardsubbed
or “Default” checkbox for Softsubbed
NOTES:
Hardsubbed – means the subtitles are irreversibly part of the video so you cannot turn off this or extract this kind of subs
Softsubbed – means the subtitles are just part of the video like a text display that can easily be turn off or turn on back again and this kind of subtitles can be extracted


then press “Start” button to start encoding
alternatively you can click “Add to Queue” then start encoding from “Show Queue”
the “Add to Queue” function is good if your gonna encode a lot of videos

so thats it happy encoding with Handbrake

to speed up more the reencoding of fansub anime
go to “Video Filters” tab and set it all to “Off”