Video Setup Guide
This page is best viewed with a PC web browser.
Technologies
Please read the Video Formats and Transports sections before you embark on the Setup section below it, so you understand the terms and concepts mentioned.
For simplicity, the term âHTPCâ here means a PC, not a streaming device, like a Roku/Fire TV/etc, except where noted.
x264: Also known as h.264/MPEG-4 AVC. A very common lossy video compression codec. Used in Netflix, newer HD blu-ray discs and ATSC 1.0 OTA. Optimal for resolutions <= 1080p.
x265: Also known as h.265/MPEG-H HEVC. The successor to AVC with better, but still lossy, compression. Used in 4k Netflix, UHD blu-ray discs and ATSC 3.0 OTA. Optimal for resolutions >= 1440p.
Xvid/Divx: Also known as h.263/MPEG-4 Part 2. Xvid is an open-source version. An old compression codec commonly used in AVI and Divx containers.
VC-1: Used in newer HD blu-ray discs
VP9: A compression codec used on Youtube
AV1: A modern, lossy compression codec currently with limited support. The successor to HEVC and VP9
MPEG-2: Also known as h.262/MPEG-2 Part 2. A low compression codec. Used in DVDs, old HD blu-ray discs and ATSC 1.0 OTA. Commonly used with the TS container
Video Containers
MP4: Modern video container supporting a single video/audio/subtitle stream. Commonly used with the AVC/h264 video codec and AAC audio codec.
MKV: A modern video container supporting multiple video/audio/subtitle streams. Menu/chapter support.
AVI: An old video container supporting a single video/audio stream. No subtitle stream support. Usually used with Xvid/Divx codec.
DIVX: An old video container extension of AVI. Used on some old DVDs. Usually used with Xvid/Divx codec.
VOB: A video container for DVDs using MPEG-2 or MPEG-1.
TS: Also known as MPEG-TS. Used with MPEG-2 codec for tv broadcasts.
M2TS: An extension of MPEG-TS. Used with old HD blu-ray discs and MPEG-2.
BDMV/BDAV: Used in HD/UHD blu-ray discs. BDMV has menu capability, BDAV does not and is a modified MPEG-2 TS container using x264, MPEG-2 or VC-1.
Video Frame rates/Bit rates
Frame rates
Commonly known as FPS or Frames Per Second. Do not confuse this with Refresh Rate; they are related, but not the same thing. Frame rate refers to Content,
Refresh rate refers to Displays. The refresh rate should be either equal to the frame rate or greater than it by an whole number multiplier (120Hz for 24fps (5x)). A refresh rate greater than it by anything else (60 Hz for 24 fps (2.5x)) can cause a Judder effect.
FRAME RATE |
USE |
NOTES |
23.976/24 |
Movie content (common) - Local or Streaming, Youtube (rare) |
Usually upconverted to 60i on TVs through a process known as 2:3/3:2 pulldown. |
25 |
TV content - Local, Streaming or Broadcast TV (outside US/Central America/SE Asia), Youtube (rare) |
European standard used in PAL color-encoding for 576i |
29.97/30 |
TV content (common) - Local, Streaming or Broadcast TV (US/Central America/SE Asia), Youtube (rare) |
Standard used in NTSC color-encoding. Interlaced to 60 fps for TV |
48 |
Movie content (very rare) |
< 10 movies |
60 |
Youtube [TV] content (common), Broadcast TV/Streaming - Live Events, Movie content (very rare) |
60i (cable/sat), < 10 movies |
Bit rates
An aggregation of video content information encoded in a pixel over time. Usually referenced in Mbps.
A lower bitrate indicates less video information which can induce video artifacting, blurring, and color banding
A decent bitrate for 1080p AVC/x264 content is 5 Mbps. A high bitrate is 25 Mbps.
A decent bitrate for 4K HEVC/x265 content is 20 Mbps. A high bitrate is 100 Mbps.
It is recommended to aim for at least 0.1 bits per pixel (BPP) when encoding video content. Video with lots of motion or scenes that are prone to color banding (sky, under-water) will require higher BPP.
You can calculate video bitrate by applying the formula
Resolution width * Resolution height * fps * bpp / 1000000 = Mbps
e.g. 1920 * 1080 * 23.976 * 0.1 / 1000000 = 5 Mbps
Video Transports/Interfaces
HDMI 1.4: Digital. 10 Gbps. 4K @ 30 Hz
HDMI 2.0: Digital. 18 Gbps. 4K @ 60 Hz. HDR
HDMI 2.1: Digital. Up to 48 Gbps. 4K @ 144 Hz. HDR+
Displayport 1.2 (native): Digital. Displayport on both ends. 20 Gbps. 4K @ 60 Hz
Displayport 1.4 (native): Digital. Displayport on both ends. 32 Gbps. 4K @ 120 Hz. HDR
Displayport (Alternate mode): Digital. Displayport/USB->HDMI cable/adapter
HDCP: Copy-protection/DRM required for Disc playback and most commerical streaming services, in all devices of video chain. Supported on DVI, HDMI, DP interfaces. 2.x required for 4k media.
HDR Types
HDR10: Very common. Very compatible. Static Metadata. 400-4000 cd/m2. 10-bit color.
HDR10+: Not common. Dynamic Metadata. 1000-4000 cd/m2. 10-bit color. Not playable on a HTPC
Dolby Vision: Very common. Not very compatible, esp. with local content. Dynamic Metadata. 1000-4000 cd/m2. 12-bit color. Not playable on a HTPC
HLG: Not common. No metadata. SDR & HDR in same signal. 1000 cd/m2 nominal. 10-bit color.
Wiki:FAQ:What is HDR video and what do I need to take advantage of it?
Color Technologies
- Color Primaries:
a. Rec 709 (1080p/4k 8/10-bit SDR)
b. sRGB (8-bit SDR, Windows default)
c. P3 (8/10-bit SDR/HDR)
d. Rec 2020 (4k/8k 10/12-bit SDR/HDR)
e. Rec 2100 (1080p/4k/8k 10/12-bit HDR)
- Transfer Functions: Gamma (Rec 709, sRGB), PQ (Rec 2020, Rec 2100), HLG (HLG)
- Formats: ST 2084 (Optional static metadata), ST 2086 (Static metadata), ST 2094 (Dynamic Metadata)
- Technology Combinations (TECHNOLOGY: BIT-DEPTH, TRANSFER FUNCTION, COLOR PRIMARIES, FORMATS)
a. PQ10: 10-bit, PQ, P3->Rec.2020, ST 2084
b. HDR10: 10-bit, PQ, P3->Rec.2020, ST 2084/ST 2086
c. HDR10+: 10/12-bit, PQ, P3->Rec.2020, ST 2094
d. Dolby Vision: 10/12-bit, PQ, P3->Rec.2020, ST 2094
e. HLG: 10-bit, HLG/Gamma, P3->Rec.2020, None
f. DVD/FHD Blu-Ray: 8-bit, Gamma, Rec.709->sRGB, None
g. UHD Blu-Ray: 10/12-bit, PQ, P3->Rec.2020, ST 2084/ST 2086/ST 2094
h. Online Streaming: 8/10/12-bit, Gamma->PQ, Rec.709->Rec.2020, None/ST 2084/ST 2086/ST 2094
Video Hardware
- GPU
- iGPU: A graphics card built into the CPU
- dGPU: A graphics card separate from the CPU. Usually found on a PCIe expansion card.
- eGPU: A graphics card external to the HTPC, connected to it via USB/Thunderbolt.
- Display
Video Software
See also: Audio Software
Media Servers
- Plex - Media server software that streams content out to clients. Distinguishing features include:
- Support for Windows, Linux, Mac, Docker
- Support for live tv via tv tuners
- Automatic scanning of video content directories
- Automatic retrieval of metadata content (posters, descriptions, trailers) from the internet
- Real-time transcoding video/audio down to other containers, codecs, resolutions and bitrates via CPU/GPU.
- Streaming of video content to remote video clients
- Support for playback via windows, linux and web browser clients
- Additional pay-for features such as Hardware Transcoding, Intro skip, Credit skip, DVR, Premium Music, and Offline Downloads
- HDR tonemapping, Media collections, Subtitle support
- Closed source
- Jellyfin
- Decent media server alternative to Plex, but not as polished or supported across clients.
- Support for Windows, Linux, Mac, Docker
- GPU transcoding support is free.
- Streaming of video content to remote video clients requires direct access to server.
- HDR tonemapping support
- Open source
- Emby
- Decent media server alternative to Jellyfin/Plex, but not as polished, or supported across clients for free.
- Support for Windows, Linux, Mac, Docker
- Additional pay-for features such as Hardware Transcoding, DVR, Offline Downloads and Sync.
- Closed source
- DLNA
- Simple, widely supported across hardware and platforms. Varying degress of features (metadata, transcoding, etc..)
- Built into Windows (media streaming); Universal Media Server, Serviio
Players
- Kodi - An open source media player/center.
- Support for Windows, Linux, Mac, Android
- Automatic scanning of video content directories
- Automatic retrieval of metadata content (posters, descriptions) from the internet
- Extensive plug-in support
- HDR support, Subtitle support
- MadVR integration
- Keyboard/remote support
- Plex HTPC - A media player that interfaces with the Plex Media Server and plex.tv video content
- Support for Windows, Linux, Mac, Android
- HDR support, Subtitle support
- Keyboard/remote support
- Jellyfin Media Player - A media player that interfaces with the Jellyfin media server
- Support for Windows, Linux, Mac
- HDR support, Subtitle support
- Keyboard/remote support in âTVâ mode
- VLC
- Support for Windows, Linux, Mac, Android
- HDR support
- DVD/Blu-ray folder support
- MPC-BE/MPC-HC
- JRiver Media Center
- Support for Windows, Mac, Linux
- Automatic scanning of video content directories
- Automatic retrieval of metadata content (posters, descriptions) from the internet
- MadVR integration
- HDR support, Subtitle support
- Keyboard/remote support
- Commercial
- MPV
- Support for Windows, Linux, Mac, Android
- Minimal GUI
- HDR support
- PowerDVD
- DVD/Blu-ray/UHD Blu-ray disc support
- PotPlayer
- MadVR integration
- HDR support (via MadVR)
- NOT open source, not recommended
3rd Party
- MediaInfo - Extremely useful tool for getting various video & audio information (codecs, formats, etc..) on media files
- MPC VR - Simple video renderer used to enable HDR passthrough, HDR tonemapping, Resolution/Chroma upscaling, Dithering
- MadVR - Advanced video renderer for HDR passthrough, HDR tonemapping, Resolution/Chroma upscaling, Dithering, Resolution/Refresh Rate Switching.
- SVP - Used to upscale frate-rates for video smoothing
- K-lite - Codec pack including various video software
- Video/audio codecs
- Video/audio filters/splitters/mixers
- MPC VR, MadVR
- LAV Filters - ffmpeg based DirectShow media software including:
- Splitters, Decoders, Filters, Mixers and Compressors
- Automatic stream selection
- Virtual CloneDrive
- Mount ISO files for disc playback support
Setup
Introduction
Hardware Setup
See the AUDIO Setup Guide for different ways of connecting your HTPC to a display and sound system.
Software/OS Setup
Make sure the video driver for your GPU is installed, updated from the GPU vendor, and working.
Set up your app/gpu driver/tv settings for color reproduction. See section below.
Run video calibration tests to make sure the above setup is correct. See section below.
Run motion calibration tests for judder/stutter. See section below.
Configure your video player application for hardware decoding. See section below.
OPTIONAL: Configure your video player application for additional video features. See section below.
Setup For Color Reproduction
You will use this section to set up the resolution, refresh rate, bit-depth and color format for your GPU and Display.
While researching setup of your devices you may have come across confusing terms like YCbCr, RGB, RGB full/limited, black level.
First, letâs get YCbCr and RGB out of the way. These are color spaces for encoding content. RGB treats blacks, whites and colors equally. YCbCr treats blacks and whites differently than colors, in that it compresses colors such that our eyes canât really tell the difference between it and RGB; this saves bandwidth.
YCbCr is common for video content and will get converted to RGB in your media application. RGB is common for games and the desktop. Therefore everything coming out of your media application/desktop to the GPU should be RGB.
Now, to RGB full/limited. In short, RGB full/limited is just different numbering systems to apply to the range of white to black. RGB Full denotes 0 as Black and 255 as White. RGB Limited denotes 16 and below as Black and 235 and above as White.
What makes this confusing is a setting of Full or Limited can be on multiple pieces of your system, more specifically:
- The Application (The video renderer (madVR/MPC VR/EVR CP) in what youâre using to play/decode/render your content, Kodi, Plex, MPC, etc..)
- The GPU driver (nvidia, amd, intel, etc..)
- The Display (TV, Projector)
If you set each piece in the wrong combination, whites and blacks will look wrong, colors will be washed out and/or shadows/details will be diminished.
Hereâs what should be set for the 3 pieces above, depending on your scenario, but use #1 first, where at all possible.
- Scenario #1 - PC Recommended:
- Application: Range: Full (0-255), Bit depth: auto/<display bit depth>
- GPU: Color/Pixel Format: RGB, Range: Full
- Display: Color Space: RGB/Native, Range: Full.
- Scenario #2 - PC Alternate:
- Application: Range: Limited (16-235), Bit depth: auto/<display bit depth>
- GPU: Color/Pixel Format: RGB, Range: Full
- Display: Color Space: RGB/Native, Range: Limited
- Scenario #3 - Media device (roku, shield, fire tv) video content on a TV:
- Application: Limited (16-235), where available
- GPU: Color Space: YCbCr/YUV 422 12-bit
- Display: Limited
To confuse things even more, sometimes Full and Limited are called by other names. We urge you to read a primer on calibration settings which explains more of the terms youâll find in your Display and what theyâre called for each major mfgr. The page at rtings.com is a good one to start with. If you still canât figure out what ranges are available on your Display, assume itâs in Limited range by default unless you change it (like put in PC mode) or your manual says otherwise.
After all that, make the changes based on the above 3 scenarios. As mentioned above, when in doubt, use Scenario #1, as exampled with the following for a PC
- Change your video applicationâs renderer to a Range of Full (0-255). This is the default for all renderers (madVR/MPC VR/EVR CP) unless otherwise changed. Change Bit depth to auto
- Change your Display to:
- If for 4k, Have a HDMI signal format of UHD Deep Color/Input Signal Plus/Enhanced
- Have a color space of RGB/Native (where available) or Auto. Change the input range to Full. As a last resort, put your Display in PC or Game Mode. This will remove a lot of Display processing options, so if this is not desired, you may want to use Scenario #2âs Limited settings for this step and step #3.
- Change your GPU driver settings to a Resolution, Refresh Rate, Color/Pixel Format, Color Depth based on the below for your video interface. Only use ALT: if you know what youâre doing.
- HDMI 1.4: 3840x2160, 30 Hz, RGB, 8-bit : 1920x1080, 120 Hz, RGB, 8-bit (ALT: 10-bit w/color format YCbCr 420)
- HDMI 2.0: 3840x2160, 60 Hz, RGB, 8-bit (ALT: 10-bit w/color format YCbCr 420)
- HDMI 2.1: 3840x2160, 120 Hz, RGB, 10-bit
- Displayport 1.2: 3840x2160, 75 Hz/8-bit - 60 Hz/10-bit, RGB
- Displayport 1.4: 3840x2160, 120 Hz, RGB, 10-bit
- Run the Contrast, Black Level and Gradient tests from Lagom LCD Tests
The above are realistic and recommended settings for each video interface. Higher refresh rates may be possible (e.g. 120 to 144 Hz), where supported by the Display and contingent on proper cables and optimal video cable length and/or a single, direct GPU->Display connection. They are not recommended for media consumption due to stutter/judder problems.
Video Calibration Testing
This section is UNDER CONSTRUCTION.
We know it is tempting to install and configure every software you want to use right away and get on to playing content; but doing everything all at once usually leads to problems which become hard to diagnose once youâve added so many software and configuration layers on top of your base OS.
As such, it is highly recommended to run video calibration tests before you play real content so you know youâve set up the combination of your app/gpu/display properly to get the proper colors, whites/blacks, and motion for the video content you will be playing.
To do this, you should
- Set the proper color conversion/reproduction settings, if you havenât already, from the Setup for Color Reproduction section above.
- Calibrate your display using hardware and software means if you can afford it; else, do a basic calibration of your display in your OS. In Windows, Start->Color Management->Advanced->Calibrate Display
- Choose a video player application to test with. We recommend MPC-BE on Windows and Kodi on Linux.
- Disable Hardware Decoding/Acceleration (DXVA, D3D11, NVDEC, pixel shaders etc..) in your video player application, where at all possible, to minimize the chance of the GPU decoder/renderer messing up colors, blacks and whites. You can re-enable it after youâre done. The options are different depending on your media player. It should be set to Software/None/Acceleration disabled/etc..; see the location for the option(s) in the Hardware Decoding section below.
- Download calibration media like AVS HD 709. Get the MP4 version. At the minimum, extract the tests from the âBasic Settingsâ and âMisc Patterns->Aâ folder.
- Read the AVS manual and then run the calibration tests in your video player application.
- If everything looks good, enable Hardware Decoding/Acceleration in your media player as per the section below. If everything does NOT look good, you messed something up in #1/#2. Go back and re-check/re-try.
- Re-run the AVS calibration tests.
- If everything in the tests look good, start playing some test content. Start with known-good content, like the Jellyfish, Frame Rate, and non-HDR real-world test files below. Work your way up from lower resolutions and common codecs (h264) to the resolutions, codecs, and formats you want to use. For example, start with 1080p:h264:8-bit:SDR, then 1080p:HEVC:10-bit:SDR, then 4k:HEVC:8-bit:SDR. This tiered approach will help you find any potential problems along the way. If youâre dropping frames from the content, consult the dropping frames question below before moving on.
- Return to the Software/OS Setup section above for additional testing.
Motion Calibration Testing
This section is UNDER CONSTRUCTION.
You will first run a test for the presence of motion problems like stutter. You will do this under a no-judder condition where the content frame rate and display refresh rate match. After that you will test for judder itself and how bad it is for you subjectively.
- Set your display (through the GPU driver) to a specific refresh rate equal to the content you want to test. e.g. 23Hz for 23.976fps content, 24Hz for 24fps, etc..
- Test that the refresh rate is set correctly and consistently using this page.
- If testing local content, choose a video player application to test with. We recommend MPC-BE on Windows and Kodi on Linux.
- Play test content and look for any observable motion problems.
- If you see a motion problem, itâs not judder, and likely some form of stuttering. You should solve this problem before you move on. See the section below and repeat the tests.
- If you donât see a motion problem, and you plan to play content on a refresh rate thatâs NOT a multiple of your content frame rate (e.g 24p/25p on 60 Hz, 24p on 25Hz/50Hz), you should continue on to test for judder.
- Set your display (through the GPU driver) to the desired non-multiple refresh rate. e.g. 60 Hz for 24 fps content.
- Test that the refresh rate is set correctly and consistently using this page.
- Play test content and look for any observable judder.
- Judder will likely be present; whatâs important is how bad it is and if itâs something thatâs too distracting that you canât ignore. If you canât ignore it, see the section below and repeat the tests.
- Return to the Software/OS Setup section above for additional testing.
Additional Video Feature Testing
- Make any additional video setting changes you desire (enabling HDR, changing renderers, upscaling, Resolution/Refresh Rate Switching, etc..) and play test content again.
- If everything in the tests do NOT look good, either thereâs something messed up in your GPU color conversion/decoding, your display device is limiting you (e.g. HDR luminance/tonemapping), or your GPU/renderer is limiting you (e.g. aggressive post-processing); perform a full calibration from the Software/OS section above if you havenât already done so, and/or seek help on the sub.
Application-Specific Setup For Hardware Decoding
Most video players have hardware decoding support built-in.
Configuration usually involves a single toggle on the simple side, or, on the advanced side, choosing between DVXA/D3D11/Quicksync and/or choosing your proper GPU Device. Make sure your GPU Device supports hardware decoding for the format(s) youâre trying to play. See the GPU Feature Set Matrix of the Wiki.
If configured correctly, CPU Usage should be low during playback, while GPU Usage (Video Decode) should be non-0. If GPU Video Decode is 0, then hardware decoding is not being used.
MPC-BE:
- View->Options->Internal Filters->Video Decoders->Video Decoder Configuration: Codecs: , Preferred Decoder: 'D3D11, DXVA2' (Win 8+) or DXVA2 (copy-back) (others)
MPC-HC:
- View->Options->Internal Filters->Video Decoder: Hardware Decoder to use: D3D11 (Win 8+) or DXVA2 (copy-back) (others)
- View->Options->Internal Filters->Video Decoder: Hardware Device to use: Automatic (if D3D11) or Your_GPU_Device (DXVA2)
VLC:
- Tools->Preferences->Input/Codecs->Hardware-accelerated decoding: Direct3D11 (Win 8+) or DirectX (others)
Plex:
- Plex HTPC/Plex Media Player
- Settings->Video->Use Hardware Decoding: Enable
- Plex for Windows
- Settings->Player->Use Hardware Decoding: Enable
Kodi:
- Settings->Player->Change to âAdvancedâ config view
- Settings->Player->Videos->Render Method: DXVA/Automatic
- Settings->Player->Videos->Allow hardware acceleration - DXVA2: Enable
- Press âOâ during playback to test for (HW) video decoder
Potplayer: F5 Key->Filter Control->Video Decoder->Built-in Video..->Use DXVA: Enable, Codecs your GPU supports: VLD
Application-Specific Setup For Resolution/Refresh Rate Switching
If the media youâre watching does not have a framerate thatâs a multiple of your refresh rate (e.g. 24p on 60 Hz) you may want your media player to switch your display into the proper refresh rate to eliminate judder and proper resolution to allow your TV to do upscaling.
-
Kodi
Kodi app ->
â Settings -> Player -> Videos
â- Set Settings level to Expert
â- Adjust display refresh rate: On start/stop
â- Sync playback to display: OFF
â Settings -> System -> Display
â- Allow 3:2 pulldown refresh rates: OFF
â- Allow double refresh rates: ON
â- Whitelist:
If you have a 120 Hz GPU & display you can skip 24 Hz and 60 Hz
â- 2160p display: 3840x2160 23.98 Hz, 3840x2160 24 Hz, 3840x2160 50 Hz, 3840x2160 59.94 Hz, 3840x2160 60 Hz
â- 1080p display: 1920x1080 23.98 Hz, 1920x1080 24 Hz, 1920x1080 50 Hz, 1920x1080 59.94 Hz, 1920x1080 60 Hz
-
MPC-BE w/MPC Video Renderer
MPC-BE app ->
â View->Options->Video->Fullscreen
â- Use autochange fullscreen monitor mode: ON
If you have a 120 Hz GPU & display you can set [ 120 ] for 02, 04, 05, 08
ââ 01: [ 23 ] @ <your res>
ââ 02: [ 24 ] @ <your res>
ââ 03: [ 50 ] @ <your res>
ââ 04: [ 29 ] @ <your res>
ââ 05: [ 30 ] @ <your res>
ââ 06: [ 50 ] @ <your res>
ââ 07: [ 59 ] @ <your res>
ââ 08: [ 60 ] @ <your res>
â- Change display mode before starting playback: ON
-
MPC-HC/MPC-BE w/madVR
We assume youâve already installed madVR first. If not, see the instructions in the HDR Setup Guide instead
madVR app ->
â Devices -> Your_Display_Device ->
â- display modes -> switch to matching display mode..when playback starts
Enter all resolutions and refresh rates supported by your display that you want to switch to. If you have a 120 Hz GPU & display you can skip p24 and p60
â- display modes -> list all display..:
ââ 2160p display: 2160p23, 2160p24, 2160p50, 2160p59, 2160p60
ââ 1080p display: 1080p23, 1080p24, 1080p50, 1080p59, 1080p60
- Plex. See here
- Web Browsers: Not available
Application-Specific Setup For HDR/Scaling
HDR Setup Guide
Common Questions
What kind of video is supported for streaming services?
See Wiki:FAQ:What resolution and audio is supported on streaming service X?
Why wonât my video signal remain stable?
Why doesnât my video signal go up to the stated resolution/refresh rate?
- You may be using a bad or inadequately speced HDMI cable. Use a better cable
- Your total HDMI cable length may be too long for the resolution/refresh you want to use. Use shorter cables or cables designed for long runs
- If for 4k: Your Displayâs HDMI port may not be set to the proper signal format. You should set it to UHD Deep Color/Input Signal Plus/Enhanced on the Display (setting name dependent on TV mfgr). If a Sound System is in-between your HTPC and TV, you should set your Sound Systemâs HDMI port to a HDMI Format/4k Signal Format of Enhanced, where available.
- You may have a bad HDMI port on your Display, GPU, or an in-between Sound System. Try a different port.
- Youâre using too many cable segments in the HDMI cable run from the HTPC to Display. You should limit the amount of segments to 2. HTPC->TV would be 1. HTPC->AVR->TV would be 2. HTPC->AVR->Wall jack->TV would be 3. If you have a wall jack behind the TV AND behind the AVR, thatâs 4. You can usually make up for using more segments with shorter/better cables or brush plates instead of wall jacks.
- You GPU driver may be corrupted. Run DDU to remove it fully and then re-install the driver.
- Youâre overclocking your GPU or have a bad GPU.
What are the best algorithms for scaling video?
Video scaling algorithms from Worst to Best (and generally least resource intensive to most) are:
Nearest Neighbor, Bilinear, DXVA, Cubic (Mitchell Netravali), Cubic (BiCubic), Catmull-Rom, Lanczos 2/3, Spline, Jinc, SSIM (downscale), super-xbr, NGU Standard, NGU Sharp.
The Anti-Ringing/AR option added on to any algo is ideal, where available.
These are OBJECTIVE rankings, and not SUBJECTIVE. Visual preferences are subjective i.e. different for each person. Test the algos to find the sweet spot for your own visual and GPU load/noise preferences. Do not go past the recommended algos for your particular GPU without extensive performance testing.
Any algo beyond Jinc will produce diminishing returns compared to the amount of load and noise it subjects your GPU to and may be detrimental to your HT listening environment.
MPC VR will allow you to go up to Jinc. madVR to NGU Sharp.
Why is my video playback stuttering and/or dropping frames?
First, make sure what youâre experiencing is actually stutter and not judder. Watch this video.
- Your content is poorly encoded or has a frame-rate that is mis-matched from your displayâs refresh-rate. Test with known-good test files of varying frame-rates and/or make sure your refresh-rate is a whole number multiple of the frame-rate.
- Youâre using an OLED TV, which can cause stutter due to the nature of the tech. Test with Motion Interpolation enabled on it at various levels.
- You havenât configured your video player to use your GPU to hardware decode video. See application-specific setup above.
- Your GPU doesnât support hardware decoding for the video codecs youâre trying to play and your CPU isnât powerful enough to software decode them. Determine what video codec youâre attempting to decode (using something like MediaInfo) and then see the GPU section of the Hardware Components Guide for what codecs are supported by your GPU. Buy a better CPU or GPU.
- Youâre running on the edge of what your CPU/GPU can do performance-wise for the video bitrates youâre trying to play. The higher the video bitrate, the more stress put on your CPU/GPU. Set your video playerâs process priority to Above Normal. Play lower bitrate videos. Buy a better CPU or GPU.
- Youâre doing too much post-proccessing with your video renderer (MadVR, MPC, EVR, etc..). Do less post-processing - Lower/Disable upscaling/downscaling/dithering techniques (nearest-neighbor/bilinear). Use a more efficient renderer. Buy a better GPU.
- Youâre running your RAM in single-channel mode or havenât dedicated enough RAM to your iGPU. Run 2+ sticks of RAM in dual-channel mode for the best performance. If using an iGPU, dedicate as much RAM to it, in your BIOS, where possible.
- Your CPU/GPU is doing too much work in the background. Audit Task Manager (Windows)/System Monitor (Linux) and disable background tasks and/or processes using the CPU/GPU (updates, antivirus, disk indexing).
- Your video driver is out of date. Update it and/or re-install the driver clean after running DDU.
- If you have an Nvidia GPU, in Nvidia Control Panel -> Manage 3D Settings, Set Vertical Sync: ON, Low Latency Mode:OFF, Power Management Mode: Prefer Maximum.
- If you have an AMD GPU: In Radeon Settings, Display -> Radeon FreeSync: OFF, Graphics -> Enhanced Sync: OFF, Wait for Vertical Refresh: ON, either globally or create a app profile for your video player
- Youâve configured your Windows power plan or Video driver power settings to balanced/power saving. Test with your Windows power plan set to High Performance. Test with your Video driver power management set to maximum performance.
- Your video player isnât good/good at playing the video codec(s) youâre trying to play. Try a different one (MPC-BE, MPC-HC, Kodi, VLC, Jriver, MPV)
- Use the SVP (Smooth Video Project) filter to up-convert the contentâs fps (e.g. 23.976 fps to 60 fps) before it gets to the display; this is Motion Interpolation, and its effect is unliked by some. Alternatively, you can try madVRâs frame blending feature in the rendering->smooth motion section of its settings.
How do I fix judder on my htpc?
First, make sure what youâre experiencing is actually judder and not stutter. Watch this video.
If you do have judder, then do one or more of the following..
- Your content is poorly encoded. Test with known-good test files of varying frame-rates and/or make sure your refresh-rate is a whole number multiple of the frame-rate.
- Configure your video players to switch the video card refresh rate automatically to match the content being played. See section above
- Configure your video card settings to run at a refresh rate that matches the bulk of the content you play. e.g. 23 Hz for 23.976 fps content.
- If you canât/wonât do #2 or #3. Set your refresh rate to a number that divides equally into the fps of the bulk of the content you play. e.g. 120 Hz (for 24/30/60 fps).
- If #3/#4 doesnât work, configure Judder reduction in your TV settings. Some TVs do this automatically. This may be called âCinema Screenâ, âMotion Flow/CineMotionâ, âJudder Reductionâ or âFilm Modeâ. As a worst case, test with Motion Interpolation enabled at various levels.
- If you have an Nvidia GPU, in Nvidia Control Panel -> Manage 3D Settings, Set Vertical Sync: ON, Low Latency Mode:OFF, Power Management Mode: Prefer Max/Adaptive/Normal.
- If you have an AMD GPU: In Radeon Settings, Display -> Radeon FreeSync: OFF, Graphics -> Enhanced Sync: OFF, Wait for Vertical Refresh: ON, either globally or create a app profile for your video player
- Use the SVP (Smooth Video Project) filter to up-convert the contentâs fps (e.g. 23.976 fps to 60 fps) before it gets to the display; this is Motion Interpolation, and its effect is unliked by some. Alternatively, you can try madVRâs frame blending feature in the rendering->smooth motion section of its settings.
- Use a media device instead that can do automatic Refresh Rate Switching. Fire TV (Prime Video), Nvidia Shield (Netflix, Prime Video), Android TV+SmartTubeNext (Youtube)
What refresh rate should I run on my HTPC?
Whatever refresh rate matches the framerate of the bulk of the content you play, if automatic Refresh Rate Switching is not available for your media players. If you use a 120 Hz display you can run at that instead of the refresh rate for the 23.976/24/30/60 frame rates below. If youâre running 25/50 fps content, run at 50 or 100 Hz.
Content varies between 23.976, 24, 25 fps, 29.97 or 60 fps. Local content is usually 23.976 fps (23 Hz) in North America and 25 fps (25 Hz) in Europe. Youtube is 24/25/30/60 fps. Netflix is 23.976/24/25/29.97 fps.
See here
What is the best way to change DisplayPort/USB-C to HDMI. What are the limitations associated with doing this?
There are 2 ways to change DisplayPort to HDMI. The 1st is a Passive cable/adapter, the 2nd is an Active cable/adapter.
A passive cable/adapter does not do a conversion on the protocol and is more limiting. If you have a DisplayPort 1.2 port, you can passively use HDMI 1.4 on the other end; so 4k@30 Hz SDR for video. Passive is most commonly used to get HD audio out of a DisplayPort port connected to a CPUâs iGPU and send it to an AVR via HDMI on the other end.
An active cable/adapter converts the DisplayPort protocol coming into the adapter. This is less limiting and will potentially provide higher bandwidth. For instance, you can use an Active adapter to convert DisplayPort 1.2 to HDMI 2.0 and get 4K@60Hz output, though getting some HDMI 2.0-native features is problematic if they werenât supported by the DisplayPort version to begin with. In our example, since DisplayPort 1.2 does not support HDR, it will not get passed over the adapter.
SOME oem vendors (hp, dell, levovo) SOMETIMES advertise DisplayPort 1.2, but in reality support 1.3/1.4. When this happens you can use a DisplayPort 1.4->HDMI 2.0 active adapter and get HDR. This support is very spotty, so unless you find accounts of it on the hardware you want to use, donât bet on it.
Active connectors can also be used to convert DisplayPort 1.4 to HDMI 2.1 and get 4K@120Hz HDR >= 32Gbps output. This also has its caveats. The adapters require the Display Stream Compression (DSC 1.2) feature to be supported in the GPU for use over DisplayPort. Since this is an OPTIONAL feature to DisplayPort 1.x, do not expect all GPUs with DisplayPort 1.4 to support this. Officially supported GPUS are >= Nvidia GTX 16xx/RTX 20xx or >= AMD RX 5xxx dGPUs.
Active adapters also do not allow passthrough/bitstreaming of HD audio, only PCM audio.
USB-C is just a different connector, still carrying the DisplayPort protocol as if it was that connector.
When buying cables and adapters, please do NOT buy no-name brands. As quality control is low on them and marketing is more often than that mis-leading. Recommended cables and adapters can be found in the cables section of the Hardware Components Guide. You can also find there what versions of DisplayPort and HDMI are supported on various CPUs/GPUs.
What options are there for 4k @ 120 Hz video output?
Keep in mind we assume a HDMI input will be on your Display (TVs/Projectors, which is our only concern here).
You will need to have HDMI 2.1 bandwidth on every HDMI device between your HTPC and your Display (GPU, TV, AVR, Switches, etc..). Simply having âHDMI 2.1â does not mean 4k@120 Hz bandwidth will be supported; this is an important distinction, so make sure they state 4k@120 hz support and/or >= 32 Gbps bandwidth (for at least media content) or >= 40 Gbps for gaming.
Options below for this are ordered from best to worst in terms of stability and reliability.
Technically, straight HDMI is the best (#1/#2/#3), followed by Thunderbolt->HDMI (#4/#5), USB-C->HDMI (#6) and DP->HDMI (#7/#8).
Use case is KEY, as 4k@120 Hz is a broad requirement and knowing what sub-features (media, gaming, HDR) you want will determine bandwidth requirements.
Use of an adapter in options #4/#5/#6/#7/#8 assumes you have a GPU with Displayport 1.4 protocol support and DSC (Display Stream Compression).
Media content (HDR/10-bit/4:2:2) is technically possible without DSC support. Gaming (HDR/10-bit/4:4:4/RGB) is NOT. VRR gaming will not be supported with any adapter.
- DiY: Any decent cpu/motherboard or OEM build + a discrete GPU w/a 4k@120 Hz HDMI 2.1. e.g. Radeon RX 6400, RTX 3050 6GB LP
- DiY: An AMD Ryzen 7xxx/8xxxG desktop CPU and respective motherboard that states 4k@120Hz HDMI 2.1. e.g. Ryzen 8500G + ASRock A620I/B650I Lightning Wifi mobo or a ASRock Deskmini X600, for a realistic max of 4:2:2 10-bit HDR.
- Pre-built: A Ryzen 6000+ or Intel 11th+ gen Mini PC with a 4k@120Hz HDMI 2.1 port. e,g. Ryzen: Minisforum UM760 Slim, Beelink SER6 Max, ASRock 4x4 7535U/8640U, Intel: Gigabyte Brix Extreme
- Pre-built: An Intel 11th+ gen Mini PC with a Thunderbolt display out connector and a Thunderbolt->HDMI adapter/cable. e.g. Intel NUC 11/12/13/Lenovo IdeaCentre Mini Gen 8 + Thunderbolt->HDMI 2.1 Cable
- DiY: Intel 12th+ Gen CPU and respective motherboard with a Thunderbolt display out connector out and a Thunderbolt->HDMI 2.1 Cable. Not as good as straight HDMI, but better compared to DP or plain USB-C. This will likely be expensive as these boards are rare. e.g. for an ITX board, look at the Asus ROG STRIX Z690-I GAMING WIFI, ASRock Z690 Phantom Gaming-ITX/TB4 or ASRock Z790 PG-ITX/TB4.
- Hybrid/DiY: An Intel 11th+ gen CPU and motherboard w/a USB-C Display Out and a USB-C->HDMI adapter/cable. e.g. ASRock Deskmini B660 +
USB-C->HDMI 2.1 Cable.
- DiY: Intel 12th+ Gen CPU and respective motherboard with a Displayport 1.4 connector and an Active DP->HDMI adapter. This tends to be the least stable option, so we donât recommend it at all.
- Pre-Built: Ryzen 4000+ Mini PC with a Displayport 1.4 connector and an Active DP->HDMI adapter. e.g. Beelink SER5 5560U. This tends to be the least stable option, so we donât recommend it at all.
- Headless Moonlight/Sunshine Streaming Host: DP 1.4->HDMI 2.1 adapter + VDD/IddSampleDriver to create a virtual display. Alternatively, for a hardware solution use a HDMI dummy plug + Nvidia custom res/CRU res mod OR a EDID Emulator to copy the host displayâs EDID.
See above sections Setup For Color Conversion/Reproduction and Video Calibration Testing
Where do I find additional sample video files to test?
These files must be downloaded for the media player(s) you are testing against. Do NOT play them in your browser.
AVS HD 709 Test Patterns - For video calibration
Judder Tests - Tests for judder at varying frame rates - 23.976/24/25/29.97/30/50/59.94/60 fps
Frame Rate Tests - Known-good test files with a variety of motion - 23.976 fps, 24 fps, 25 fps, 29.97 fps
Audio Sync Tests - 1080p/H264/60fps/AAC, 1080p/HEVC/23.98fps/PCM, 1080p/HEVC/24fps/PCM, 1080p/HEVC/29.97fps/PCM
Jellyfish Video Bitrate Test Files (Alt Link) - 1080p/4k, h.264/HEVC, 30 fps, High/Main (8-bit), Main10 (10-bit), MKV
Ideal 4K HEVC test - Max UHD Blu-Ray bitrate - 4k, HEVC, SDR, 140Mbps, 10-bit, 30fps, mp4
Our HDR10 Test Videos/Patterns - For Basic HDR video calibration
Mehanikâs Full HDR10 Test Videos/Patterns - For Advanced HDR video calibration
Ideal 4K HEVC HDR10 test - High UHD Blu-Ray bitrate - 4k, HEVC, HDR10, 50-90Mbps, 10-bit, 30fps, mp4
Other 4K Media Test Files - 4k, h.264/HEVC, HDR10/DV, TS/MKV/MP4, 24-60fps
Other Media Test Files - 720p/1080p/4k, 23.976/24/25/29.97/59.94/60 fps, h.264/HEVC/AV1/VP9/MPEG2
Accessories
HDMI extenders
4k@60Hz + USB: OREI
4k@60Hz + IR/Audio: OREI
4k@120Hz: gofanco
HDMI Splitters
4k@120Hz: Monoprice Blackbird
HDMI EDID Emulators
Prophecy EDID Tester
Â
This page was last updated on 2024-10-20