====== Video Control ======
===== Projectors =====
==== Terminology ====
* **Definition**: Total number of pixels in an image (e.g. 1920×1080, 3840×2160). Often incorrectly referred to as "resolution" in English.
* **Resolution**: Pixel density per unit (e.g. DPI – dots per inch).
==== Key Specifications ====
* **Contrast Ratio**: Ratio between brightest and darkest output (e.g. 2000:1, 4000:1). Higher values improve perceived image depth.
* **Brightness**: Measured in lumens.
* ~1500 lumens: suitable for dark environments (home cinema)
* >3000 lumens: recommended for environments with ambient light
* **Definition (Format)**:
* FHD (1920×1080) minimum standard
* Higher than source → no benefit
* Lower than source → visible quality loss
* **Noise Level**: Measured in dBA.
* Typical acceptable range: 25–28 dBA
* Manufacturer values may be optimistic
* **Throw Ratio**:
* Formula: **Throw Ratio = Distance / Image Width**
* Example: ratio 1.5 → 1m width at 1.5m distance
* Defines projection size range depending on placement
==== Image Processing Options ====
* **Overscan**: Crops image edges and scales slightly beyond source resolution
----
===== NDI =====
* **NDI Monitor**:
* Provides preview (low-resolution proxy)
* Not suitable for full-quality signal transmission
----
===== Software =====
* LPMT (Linux Projection Mapping Tool)
* Millumin
* Resolume Arena
* MadMapper
* QLab
* Modulo Kinetic / Modulo Player
* mplayer (video playback)
----
===== FFmpeg =====
=== Re-encode into Apple ProRes ===
ffmpeg -i input.mp4 -vcodec prores -acodec copy output.mov
=== Rotate Video ===
ffmpeg -i input-video.mp4 -vf "transpose=1" output-video.mp4
* 0 → 90° CCW + flip
* 1 → 90° CW
* 2 → 90° CCW
* 3 → 90° CW + flip
=== Control Quality (CRF) ===
* CRF range: 0 (lossless) → 51 (worst)
* Typical values: 15–20
=== Trim Video ===
To create a 1min clip starting 1min into the video:
ffmpeg -i input-video.mp4 -c:v libx264 -crf 15 -c:a aac -ss=60 -t=60 output-video.mp4
=== ffmpeg commands ===
$ffmpeg -codecs
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression
$ffmpeg -encoders
V..... = Video
A..... = Audio
S..... = Subtitle
.F.... = Frame-level multithreading
..S... = Slice-level multithreading
...X.. = Codec is experimental
....B. = Supports draw_horiz_band
.....D = Supports direct rendering method 1
$ffmpeg -h encoder=libx264 //list all options on encoder
----
===== Signal Formats & Bitrates =====
{{regie:video_formats_bitrates.png?500}}
----
===== Color Pipeline (Bit Depth, Color Space, Gamma) =====
==== Bit Depth ====
* Defines **precision of color values**
* 8-bit → 256 levels per channel
* 10-bit → 1024 levels per channel
* Benefits of 10-bit:
* Smoother gradients
* Reduced banding
* Better fades (especially on LED displays)
* Important:
* Bit depth does **not** define color range
* It improves **how smoothly colors transition**
----
==== Color Spaces ====
* **Rec.709**
* Standard HD color space
* Used in most video and LED workflows
* Predictable and widely supported
* **Rec.2020**
* Wider color gamut (UHD / HDR)
* Enables more saturated colors
* Requires full pipeline support (rare in real-time systems)
* Key distinction:
* Color space = **range of colors available**
* Bit depth = **precision within that range**
----
==== Gamma / Transfer Function ====
* Defines how brightness is encoded
* Common values:
* **Gamma 2.4** → video standard (recommended baseline)
* **Gamma 2.2 / sRGB** → desktop environments
* **PQ / HLG** → HDR workflows
* In real-time playback systems:
* Gamma is often assumed, not explicitly managed
----
==== Practical Notes (Real-Time & LED Workflows) ====
* Most pipelines are effectively **Rec.709-based**
* Color management is usually **not enforced**
* Wide gamut (Rec.2020) only useful if:
* Playback engine supports it
* Signal chain preserves it
* Display can reproduce it
* Otherwise:
* Colors may be clipped or altered
----
==== Validation (10-bit Workflow) ====
* Use a **10-bit grayscale gradient test pattern**
* Interpretation:
* Smooth gradient → full pipeline is 10-bit
* Banding → limitation exists in:
* media encoding
* GPU output
* signal chain (HDMI/SDI)
* processor
* display
----
==== Notes ====
* **sRGB**:
* Close to Rec.709 but not identical
* Not relevant in video signal pipelines
* **HDR (Rec.2020 + PQ/HLG)**:
* Requires full end-to-end support
* Not guaranteed in real-time playback systems
----