Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
echinopsis
Apr 13, 2004

by Fluffdaddy
wanna see pictures with Luma sub sampling jus for fun

Adbot
ADBOT LOVES YOU

Qwertycoatl
Dec 31, 2008

Malcolm XML posted:

dont stop

im almost there

the most perverted thing hevc does is sign data hiding. instead of encoding a sign bit for the last coefficient in a transform, if the sum of the coefficients is even the sign is + and if the sum is negative the sign is -. half the time you save a bit, and the other half of the time you have to alter a coefficient to make it work out. but since the encoder can choose which to alter, it can choose one close to a quantisation boundary and lose less than 1 bit's worth of picture quality.

if you already know stuff about codecs, there's a good overview of hevc here: http://iphome.hhi.de/wiegand/assets/pdfs/2012_12_IEEE-HEVC-Overview.pdf

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
daala bitches

longview
Dec 25, 2006

heh.
http://www.pembers.freeserve.co.uk/World-TV-Standards/Line-Standards.html

here's another site with lots of spergy details about old TV standards

Ragg
Apr 27, 2003

<The Honorable Badgers>
Good stuff OP. Only about 5 years late but you'll catch up some day.

karoshi
Nov 4, 2008

"Can somebody mspaint eyes on the steaming packages? TIA" yeah well fuck you too buddy, this is the best you're gonna get. Is this even "work-safe"? Let's find out!
The latest crytek engine uses chroma subsampling. Enjoy your sperging while playing crysis 3. Though I guess nobody notices, with all the maxxx postfx poo poo moderm games smear over the screen.

e: some demo page (not crytek): http://www.pmavridis.com/research/fbcompression/

karoshi fucked around with this message at 12:23 on Jul 10, 2013

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

echinopsis posted:

wanna see pictures with Luma sub sampling jus for fun

"original"


4:2:0


"2:0":4:4 (luma subsampling)


4:1:1


"1:1"4:4 (luma subsampling)


The chroma errors are most visible in the red hexagon thing on his left shoulder.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
i made some more extreme examples:

same chroma for every 8x8 pixel block


same luma for every 8x8 pixel block

pagancow
Jan 15, 2001

Video Stymie

Your eyes see picture really well, then luminance kinda of well, and color really poorly.

Thats why the image is compressed in that ratio.

movax
Aug 30, 2008

Qwertycoatl posted:

time for some sperging!

they started by copypasting h264 and then changed a bunch of things. instead of fixed-sized macroblocks like other codecs it has variable sized blocks from 64x64 down to 8x8, and transforms can be up to 32x32. so uniform regions can use big blocks instead of lots of little ones that waste bits saying "same again please". it's also offers more options for within-frame prediction, and better motion vector prediction. and a bunch of even spergier stuff so i'll stop there.

most importantly, they realised that interlacing is dumb and dropped support for it.

have you played with any of the hdl implementations of it? i've been toying with the idea of writing my own hevc decoder core because licensing is really expensive. the dudes at allegro actually replied to my emails though which was nice

pagancow
Jan 15, 2001

Video Stymie

If you want to become better at operating an NLE, play Starcraft:

http://forums.somethingawful.com/showthread.php?threadid=3559092

It really helped me improve my short term memory, and just moving my hands around the keyboard all crazy.

I went from remembering stuff in like 10 clips at a time to about 20 clips.

There's some research going on trying to find out what playing Starcraft does for other short term mental skills, but all the ones you use in an NLE and editing are the sames ones you use in Starcraft.

Locker Room Zubaz
Aug 8, 2006

:horse:
~*~THE SECRET OF THE MAGICAL CRYSTALS IS THAT I'M FUCKING TERRIBLE~*~

:horse:

pagancow posted:

If you want to become better at operating an NLE, play Starcraft:

http://forums.somethingawful.com/showthread.php?threadid=3559092

It really helped me improve my short term memory, and just moving my hands around the keyboard all crazy.

I went from remembering stuff in like 10 clips at a time to about 20 clips.

There's some research going on trying to find out what playing Starcraft does for other short term mental skills, but all the ones you use in an NLE and editing are the sames ones you use in Starcraft.

starcraft really teaches you how to use your keyboard super efficiently to manage groups of things and i would bet the skills carry over to a lot more than just NLE editing. There was some research on FPS games and RTS games having profound effects on reaction speed and poo poo like that where we have gamers seeing the same lag that jet pilots see in simulators or something like that.

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN

Silver Alicorn posted:

the hobit experience

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN
also motion interpolation is terrible and if you like it you are terrible

Silver Alicorn
Mar 30, 2008

𝓪 𝓻𝓮𝓭 𝓹𝓪𝓷𝓭𝓪 𝓲𝓼 𝓪 𝓬𝓾𝓻𝓲𝓸𝓾𝓼 𝓼𝓸𝓻𝓽 𝓸𝓯 𝓬𝓻𝓮𝓪𝓽𝓾𝓻𝓮
the problem I've noticed with motion interpolation is a lot of the time the software can't come up with a solution during the 8.3ms frametime so you end up with a juddery mess you wouldn't have had if you kept it at 24fps

the fact that tv manufacturers have to do defensive pr about the feature is a bad sign

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

tell monty to hurry up with more parts regarding daala thanks

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

movax posted:

have you played with any of the hdl implementations of it? i've been toying with the idea of writing my own hevc decoder core because licensing is really expensive. the dudes at allegro actually replied to my emails though which was nice

Isn't most of that expense the licensing for hevc decoding itself? I wanna hear more about this

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN

pagancow posted:

You can time stretch audio now with out changing the aparent pitch.

Music would just be playing slightly faster at that point.

you dont even need to time stretch audio with a plugin or whatever

just resample to ~4608 (if source is 4800), or slow it down by ~0.96 (you dont even need digital poo poo to do this)

Qwertycoatl
Dec 31, 2008

movax posted:

have you played with any of the hdl implementations of it?

I've not played with any that exist.

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN
and yes i'm replying to posts out of order what now :drat:

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN

karoshi posted:

The latest crytek engine uses chroma subsampling. Enjoy your sperging while playing crysis 3. Though I guess nobody notices, with all the maxxx postfx poo poo moderm games smear over the screen.

e: some demo page (not crytek): http://www.pmavridis.com/research/fbcompression/

ugh god its really obvious in their webgl demo especially with bilinear

e: since i dont want to keep hitting reply

movax posted:

have you played with any of the hdl implementations of it? i've been toying with the idea of writing my own hevc decoder core because licensing is really expensive. the dudes at allegro actually replied to my emails though which was nice

if you write one you should contribute it to ffmpeg/libav

Beeftweeter fucked around with this message at 18:27 on Jul 10, 2013

Moist von Lipwig
Oct 28, 2006

by FactsAreUseless
Tortured By Flan

ahmeni posted:

medium format is Legit loving Awesome but also a huge pain to do

not if you get an slr like an rb67 or one of those ridiculous 6x9 fujis

pagancow
Jan 15, 2001

Video Stymie

Quine Connoisseur posted:

you dont even need to time stretch audio with a plugin or whatever

just resample to ~4608 (if source is 4800), or slow it down by ~0.96 (you dont even need digital poo poo to do this)

Sometimes you dont want to affect the pitch of the audio. Playing at a different sampling rate will always affect the pitch without some processing.

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN

pagancow posted:

Sometimes you dont want to affect the pitch of the audio. Playing at a different sampling rate will always affect the pitch without some processing.

if its all sped up and high pitched i think you might

also interestingly if you tell mencoder/mplayer to encode something at 96% speed it'll adjust the pitch, framerate and subtitle speed on pal stuff to 23.976 for you

so if you just have it do a framecopy of a pal dvd or something it'll play like its supposed to

e: if you wanted to do it in a script you can just do

code:
mencoder -channels 6 dvd://${title} -dvd-device “${dvdpath}” -noskip -mc 0 -speed 0.96 -ovc copy -oac pcm -alang en -srate 48000 -af-adv force=5 -slang en -alang en -ofps 24000/1001 -vobsubout dvdname -o “${dvdname}”.avi
thats assuming a 25 fps input obviously

Beeftweeter fucked around with this message at 20:51 on Jul 10, 2013

echinopsis
Apr 13, 2004

by Fluffdaddy

Wheany posted:

"original"


4:2:0


"2:0":4:4 (luma subsampling)


4:1:1


"1:1"4:4 (luma subsampling)


The chroma errors are most visible in the red hexagon thing on his left shoulder.

hey thanks for doin that! the last one looks coool. coool effrect
thanks

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

echinopsis posted:

hey thanks for doin that! the last one looks coool. coool effrect
thanks

hah, no problem, just a bit of "imagemagick" ;)

pagancow
Jan 15, 2001

Video Stymie

movax posted:

have you played with any of the hdl implementations of it? i've been toying with the idea of writing my own hevc decoder core because licensing is really expensive. the dudes at allegro actually replied to my emails though which was nice

You can write one easily, just dont post the binary

source code is ~free speech~

Cubemario
Apr 3, 2009
i like how i have to use VLC sometimes because its the only player that plays crappily encoded vids with corruption

PRELOADING FONT CACHE (this may take a couple minutes!) :frogout:

echinopsis
Apr 13, 2004

by Fluffdaddy

Wheany posted:

hah, no problem, just a bit of "imagemagick" ;)

he he cool I need to Learn imagenacigick

Silver Alicorn
Mar 30, 2008

𝓪 𝓻𝓮𝓭 𝓹𝓪𝓷𝓭𝓪 𝓲𝓼 𝓪 𝓬𝓾𝓻𝓲𝓸𝓾𝓼 𝓼𝓸𝓻𝓽 𝓸𝓯 𝓬𝓻𝓮𝓪𝓽𝓾𝓻𝓮
gj at getting banned echopenis

jackdh4x0r
Jun 8, 2005

I've got an eighteen minute window.

Qwertycoatl posted:

the most perverted thing hevc does is sign data hiding. instead of encoding a sign bit for the last coefficient in a transform, if the sum of the coefficients is even the sign is + and if the sum is negative the sign is -. half the time you save a bit, and the other half of the time you have to alter a coefficient to make it work out. but since the encoder can choose which to alter, it can choose one close to a quantisation boundary and lose less than 1 bit's worth of picture quality.


i came at "quantisation boundary"

i'll be ready again soon tell me about context-adaptive binary arithmetic coding next

god i'm hard

echinopsis
Apr 13, 2004

by Fluffdaddy

Silver Alicorn posted:

gj at getting banned echopenis

:tipshat: welp if you're not getting banned you're not living

Assepoester
Jul 18, 2004
Probation
Can't post for 10 years!
Melman v2
A guide for encoding through CLI (Command Line Interface)

GUI vs. Command Line (cmd)
The reason of using cmd is that it won’t restrict you. You can do everything that an encoder (x264.exe) can do. However, in a GUI you have to follow the GUI’s limitations. For instance you can’t use AQ-Method (3 and 4), as a GUI would not recognize / approve that command. As a result, you’ll either get an error or GUI will force the program to close.

And cmd is very easy to use and it’s very diverse. You just need to get used to it. (It gives a cool impression too xD. When you hear a hacker hacked an account, first thing you say is “awesome, he hacked it”, not why? or how? XD)

How to use Command Line

Things that you need to get before encoding via CLI.
1- ffmpeg.exe – Put the (.exe) file after Dling, no installation.
2- 10-bit, x264.exe (video and audio encoder) – Put the (.exe) file after Dling, no installation.
3- neroAacEnc.exe (only audio encoder) – Put the (.exe) file after Dling, no installation.
4- mkvmerge.exe (Optional) – DL it, Install it and get the (.exe) from there.

I recommed that you use 32-bit, or x86, versions.

Creating a Command (Line)

- Command Line Interface will do some work only when you give some valid command to the system.

- Commands can be written on notepad, any text editor, or CLI window.

- If you are writing the commands on any text editor, it will probably be saved in (.txt) format by default. That won’t activate CLI. You’ll have to save your written code in (.bat) format. To do that simply hit “Save as” and at the end of the filename add (.bat) extension.

- If you run (double click) any (.bat) file, the commands written inside the (.bat) files would be forwarded to system and if they are valid they’ll be processed, otherwise CLI window will be closed automatically without doing anything.

- It means that all you need to do for CLI-encoding is write valid commands, save it in (.bat) file and run it later on. Encoding will start as according to what’s written in the (.bat) file.

General Info of writing Commands

I won’t talk about heavy and complex commands, rather just skim over general idea of command formatting.

code:
Executable_file(.exe) commands_specific_to_that_(.exe)_file
Executable file could be anyone like mkvmerge.exe -or- x264.exe
To know what kind of commands / features can be used for a mentioned (.exe) file you need to have some knowledge. Like:

code:
neroAacEnc.exe -ignorelength -lc -q 0.5 -if - -of encoded_audio.aac
It can be gained via browsing internet, personal experience, and logfiles etc.
As this is a guide, I’ll make sure to let you know the requisite commands to encode a video file.

Settings from Logfiles

Well, every (.exe) file has a logfile which explains the settings, or features, that can be done. To get the logfile of any (.exe.) via CMD, you’ll have to make a short command. This will also serve as a practical of making a (.bat) file.

Make a new folder, somewhere nice. Place following files in it.
- ffmpeg.exe
- x264.exe
- neroAacEnc.exe
- mkvmerge.exe

Open a notepad, and write this:

code:
x264.exe --fullhelp
@pause
Save this file by hitting “Save as”. Name it whatever you wanna name it, but select the extension (.bat); after that, save it in the same folder. It will be appeared as a “Windows Batch File (.bat)”. Run it by double-clicking. You’ll get something like this.

code:
x264 --fullhelp
x264 core:120 r2120 0c7dab9
Syntax: x264 [options] -o outfile infile
Infile can be raw (in which case resolution is required),
or YUV4MPEG (*.y4m),
or Avisynth if compiled with support (yes).
or libav* formats if compiled with lavf support (yes) or ffms support (yes).
Outfile type is selected by filename:
.264 -> Raw bytestream
.mkv -> Matroska
.flv -> Flash Video
.mp4 -> MP4 if compiled with GPAC support (yes)
Output bit depth: 10 (configured at compile time)

Options:

-h, --help List basic options
--longhelp List more options
--fullhelp List all options

Example usage:

Constant quality mode:
x264 --crf 24 -o (output) (input)
Two-pass with a bitrate of 1000kbps:
x264 --pass 1 --bitrate 1000 -o (output) (input)
x264 --pass 2 --bitrate 1000 -o (output) (input)

Lossless:
x264 --qp 0 -o (output) (input)

Maximum PSNR at the cost of speed and visual quality:
x264 --preset placebo --tune psnr -o (output) (input)

Constant bitrate at 1000kbps with a 2 second-buffer:
x264 --vbv-bufsize 2000 --bitrate 1000 -o (output) (input)

Presets:

--profile Force the limits of an H.264 profile
Overrides all settings.
- high10:
No lossless.
Support for bit depth 8-10.
- high422:
No lossless.
Support for bit depth 8-10.
Support for 4:2:0/4:2:2 chroma subsampling.
- high444:
Support for bit depth 8-10.
Support for 4:2:0/4:2:2/4:4:4 chroma subsampling.
--preset Use a preset to select encoding settings [medium]
Overridden by user settings.
- ultrafast:
--no-8x8dct --aq-mode 0 --b-adapt 0
--bframes 0 --no-cabac --no-deblock
--no-mbtree --me dia --no-mixed-refs
--partitions none --rc-lookahead 0 --ref 1
--scenecut 0 --subme 0 --trellis 0
--no-weightb --weightp 0
- superfast:
--no-mbtree --me dia --no-mixed-refs
--partitions i8x8,i4x4 --rc-lookahead 0
--ref 1 --subme 1 --trellis 0 --weightp 1
- veryfast:
--no-mixed-refs --rc-lookahead 10
--ref 1 --subme 2 --trellis 0 --weightp 1
- faster:
--no-mixed-refs --rc-lookahead 20
--ref 2 --subme 4 --weightp 1
- fast:
--rc-lookahead 30 --ref 2 --subme 6
--weightp 1
- medium:
Default settings apply.
- slow:
--b-adapt 2 --direct auto --me umh
--rc-lookahead 50 --ref 5 --subme 8
- slower:
--b-adapt 2 --direct auto --me umh
--partitions all --rc-lookahead 60
--ref 8 --subme 9 --trellis 2
- veryslow:
--b-adapt 2 --bframes 8 --direct auto
--me umh --merange 24 --partitions all
--ref 16 --subme 10 --trellis 2
--rc-lookahead 60
- placebo:
--bframes 16 --b-adapt 2 --direct auto
--slow-firstpass --no-fast-pskip
--me tesa --merange 24 --partitions all
--rc-lookahead 60 --ref 16 --subme 11
--trellis 2
--tune Tune the settings for a particular type of source
or situation
Overridden by user settings.
Multiple tunings are separated by commas.
Only one psy tuning can be used at a time.
- film (psy tuning):
--deblock -1:-1 --psy-rd :0.15
- animation (psy tuning):
--bframes {+2} --deblock 1:1
--psy-rd 0.4: --aq-strength 0.6
--ref {Double if >1 else 1}
- grain (psy tuning):
--aq-strength 0.5 --no-dct-decimate
--deadzone-inter 6 --deadzone-intra 6
--deblock -2:-2 --ipratio 1.1
--pbratio 1.1 --psy-rd :0.25
--qcomp 0.8
- stillimage (psy tuning):
--aq-strength 1.2 --deblock -3:-3
--psy-rd 2.0:0.7
- psnr (psy tuning):
--aq-mode 0 --no-psy
- ssim (psy tuning):
--aq-mode 2 --no-psy
- fastdecode:
--no-cabac --no-deblock --no-weightb
--weightp 0
- zerolatency:
--bframes 0 --force-cfr --no-mbtree
--sync-lookahead 0 --sliced-threads
--rc-lookahead 0
--slow-firstpass Don't force these faster settings with --pass 1:
--no-8x8dct --me dia --partitions none
--ref 1 --subme {2 if >2 else unchanged}
--trellis 0 --fast-pskip

Frame-type options:

-I, --keyint Maximum GOP size [250]
-i, --min-keyint Minimum GOP size [auto]
--no-scenecut Disable adaptive I-frame decision
--scenecut How aggressively to insert extra I-frames [40]
--intra-refresh Use Periodic Intra Refresh instead of IDR frames
-b, --bframes Number of B-frames between I and P [3]
--b-adapt Adaptive B-frame decision method [1]
Higher values may lower threading efficiency.
- 0: Disabled
- 1: Fast
- 2: Optimal (slow with high --bframes)
--b-bias Influences how often B-frames are used [0]
--b-pyramid Keep some B-frames as references [normal]
- none: Disabled
- strict: Strictly hierarchical pyramid
- normal: Non-strict (not Blu-ray compatible)
--open-gop Use recovery points to close GOPs
Only available with b-frames
--no-cabac Disable CABAC
-r, --ref Number of reference frames [3]
--no-deblock Disable loop filter
-f, --deblock Loop filter parameters [0:0]
--slices Number of slices per frame; forces rectangular
slices and is overridden by other slicing options
--slice-max-size Limit the size of each slice in bytes
--slice-max-mbs Limit the size of each slice in macroblocks
--tff Enable interlaced mode (top field first)
--bff Enable interlaced mode (bottom field first)
--constrained-intra Enable constrained intra prediction.
--pulldown Use soft pulldown to change frame rate
- none, 22, 32, 64, double, triple, euro (requires cfr input)
--fake-interlaced Flag stream as interlaced but encode progressive.
Makes it possible to encode 25p and 30p Blu-Ray
streams. Ignored in interlaced mode.
--frame-packing For stereoscopic videos define frame arrangement
- 0: checkerboard - pixels are alternatively from L and R
- 1: column alternation - L and R are interlaced by column
- 2: row alternation - L and R are interlaced by row
- 3: side by side - L is on the left, R on the right
- 4: top bottom - L is on top, R on bottom
- 5: frame alternation - one view per frame

Ratecontrol:

-q, --qp Force constant QP (0-81, 0=lossless)
-B, --bitrate Set bitrate (kbit/s)
--crf Quality-based VBR (-12-51) [23.0]
--rc-lookahead Number of frames for frametype lookahead [40]
--vbv-maxrate Max local bitrate (kbit/s) [0]
--vbv-bufsize Set size of the VBV buffer (kbit) [0]
--vbv-init Initial VBV buffer occupancy [0.9]
--crf-max With CRF+VBV, limit RF to this value
May cause VBV underflows!
--qpmin Set min QP [0]
--qpmax Set max QP [81]
--qpstep Set max QP step [4]
--ratetol Tolerance of ABR ratecontrol and VBV [1.0]
--ipratio QP factor between I and P [1.40]
--pbratio QP factor between P and B [1.30]
--chroma-qp-offset QP difference between chroma and luma [0]
--aq-mode AQ method [1]
- 0: Disabled
- 1: Variance AQ (complexity mask)
- 2: Auto-variance AQ (experimental)
--aq-strength Reduces blocking and blurring in flat and
textured areas. [1.0]

-p, --pass Enable multipass ratecontrol
- 1: First pass, creates stats file
- 2: Last pass, does not overwrite stats file
- 3: Nth pass, overwrites stats file
--stats Filename for 2 pass stats ["x264_2pass.log"]
--no-mbtree Disable mb-tree ratecontrol.
--qcomp QP curve compression [0.60]
--cplxblur Reduce fluctuations in QP (before curve compression) [20.0]
--qblur Reduce fluctuations in QP (after curve compression) [0.5]
--zones //... Tweak the bitrate of regions of the video
Each zone is of the form
,,
where
is either
q= (force QP)
or b= (bitrate multiplier)
--qpfile Force frametypes and QPs for some or all frames
Format of each line: framenumber frametype QP
QP is optional (none lets x264 choose). Frametypes: I,i,K,P,B,b.
K= depending on open-gop setting
QPs are restricted by qpmin/qpmax.

Analysis:

-A, --partitions Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]
- p8x8, p4x4, b8x8, i8x8, i4x4
- none, all
(p4x4 requires p8x8. i8x8 requires --8x8dct.)
--direct Direct MV prediction mode ["spatial"]
- none, spatial, temporal, auto
--no-weightb Disable weighted prediction for B-frames
--weightp Weighted prediction for P-frames [2]
- 0: Disabled
- 1: Weighted refs
- 2: Weighted refs + Duplicates
--me Integer pixel motion estimation method ["hex"]
- dia: diamond search, radius 1 (fast)
- hex: hexagonal search, radius 2
- umh: uneven multi-hexagon search
- esa: exhaustive search
- tesa: hadamard exhaustive search (slow)
--merange Maximum motion vector search range [16]
--mvrange Maximum motion vector length [-1 (auto)]
--mvrange-thread Minimum buffer between threads [-1 (auto)]
-m, --subme Subpixel motion estimation and mode decision [7]
- 0: fullpel only (not recommended)
- 1: SAD mode decision, one qpel iteration
- 2: SATD mode decision
- 3-5: Progressively more qpel
- 6: RD mode decision for I/P-frames
- 7: RD mode decision for all frames
- 8: RD refinement for I/P-frames
- 9: RD refinement for all frames
- 10: QP-RD - requires trellis=2, aq-mode>0
- 11: Full RD: disable all early terminations
--psy-rd Strength of psychovisual optimization ["1.0:0.0"]
#1: RD (requires subme>=6)
#2: Trellis (requires trellis, experimental)
--no-psy Disable all visual optimizations that worsen
both PSNR and SSIM.
--no-mixed-refs Don't decide references on a per partition basis
--no-chroma-me Ignore chroma in motion estimation
--no-8x8dct Disable adaptive spatial transform size
-t, --trellis Trellis RD quantization. [1]
- 0: disabled
- 1: enabled only on the final encode of a MB
- 2: enabled on all mode decisions
--no-fast-pskip Disables early SKIP detection on P-frames
--no-dct-decimate Disables coefficient thresholding on P-frames
--nr Noise reduction [0]

--deadzone-inter Set the size of the inter luma quantization deadzone [21]
--deadzone-intra Set the size of the intra luma quantization deadzone [11]
Deadzones should be in the range 0 - 32.
--cqm Preset quant matrices ["flat"]
- jvt, flat
--cqmfile Read custom quant matrices from a JM-compatible file
Overrides any other --cqm* options.
--cqm4 Set all 4x4 quant matrices
Takes a comma-separated list of 16 integers.
--cqm8 Set all 8x8 quant matrices
Takes a comma-separated list of 64 integers.
--cqm4i, --cqm4p, --cqm8i, --cqm8p
Set both luma and chroma quant matrices
--cqm4iy, --cqm4ic, --cqm4py, --cqm4pc
Set individual quant matrices

Video Usability Info (Annex E):
The VUI settings are not used by the encoder but are merely suggestions to
the playback equipment. See doc/vui.txt for details. Use at your own risk.

--overscan Specify crop overscan setting ["undef"]
- undef, show, crop
--videoformat Specify video format ["undef"]
- component, pal, ntsc, secam, mac, undef
--range Specify color range ["auto"]
- auto, tv, pc
--colorprim Specify color primaries ["undef"]
- undef, bt709, bt470m, bt470bg
smpte170m, smpte240m, film
--transfer Specify transfer characteristics ["undef"]
- undef, bt709, bt470m, bt470bg, linear,
log100, log316, smpte170m, smpte240m
--colormatrix Specify color matrix setting ["???"]
- undef, bt709, fcc, bt470bg
smpte170m, smpte240m, GBR, YCgCo
--chromaloc Specify chroma sample location (0 to 5) [0]
--nal-hrd Signal HRD information (requires vbv-bufsize)
- none, vbr, cbr (cbr not allowed in .mp4)
--pic-struct Force pic_struct in Picture Timing SEI
--crop-rect Add 'left,top,right,bottom' to the bitstream-level
cropping rectangle

Input/Output:

-o, --output Specify output file
--muxer Specify output container format ["auto"]
- auto, raw, mkv, flv, mp4
--demuxer Specify input container format ["auto"]
- auto, raw, y4m, avs, lavf, ffms
--input-fmt Specify input file format (requires lavf support)
--input-csp Specify input colorspace format for raw input
- valid csps for `raw' demuxer:
i420, yv12, nv12, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb
- valid csps for `lavf' demuxer:
yuv420p, yuyv422, rgb24, bgr24, yuv422p,
yuv444p, yuv410p, yuv411p, gray, monow, monob,
pal8, yuvj420p, yuvj422p, yuvj444p, xvmcmc,
xvmcidct, uyvy422, uyyvyy411, bgr8, bgr4,
bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21,
argb, rgba, abgr, bgra, gray16be, gray16le,
yuv440p, yuvj440p, yuva420p, vdpau_h264,
vdpau_mpeg1, vdpau_mpeg2, vdpau_wmv3,
vdpau_vc1, rgb48be, rgb48le, rgb565be,
rgb565le, rgb555be, rgb555le, bgr565be,
bgr565le, bgr555be, bgr555le, vaapi_moco,
vaapi_idct, vaapi_vld, yuv420p16le,
yuv420p16be, yuv422p16le, yuv422p16be,
yuv444p16le, yuv444p16be, vdpau_mpeg4,
dxva2_vld, rgb444le, rgb444be, bgr444le,
bgr444be, y400a, bgr48be, bgr48le, yuv420p9be,
yuv420p9le, yuv420p10be, yuv420p10le,
yuv422p10be, yuv422p10le, yuv444p9be,
yuv444p9le, yuv444p10be, yuv444p10le,
yuv422p9be, yuv422p9le, vda_vld, gbrp, gbrp9be,
gbrp9le, gbrp10be, gbrp10le, gbrp16be,
gbrp16le
--output-csp Specify output colorspace ["i420"]
- i420, i422, i444, rgb
--input-depth Specify input bit depth for raw input
--input-range Specify input color range ["auto"]
- auto, tv, pc
--input-res Specify input resolution (width x height)
--index Filename for input index file
--sar width:height Specify Sample Aspect Ratio
--fps <float|rational> Specify framerate
--seek First frame to encode
--frames Maximum number of frames to encode
--level Specify level (as defined by Annex A)
--bluray-compat Enable compatibility hacks for Blu-ray support

-v, --verbose Print stats for each frame
--no-progress Don't show the progress indicator while encoding
--quiet Quiet Mode
--log-level Specify the maximum level of logging ["info"]
- none, error, warning, info, debug
--psnr Enable PSNR computation
--ssim Enable SSIM computation
--threads Force a specific number of threads
--sliced-threads Low-latency but lower-efficiency threading
--thread-input Run Avisynth in its own thread
--sync-lookahead Number of buffer frames for threaded lookahead
--non-deterministic Slightly improve quality of SMP, at the cost of repeatability
--cpu-independent Ensure exact reproducibility across different cpus,
as opposed to letting them select different algorithms
--asm Override CPU detection
--no-asm Disable all CPU optimizations
--visualize Show MB types overlayed on the encoded video
--dump-yuv Save reconstructed frames
--sps-id Set SPS and PPS id numbers [0]
--aud Use access unit delimiters
--force-cfr Force constant framerate timestamp generation
--tcfile-in Force timestamp generation with timecode file
--tcfile-out Output timecode v2 file from input timestamps
--timebase <int/int> Specify timebase numerator and denominator
Specify timebase numerator for input timecode file
or specify timebase denominator for other input
--dts-compress Eliminate initial delay with container DTS hack

Filtering:

--vf, --video-filter //... Apply video filtering to the input file

Filter options may be specified in :
= format.

Available filters:
crop:left,top,right,bottom
removes pixels from the edges of the frame
resize:[width,height][,sar][,fittobox][,csp][,method]
resizes frames based on the given criteria:
- resolution only: resizes and adapts sar to avoid stretching
- sar only: sets the sar and resizes to avoid stretching
- resolution and sar: resizes to given resolution and sets the sar
- fittobox: resizes the video based on the desired constraints
- width, height, both
- fittobox and sar: same as above except with specified sar
- csp: convert to the given csp. syntax: [name][:depth]
- valid csp names [keep current]: i420, yv12, nv12, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb
- depth: 8 or 16 bits per pixel [keep current]
note: not all depths are supported by all csps.
- method: use resizer method ["bicubic"]
- fastbilinear, bilinear, bicubic, experimental, point,
- area, bicublin, gauss, sinc, lanczos, spline
select_every:step,offset1[,...]
apply a selection pattern to input frames
step: the number of frames in the pattern
offsets: the offset into the step to select a frame
see: [url]http://avisynth.org/mediawiki/Select#SelectEvery[/url]

Press any key to continue . . .
This shows all the settings / presets / features that x264.exe can provide.
Similarly, you can get the same info for other (.exe) files.

Command for neroAacEnc.exe help:

code:
neroAacEnc.exe -help
@pause
Command for ffmpeg.exe help:

code:
ffmpeg.exe -h full
@pause
It will prove quite eye straining at first, as there are hell of settings etc. Once you get used to it, it’ll become a routine work.
Good news you don’t have to go through this necessarily, I’ll tell you what commands to use to encode a file. Rest is for your own interest.

Commands for Encoding a File

I’ll keep things focused to CLI so I’ll just tell what command to write rather than detailing about why using what features etc.

a) Video Encoding – Command

code:
x264 --level 5.1 --preset veryslow --tune animation --crf 23.0 --min-keyint 12 --scenecut 45 --bframes 8 --b-adapt 2 --ref 10 --weightp 2 --qpmin 10 --qpmax 51 --qcomp 0.6 --rc-lookahead 40 --direct auto --aq-mode 1 --aq-strength 0.8 --merange 24 --me umh --subme 10 --trellis 2 --psy-rd 0.40:0.60 --acodec none --output "Output.mkv" "Input.mkv"
- Input.mkv will be the file you want to encode.

- Output.mkv will be the file (video only) you’ll get after encoding is done. Name it whatever you want, except that it shouldn’t be the same as Input.mkv name. If the output name is same it will replace the input.mkv immediately and you’ll lost your input file resulting in no encoding and lost of input file.

Usually, you can encode audio by x264.exe, but I have disabled it. I use neroAacEnc.exe to encode audio separately.

b) Audio Encoding – Command

code:
ffmpeg -i Input.mkv -f wav -| neroAacEnc -ignorelength -lc -q 0.4 -if - -of Output_Audio.aac
- Input.mkv is the same file you used for Video Encoding.

- Output_Audio.aac will be the file (audio only) you’d get after audio encoding.

c) Merging files – Command

code:
mkvmerge -o "Final_File.mkv" --language "0:jpn" --track-name "0:Hi10 Encode @ CRF 23" "Output.mkv" --no-chapters --language "0:jpn" --track-name "0:2.0 AAC-LC @ 0.4" "Output_Audio.aac" -A -D --language "2:eng" --track-name "2:Styled Subtitle (.rear end)" "Input.mkv"
- Final_File.mkv will be file (including video, audio, subs, fonts, chapters) you’d get after merging.

- Output.mkv is the file you get from Video Encoding.

- Output_Audio.aac is the file you get from Audio Encoding.

- Input.mkv is the file you already have. (Source file you wanted to encode.)

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN
thats a stupid way of doing it you can use ffmpeg for everything (except audio i guess unless you use ffmpeg's lovely aac encoder)

echinopsis
Apr 13, 2004

by Fluffdaddy
fart fart mpeg

Assepoester
Jul 18, 2004
Probation
Can't post for 10 years!
Melman v2
http://www.tested.com/tech/gaming/456719-best-crt-retro-games/

Tested did a huge effortpost on the Sony CRT monitor and the XRGB Mini and I think they've basically been lurking this thread. They also explain 240p thusly:

"Older consoles manipulate the NTSC timing to force the lines drawn on screen to overlap, rather than alternate," writes Daniel Corban, who, like Reich, is self-taught in the intricacies of video hardware. "This is where the term 'double strike' would originate; the lines are literally being repeatedly drawn on the same physical area of the tube. This is also what creates scanlines. On a digital display, the signal is simply handled as a 240-line progressive signal, hence '240p.' "

movax
Aug 30, 2008

Quine Connoisseur posted:

if you write one you should contribute it to ffmpeg/libav


pagancow posted:

You can write one easily, just dont post the binary

source code is ~free speech~

no no, not some peasant software decoder i meant hdl as in vhdl/verilog to throw it on a fpga or something

build your own stb that you can upgrade the hardware decoding in at any point :getin:

Beeftweeter
Jun 28, 2005

OFFICIAL #1 GNOME FAN

movax posted:

no no, not some peasant software decoder i meant hdl as in vhdl/verilog to throw it on a fpga or something

build your own stb that you can upgrade the hardware decoding in at any point :getin:

good luck finding a hevc broadcast then if youre not going to share :colbert:

Qwertycoatl
Dec 31, 2008

i don't need a hevc broadcast i can watch foreman.h265 over and over again

Adbot
ADBOT LOVES YOU

pagancow
Jan 15, 2001

Video Stymie

You can find .r3d files pushed around at the reduser.net forums, so you could test what it would really be like to compress nicely made images into hevc.

if there was an encoder that wasome some CLI bs lol like i'm going to learn the cli

  • Locked thread