Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
couleurm committed Jan 19, 2024
2 parents 3a983f2 + 8a18b39 commit ca5ddb4
Show file tree
Hide file tree
Showing 24 changed files with 303 additions and 289 deletions.
9 changes: 5 additions & 4 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ This website was not made to thoroughly index and review every single available

You can contact us about your idea:

* <div class="annotate" markdown>Send your idea(1) in the [CTT Discord](https://discord.gg/CTT)'s `#suggestions` forum or [in DMs](./contact.md#couleur)</div>
* <div class="annotate" markdown>Send your idea in the [CTT Discord](https://discord.gg/CTT)'s `#suggestions` forum or [in DMs](./contact.md#couleur)(1)</div>

1. I what you're writing is beyond Discord's (2000, or 4000 w/ nitro) character limit make a [Cryptpad](https://cryptpad.fr/pad/) page
1. If what you're writing is beyond Discord's 2000 character limit (4000 w/ nitro) make a [Cryptpad](https://cryptpad.fr/pad/) page

Or do most of the work:

Or do most of the work by

1. [Fork `couleur-tweak-tips/CTT` on GitHub](https://github.com/couleur-tweak-tips/CTT/fork)

2. Contributing your fix/idea and [opening a pull request](https://github.com/couleur-tweak-tips/CTT/pulls)
2. Contributing your fix / idea and [opening a pull request](https://github.com/couleur-tweak-tips/CTT/pulls)

: Doing this implies you respect the following:

Expand Down
3 changes: 1 addition & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ These resources have been created with two types of people in mind:
* Curious individuals who enjoy reading, doing, and learning.
* Those who prefer quickly configuring programs to adhere to recommended standards; some guides offer automated versions in the form of PowerShell scripts.

This website has been meticulously curated over the years, it evolved from a [crowded discord server](https://twitter.com/CouleurMinemen/status/1521966698047418377)
This website has been meticulously curated over the years, it evolved from a [crowded discord server](https://discord.gg/ctt)

This website evolved from a [crowded discord server](https://twitter.com/CouleurMinemen/status/1521966698047418377) over the years and turned into a meticulously curated repository of useful knowledge.

<!--
<div class="grid cards" markdown>
Expand Down
5 changes: 2 additions & 3 deletions docs/software/scoop.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ A command-line program installer for Windows
* unlike Chocolatey it does not require you to run it as admin.
* unlike Winget you can install your own programs
* All apps are contained in `%USERPROFILE%\Scoop`{ data-clipboard-text="%USERPROFILE%\Scoop" } folder (per default, I recommend [installing on a non-windows drive](https://github.com/ScoopInstaller/Install#advanced-installation))
* All software you install are in a portable factor (except the ones that end in -np, **n**on **p**ortable)

* All software you install is in a portable factor (except the ones that end in -np, **n**on **p**ortable)

Installing it is as easy as pasting this in PowerShell:
```PowerShell
Expand Down Expand Up @@ -50,4 +49,4 @@ The following apps auto-update and mess with Scoop's update system:
* Heroic Games Launcher
* Telegram (not chromium but it also has auto updates)

You can use `scoop hold <app>`{ data-clipboard-text="scoop hold " } to *"hold an app to disable updates"*
You can use `scoop hold <app>`{ data-clipboard-text="scoop hold " } to *"hold an app to disable updates"*
24 changes: 12 additions & 12 deletions docs/video/codecguide.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,28 @@ When modifying videos(1), you are **re-encoding** your video, which often gets y

1. This means using (up)scale scripts, [Smoothie](./smoothie/index.md), or exporting a NLE project to a video file, this does not concern LosslessCut.

Think about encoded video data like a tightly-packed suitcase :fontawesome-solid-suitcase:, you need to unpack it into raw data in order to change anything(1) in it , and then re-encode this new data into a codec again.
Think about encoded video data like a tightly-packed suitcase :fontawesome-solid-suitcase:, you need to unpack it into raw data in order to change anything(1) in it, and then re-encode this new data into a codec again.
{ .annotate }

1. Not necessarily for particular scenarios: tools like [LosslessCut](https://mifi.no/losslesscut/) can make cuts every I-frame which is where the compression resets and does not need to re-encode the whole video.

The choice depends on your hardware (do you own an NVIDIA GPU?), what you're uploading to (is it compatible YouTube, Twitter?),
how much quality you're ready to lose (lossless means no compression artifacts) and long you want to wait (can you let your PC render overnight?)
The choice depends on your hardware (do you own an NVIDIA GPU?), what you're uploading to (is it compatible with YouTube, Twitter, etc?),
how much quality you're ready to lose (lossless means no compression artifacts) and how long you want to wait (can you let your PC render overnight?).

Each codec has it's own pros and cons:


| Features | H.264 / AVC | H.265 / HEVC | AV1 | UTVideo |
|------------------------------------|:--------------------:|:--------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------:|
| Fast at encoding[^1] | :material-check-all: | :material-check: | :fontawesome-solid-equals: Only fast when encoding a compatible GPU | :material-check-all: |
| Fast at encoding[^1] | :material-check-all: | :material-check: | :fontawesome-solid-equals: Only fast when encoding with a compatible GPU | :material-check-all: |
| Filesize/Visual fidelity ratio[^2] | Worst out the bunch | :material-check-all: | :material-check-all: | Lossless,<br>makes huge files |
| Compatibility[^3] | :material-check-all: | :fontawesome-solid-equals: Works in *some* video players | :material-close: AFAIK Only recent Davinci Resolve versions [support importing it](https://www.reddit.com/r/premiere/comments/10jh4gj/comment/jyvdd0i/) | You may need to [install it](https://github.com/umezawatakeshi/utvideo/releases/tag/utvideo-23.1.0) |
| Decoding speed[^4] | :material-check-all: | Worst out the bunch | :material-check: | :material-check-all: It's only got full fat I-frames, resulting in super fast decoding |

[^1]: **General rule of thumb** of how long you're expected to wait while it's encoding. Note that with a touch of configuration the same codec can be lightning speed and excruciatingly slow
[^2]: Most important metric when streaming since you have a very limited bandwith budget unlike recording on disk/SSD
[^3]: Mostly concerns being able to import videos in your video editor, uploading to Twitter and being able to embed Discord (aka to play back directly without the need to download). YouTube supports pretty much everything since it re-encodes after.
[^4]: Important to consider while video editing so videos play back fast in your preview
[^1]: **General rule of thumb** of how long you're expected to wait while it's encoding. Note that with a touch of configuration the same codec can be lightning speed or excruciatingly slow.
[^2]: Most important metric when streaming since you have a very limited bandwith budget unlike recording on disk/SSD.
[^3]: Mostly concerns being able to import videos in your video editor, uploading to Twitter, and being able to embed on Discord (aka to play back directly without the need to download). YouTube supports pretty much everything since it re-encodes after.
[^4]: Important to consider while video editing so videos play back fast in your preview.


## :fontawesome-solid-microchip: Hardware-accelerated encoding { #hwenc }
Expand All @@ -46,7 +46,7 @@ You might've also noticed `NVENC`, `AMF` and `QuickSync` being mentioned after H

:material-minus: Worse filesize / visual fidelity ratio than CPU counterpart

Note that AV1 Encoding is only available on last-gen cards
Note that AV1 Encoding is only available on last-gen cards.


??? question ":simple-nvidia: Should I get an RTX 4000 card for it's AV1 encoder?"
Expand All @@ -68,7 +68,7 @@ Unless you are recording lossless (HUGE files), you need a way to constrain the

`CRF` / `CQP`: Constrained rate factor / Constant quantizer

: The new prefered rate control for recording to disk, as it adapts to the "bandwith-hungryness" of the content, e.g standing still in front a wall in a video-game will write way less data than when you're spinning and doing a bunch of 360s.
: The new prefered rate control for recording to disk, as it adapts to the "bandwith-hungryness" of the content, e.g. standing still in front a wall in a video-game will write way less data than when you're spinning and doing a bunch of 360s.

It's some complex math stuff

Expand All @@ -84,11 +84,11 @@ Unless you are recording lossless (HUGE files), you need a way to constrain the
**Exporting w/ Voukoder**: `H265 NVENC` + Upscaling(1) Whatever video editor which supports Voukoder this is a great middleground
{ .annotate }

1. This mentions one of my Voukoder presets that can be installed with my installation script that have an additional filter which (up)scales to 4K and encode on the fly without needing for a second encode with a batch script
1. This mentions one of my Voukoder presets that can be installed with my installation script that has an additional filter, which (up)scales to 4K and encode on the fly without needing to encode again with a batch script

## Voukoder & Smoothie encoding presets { #encodingpresets }

* **Smoothie**: Find about them in [`target/encodingpresets.ini`](https://github.com/couleur-tweak-tips/smoothie-rs/blob/main/target/encoding_presets.ini)
* **Smoothie**: Find them in [`target/encodingpresets.ini`](https://github.com/couleur-tweak-tips/smoothie-rs/blob/main/target/encoding_presets.ini)

These directly translate to FFmpeg arguments, also add the `4K` macro to add upscaling arguments

Expand Down
10 changes: 5 additions & 5 deletions docs/video/ffmpeg/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ icon: custom/ffmpeg

FFmpeg is most known for being a tool for handling multimedia (notably <u>A</u>udio & <u>V</u>ideo). It's a swiss army knife when used in scripts.

It's backbones, LibAV, lets other program make use of it's wide capabilities (e.g Voukoder does).
It's backbones, LibAV, lets other programs (e.g Voukoder) make use of it's wide capabilities.


It can do any and all of these at once:

* Convert from a [codec](../codecguide.md) to another, or simply `copy` to transfer it without touching it(1) (`-c`)
* Convert from one [codec](../codecguide.md) to another, or simply `copy` to transfer it without touching it (`-c`)
* Cut videos (LosslessCut uses FFmpeg for that) (`-ss` `-to`)
* Add/remove/merge audio/video/subtitle tracks (e.g multiple `-i`/`-input`)

Expand Down Expand Up @@ -50,9 +50,9 @@ And [a lot, a lot of other useful stuff](https://ffmpeg.org/ffmpeg-all.html)

There are three main "[fftools](https://git.ffmpeg.org/gitweb/ffmpeg.git/tree/HEAD:/fftools)":

* `ffmpeg`: for handling audio, videos.. the swiss army knife
* `ffplay`: a video player that makes use of ffmpeg's decoding abilities
* `ffprobe`: probing tools to gather information on a video/audio file's formats and specifications
* `ffmpeg`: For handling audio, videos, etc. The swiss army knife
* `ffplay`: A video player that makes use of ffmpeg's decoding abilities
* `ffprobe`: Probing tools to gather information on a video/audio file's formats and specifications

## Scripts

Expand Down
21 changes: 11 additions & 10 deletions docs/video/ffmpeg/upscaling.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ icon: fontawesome/solid/arrow-up-right-dots
# Why bother upscaling for YouTube?


Scaling your video to twice it's resolution (e.g `1080p` :material-arrow-right: `2160p` / 4K) tricks YouTube into giving your video more bitrate. This is only useful for YouTube,
Scaling your video to a larger resolution (e.g `1920x1080`/`1080p` :material-arrow-right: `3840x2160`/4K) tricks YouTube into giving your video more bitrate.

==It won't make your video look any better than when you're viewing it back on VLC, it'll just <u>looks less compressed/more faithful on YouTube</u>==.
==This is only useful for YouTube, because it won't make your video look any better than when you're viewing it back in a media player, it'll just <u>looks less compressed/more faithful on YouTube</u>==.

**This should be done at the very last step of every project, right before uploading**, there's only downsides to be editing 4K content that's been scaled.
**This should be done at the very last step of every project, right before uploading**. There's only downsides to editing 4K content that's been scaled.

## :material-folder-download: Installation

Expand All @@ -21,7 +21,7 @@ Scaling your video to twice it's resolution (e.g `1080p` :material-arrow-right:
* Install [FFmpeg](./index.md) with [Scoop](https://scoop.sh)
* Save the upscaling script in the [Send To folder](../sendto.md)

Paste the following command in a PowerShell window, (it doesn' need to be as an Administrator):
Paste the following command in a PowerShell window, (it doesn't need to be as an Administrator):

```PowerShell title="Automatic upscaler installer"
iex(irm tl.ctt.cx); Get Upscaler
Expand All @@ -34,18 +34,18 @@ Scaling your video to twice it's resolution (e.g `1080p` :material-arrow-right:
2. Save [this batch file](https://github.com/couleur-tweak-tips/utils/blob/main/Miscellaneous/CTT%20Upscaler.cmd) as a .cmd file, it's recommended to save it in either:

* Your [Send To folder](../sendto.md)
* Or saving it wherever and dragging the video file(s) you wish to use with it
* Or saving it wherever and then dragging video(s) onto it

Your browser might make it a text file e.g `.cmd.txt`, show file extensions in your if explorer if it still opens notepad when double clicking it
Your browser might make it a text file e.g `.cmd.txt`, show file extensions in your if explorer if it still opens Notepad when double clicking it.

Smartscreen will always warn you about the batch files you download online
Smartscreen will always warn you about the batch files you download online.

## Comparison

Here are two videos, one was left as is, the other one stretched to 4K, watch it in fullscreen with the <kbd>Settings</kbd> -> <kbd>Quality</kbd> option maxed out.
=== "1080p"

<iframe width="688" height="387" src="https://www.youtube.com/embed/ohjz9Kff7lo" frameborder=0 allowfullscreen></iframe>
<iframe width="688" height="387" src="https://www.youtube.com/embed/ohjz9Kff7lo?color=white" frameborder=0 allowfullscreen></iframe>


=== "1080p stretched to 4K"
Expand All @@ -57,5 +57,6 @@ Here are two videos, one was left as is, the other one stretched to 4K, watch it

VEGAS Pro (and probably other NLEs) uses the bicubic scaling filter which makes your video a bit blurry, using FFmpeg lets you make sure you're using the right filter

> :custom-voukoder: **Why not use Voukoder's zscale?**
__You ideally **should** use it __over the batchscript you can install in this guide, since it will export your project and upscale it all at once, which should take less time and lose less efficiency, more info @ <#1022956596768288919>
## :custom-voukoder: **Why not use Voukoder's zscale?** {#why-not-voukoder}

You ideally **should** use it over the batchscript you can install in this guide, since it will export your project and upscale it all at once, which should take > less time and lose less efficiency, more info on Discord @ <#1022956596768288919>
6 changes: 3 additions & 3 deletions docs/video/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ This category is dedicated to document optimal configurations of programs for cr
## :material-book: Definitions

### :material-run-fast: Frame blending
The most common, it is without (unlike other methods like RSMB) any smearing of HUDs or general artifacting. Commonly this is done from a very high FPS (e.g. 540) down to a common FPS, i.e. 60 or 30.
The most common form of motion blur, it is without any smearing of HUDs or general artifacting (unlike other methods like RSMB). Commonly this is done from a very high FPS (e.g. 540) down to a common FPS, i.e. 60 or 30.

In general, the higher the input FPS, the smoother the final output would be, due to more blur frames making the blur look more seamless. Blur frames are how many frames are blended together, so `blur frames = input fps / output fps`.

Video editors such as Vegas Pro and Adobe Premiere Pro have these features built-in. However, we recommend using seperate programs such as [Smoothie](./smoothie/index.md) first to pre-render the videos, therefore you don't have any lag in your video editor as well as having much more customisation.
Video editors such as Vegas Pro and Adobe Premiere Pro have these features built-in. However, we recommend using seperate programs such as [Smoothie](./smoothie/index.md) first to pre-render the videos, therefore you don't have any lag in your video editor as well as having much more customization.

### :material-select-multiple: Interpolation

Video interpolation is a video processing technique that creates new frames between existing ones, effectively increasing the video's frames per second (FPS) using algorithms or AI.
Video interpolation is a video processing technique that creates new frames between existing ones, effectively increasing the video's FPS using algorithms or AI.

[RIFE](https://github.com/megvii-research/ECCV2022-RIFE) and the [SVP](https://www.svp-team.com) algorithm are commonly implemented into frame blending applications to interpolate.

Expand Down
6 changes: 3 additions & 3 deletions docs/video/obs/advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ icon: obs/advanced

I'm not that knowledgeable regarding all the color formats, spaces and ranges, contributions welcome.

* `Colour Format`: <kbd>NV12 (8-bit, 4:2:0, 2 planes)</kbd>
* `Color Format`: <kbd>NV12 (8-bit, 4:2:0, 2 planes)</kbd>

: If you want super crisp colors you can try <kbd>I444</kbd>, normally NV2/I420 records color (chroma) planes at half the resolution of the light (luma) planes. Learn about more [:simple-wikipedia::Chrominance](https://en.wikipedia.org/wiki/Chrominance)

* `Colour Space`: <kbd>sRGB</kbd>
* `Color Space`: <kbd>sRGB</kbd>

* `Colour Range`: <kbd>Limited</kbd>
* `Color Range`: <kbd>Limited</kbd>

: <kbd>Full</kbd> tends to look a bit more saturated when converted around, which some people like.
2 changes: 1 addition & 1 deletion docs/video/obs/audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ There's three types of audio to capture:

* Microphone / webcams: sound you produce by speaking
* Desktop audio: mix of all audio sources from apps
* Application audio capture [BETA]: Lets you have audio sources per program, which you can then
* Application audio capture [BETA]: Lets you have audio sources per program, which you can then use with multiple audio tracks to separately modify them in your video editor.

<iframe width="688" height="387" src="https://www.youtube.com/embed/yoXvk7ix4RQ?start=4&end=152&color=white" frameborder=0 allowfullscreen></iframe>
Loading

0 comments on commit ca5ddb4

Please sign in to comment.