Jump to content

3D: Difference between revisions

From Official Kodi Wiki
UNiversal (talk | contribs)
Te36 (talk | contribs)
 
(45 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Gotham}}
 
{{wiki revamp}}
<section begin="intro" />Starting in v13, Kodi supports a number of passive 3D video formats such as SBS, TAB, anaglyph or interlaced. This support extends to the Kodi GUI including subtitles and on-screen-controls.<section end="intro" />
Starting in v13, XBMC supports a number of passive 3D movie formats encoded in SBS, TAB, anaglyph or interlaced.
 
==3D Kodi capable player info==
 
{{Youtube|GfiCE0n9h8A}}
 
See [https://forum.kodi.tv/showthread.php?tid=376035&pid=3243217#pid3243217 Kodi Forum discussion]
 
== Displays ==
 
Some collected data for 3D displays, discussion at the [https://www.avsforum.com/threads/lets-talk-best-full-rez-3d-for-under-5k-in-2025-26.3336113 3D display discussion thread] (2025). This was initially triggered by various displays downsampling 3D videos in 2025. Those cases are indicated by "ERR:". See legend.
 
Be sure to check the 3D resolution of your display by watching the [[https://mega.nz/#!8BcClSRb!Jd48Bfc-8DjGvr7upqDVaDz5RdRI1xdR0PQ1-kZIAsI|3D MVC Resolution Pattern]] video from [[ Samples#3D_Formats]] and observe whether you see all horizontal and vertical white lines in the top two rows of the 3x3  resolution lines block of the test patterns.
 
* If you want information about displays you know to be entered to the table, ideally do it yourself, it's not difficult to get an account on this wiki. If you're worried about table formatting, just write freeeform text into the "AddToTable" section.
* Primarily check resolution of the MVC version of the resolution pattern video. If you have a 4k capable display, you may want to try at least also the FSBS version, ideally from a media player whose video output is set to 60Hz. If the projector can switch automatically, that is also very useful information. Any more information about the projector 3D capabilities is ideally put into an appropriate forum post and the URL put into the notes column.
{| class="prettytable"
! Display !! FP !! SBS !! TAB !! FSBS !! FTAB !! Notes
|-
| Epson 5050UB (2019) ||  ✔ (auto) ||  ✔ (auto) ||  ✔ (auto) || - || - || [https://www.avsforum.com/posts/64310910]
|-
| AWOL Vision LTV 2500/3000/3500/ || ✔ || ? || ? || ? || ? || [https://www.avsforum.com/posts/64322959/], [https://www.avsforum.com/posts/64323106/]
|-
| Hisense C2 Ultra (2024)  || ERR:TAB|| ? || ?|| ?|| ?|| Vidaa OS, not Google OS.(no verification image found yet, see [https://www.avsforum.com/posts/64323185/])
|-
| Hisense PX3 Pro (2024)  || ERR:TAB|| ? || ?|| ?|| ?|| [https://www.avsforum.com/posts/64311586/]
|-
| NexiGo Nova Mini (2025) || ERR:TAB || ? || ? || ? || ? || Mediatek MT9630, [https://www.avsforum.com/posts/64311718/]
|-
| NexiGo Aurora Pro MKII (2025) || ✔ || ✔ || ✔ || No || No || [https://www.avsforum.com/posts/64311725/] FullSBS/TAB are rendered as HalfSBS/TAB
|-
| NexiGo TriVision Ultra || ✔ || ? || ? || ? || ? || [https://www.avsforum.com/posts/64321036/]
|-
| Optoma ZH406 (2019) || ✔ || ? || ? || ? || ? || [https://www.avsforum.com/posts/64310981/], [https://www.avsforum.com/posts/64311838/]
|-
| Valerion Pro2, Max (series) (2025) || ERR:TAB (auto)||ERR:960x540|| ERR:TAB || ERR:TAB  (auto)|| ERR:TAB || MediaTek MT9618 (Pro2, Max), [https://www.avsforum.com/posts/64310981/] [https://www.avsforum.com/posts/64311586/] [https://www.avsforum.com/posts/64311854/], FSBS auto: [https://www.avsforum.com/posts/64313844/]
|-
| XGIMI Horizon 20 Max (series) (2025)|| ERR:TAB 60Hz || ERR:960x540 60Hz|| ERR:TAB  60Hz|| ERR:TAB 60Hz|| ERR:TAB 60Hz || MediaTek MT9679, [https://www.avsforum.com/posts/64310910]
|}
 
AddToTable:
 
Legend:
 
* (series) Only the indicated model was tested, but the data is believed to apply to all model variations in the series.
* ? - Information not provided by any user. Ability to get full resolution at FP (✔) is sufficient for Blu Ray 3D payback as long as a Blu Ray Player or Media Player with support for this format is used. FSBS/FTAB support is mostly interesting as a workaround or when 60fps is supported, or when media is present in these formats but no media player to convert to FP video signal. SBS/TAB formats are lower quality and may be of interest for the same reasons.
* (auto) - display switches automatically to 3D decoding when signal is received with HDMI 1.4 InfoFrame indicating the signal type. Else display requires manual enabling of 3D decoding for the signal. Current understanding is that InfoFrame signaling to trigger automatic decoding only is specified for FP@25fps and SBS/TAB for maybe up to 60fps, but not for FSBS, FTAB (they likely always require manual enabling of 3D mode on the display).
* FP - HDMI 1.4 "Frame Packed" FullHD 1920x1080@24fps 3D as per HDMI 1.4 3D spec. This video signal is generated by blu Ray players playing a 3D Blu Ray disc.
* SBS - "Side By Side" 3D. Per eye 960x1080, arranged side by side, total video size 1920x1080. Without additional fps indication, support for only 24fps is assumed. Part of HDMI 1.4 3D spec.
* TAB - "Top And Bottom" 3D. Per eye 1920x540, arranged top and bottom, total video size 1920x1080. Without additional fps indication, support for only 24fps is assumed. Part of HDMI 1.4 3D spec.
* FSBS - "Full Side By Side" 3D. Per eye 1920x1080, arranged side by side, total video size 3840x1080. Without additional fps indication, support for only 24fps is assumed. Not part of HDMI 1.4 3D spec. Common resolution format for VR glasses. FSBS encoded 3D video can be displayed as FSBS without media player knowing about 3D (without subtitles).
* FTAB  "Full Top And Bottom" 3D. Per eye 1920x1080, arranged top and bottom, total video size 1920x2160. Without additional fps indication, support for only 24fps is assumed. Not part of HDMI 1.4 3D spec. FTAB encoded 3D video can be displayed as FTAB without media player knowing about 3D (without subtitles).
* 60Hz - Format can be decoded not only with 24fps, but also up to the indicated Hz (e.g.: 60Hz). This is relevant for supporting stereoscopic 3D gaming which typically requires 60Hz or higher to be sufficiently fast enough.
* ERR: - the visual resolution is in error and is best described by the following resolution or abbreviation thereof. Specifically, ERR:TAB indicates that the visual resolution is only like 1920x540 when provided with a 1920x540 resolution video per eye.
* For further details see notes and/or URLs in the notes column
 
<div style="border:2px solid #f00; background-color:#ffe6e6; padding:10px; margin:10px 0;">
<strong>Warning:</strong> Much of the text below has not been updated since Kodi 18 and may include outdated information. Please help to improve it.
</div>
 
==Theory of Operations==
3D can be encoded in the video file in a variety of methods and displayed on the output device in yet another variety of methods. When Kodi can decode the video file and knows how 3D is encoded in it, it can then transform the decoded video to the desired output method. In that case Kodi can also render its GUI according to the desired output method, making the GUI naturally useable during playback.
 
The most popular 3D formats encode left and right images of the 3D frame inside a 2D frame and can therefore be supported with any Kodi supported video file encoding (typically h264/h265(hevc) with mkv container format). For example, in (half) Side-By-Side (SBS) a left eye 960x1080 and a right eye 960x1080 frame are combined side-by-side into a full HD 1920x1080 frame. In (half) Top-And-Bottom (TAB), a left eye 1920x540 and a right eye 1920x540 frame are combined top and bottom into a full HD 1920x1080 frame.
 
Either of these formats can be played back onto a HDMI 1.4 compatible display even without the player (Kodi or any other) knowing that they are 3D. The display can then (usually manually) be set to decode the 3D content, and then displays it for active or passive shutter glasses (depending on the type of 3D display). If Kodi is unaware of the video being 3D, it will render its GUI across the whole 2D frame, so that it becomes gibberish after 3D decoding by the display.
 
Typically, Kodi is aware of the 3D encoding of the video, see the section "How Kodi does 3D detection". In that that case it will transform the 3D format of the video after decoding to the desired output mode for the display, for example converting SBS to TAB or vice versa, or even to anamorphic which can be played back on any display using colored (plastic) glasses.
 
=== HDMI 3D ===
 
HDMI 1.4/2.0/2.1 support SBS and TAB formats with 24, 50 and 60Hz but only up tofull-HD resolution of 1920x1080. Larger size SBS/TAB such as full SBS (3840x1080) or full TAB (1920x2160) can be played back by Kodi but will be scaled down to 1920x1080 for HDMI displays, resulting in a loss of half the horizontal (SBS) or vertical (TAB) resolution.
 
For full HD 3D resolution on a HDMI display the system must render a HDMI 1.4 frame-packing signal (unchanged in HDMI 2.0/2.1). This is the format used by Blu Ray 3D players. It is a 1920x2205 signal constituting of full-HD top and bottom left and eye frames separated by 45 lines of blanking. It is only supported by HDMI at 24 fps or at 1280x720 resolution with 50/60Hz. Support for this output format is platform specific. See Platform specific info below. If Kodi supports this output format, it is usually enabled (Kodi 17) via the "Hardware based" output method in Kodi and can be used to play back full SBS/TAB videos without loss of resolution.
 
==Limitations==
 
===MVC software decoding not supported===
 
Kodi does not yet support software video decoding of [[w:Multiview Video Coding|MVC (Multiview Video Coding)]] encoded 3D videos, which is the format most commonly used in raw Blu-ray 3D backups/rips (and on original Blu-ray Disc media with stereoscopic video.
 
However, hardware decoding of [[w:Multiview Video Coding|MVC (Multiview Video Coding)]] encoded 3D videos is supported in Kodi on some platforms/operating-systems if the device drivers and hardware supports it, like it does for the Raspberry Pi. For hardware decoding Kodi relies on the SoC/VPU/GPU chipset hardware manufacturer to add support for this to their SDK (Software Developer Kits) and for the media player box manufacturers to implement that into their API, firmware, kernel, and/or device drivers images as needed.
 
For software video decoding Kodi depends on the third-party decoder libraries from the [http://ffmpeg.org/FFmpeg (ffmpeg.org)] project as well as code from its sister-project [http://libav.org/ Libav (libav.org)]. The fact is that Kodi developers will not be ablle to add support software video decoding of MVC encoded 3D videos until the developers of those upstream projects have written and added code for it first, and those projects are just like Kodi also non-profit organizations run by volunteers working for free so it is impossible to estimate when (if ever) someone will write and add code for MVC decoding support to FFmpeg and/or Libav (which is needed before it can be added to Kodi).
 
For some Kodi forum discussion please see: http://forum.kodi.tv/showthread.php?tid=227862 or for more information read the wikipedia article about [[w:Multiview Video Coding|MVC (Multiview Video Coding)]]
 
Developers might also want to read this development-oriented description written by the Libav (and FFmpeg) developers on their wiki here: http://wiki.libav.org/Blueprint/MVC as well as a very descriptive blog-post which explains why software video decoding of MVC is so hard to code into FFmpeg/Libav: http://blogs.gentoo.org/lu_zero/2014/04/04/the-road-to-mvc/ (posted by Luca Barbato and Vittorio who have been two of the lead developers in the FFmpeg and Libav projects for the past 10-years).


== Interface and menus ==
== Interface and menus ==
Starting in XBMC v13 "Gotham", XBMC has 3D UI support
{{incomplete}}
[[File:Over-under 3D.png|500px|right]]
[[File:Over-under 3D.png|500px|right]]
{{-}}
{{-}}


== 3D detection ==
==How Kodi does 3D detection ==
XBMC has three ways to detect whether a videofile is a 3D video.
Kodi has three ways to detect whether a videofile is a 3D video.
These methods are checked in the following order:
These methods are checked in the following order:
=== Embedded streaminfo ===
=== Embedded streaminfo ===
First, XBMC tries to detect the stereoscopic mode for a video when extracting streamdetails from the videofile.
First, Kodi tries to detect the stereoscopic mode for a video when extracting streamdetails from the videofile.


One of the supported fields is the 'Stereomode' field in the Matroska specification:
One of the supported fields is the 'Stereomode' field in the Matroska specification:
Line 18: Line 105:


=== Manual selection ===
=== Manual selection ===
When playing a video, you can bring up the [[Video_playback#OSD_video_settings|video settings]] dialog to manually select the stereoscopic mode.
When playing a video, you can bring up the [[Video playback#OSD video settings|video settings]] dialog to manually select the stereoscopic mode.


If you've done this before, XBMC will remember this setting and use it as the second method to detect the stereoscopic mode of a videofile.
If you've done this before, Kodi will remember this setting and use it as the second method to detect the stereoscopic mode of a videofile.
=== Video filenames flags ===
=== Video filenames flags ===
{{see also|Naming video files}}
The third and final method is detection through the filename of the video.
The third and final method is detection through the filename of the video.


XBMC uses regular expressions to check for certain flags in the filename.
Kodi uses regular expressions to check for certain flags in the filename.


In order to properly detect the stereomode, two tags need to be present in the filename.
In order to properly detect the stereomode, two tags need to be present in the filename.
Line 36: Line 124:
Regex matching is done case-insensitive, so for example either <code>.3d.</code> and <code>.3D.</code> will work.
Regex matching is done case-insensitive, so for example either <code>.3d.</code> and <code>.3D.</code> will work.


{{note| the tags need be be surrounded be either a space <code>( )</code>, <code>hyphen -</code>, <code>dot .</code> or <code>underscore _</code>.}}
{{note| the tags need be be surrounded be either a hyphen <code>-</code>, space <code>&nbsp;</code>, dot <code>.</code> or underscore <code>_</code>.}}




See the table below for some examples:
See the table below for some examples:


{|class="wikitable" style="text-align: center; color: black;"
{|class="prettytable" style="text-align: center;"
! style="color:#000000; background-color:#DBDBDB;" | '''  3D '''
! 3D
! style="color:#000000; background-color:#DBDBDB;" | '''  Stereoscopic side-by-side '''
! Stereoscopic side-by-side
! style="color:#000000; background-color:#DBDBDB;" | '''  Stereoscopic tab  '''
! Stereoscopic top-and-bottom
|-
|-
| .3D. || .sbs.  ||.tab.
| .3D. || .sbs.  ||.tab.
Line 75: Line 163:
{{see also|Media_flags#Video_flags}}
{{see also|Media_flags#Video_flags}}
For other filename flags examples.
For other filename flags examples.
==Subtitiles==
?


== Platform specific info ==
== Platform specific info ==
Line 80: Line 171:
=== General ===
=== General ===
* Hardware acceleration is not provided for full SBS or full TAB movies, meaning users will need playback hardware with adequate CPU power.
* Hardware acceleration is not provided for full SBS or full TAB movies, meaning users will need playback hardware with adequate CPU power.
* XBMC's "window mode" in {{highlight|bordered=yes|[[Settings/System#Video output|Settings -> System -> Video output]]}} must use normal '''"Full screen"''' and not "Full screen window".
* Kodi's "window mode" in {{highlight|bordered=yes|[[Settings/System#Video output|Settings -> System -> Video output]]}} must use normal '''"Full screen"''' and not "Full screen window".


=== Windows ===
=== Windows ===
* 3D Stereoscopic Support in video driver must be turned off


[[Category:Video Library]]
Starting with version 8.1, Windows supports HDMI 1.4 frame packing, and Kodi on Windows can therefore not only render to half-SBS/TAB HDMI output formats, but also full-HD 3D (at 24 Hz) via the "Hardware based" output method to HDMI displays supporting HDMI 3D. This should work across all GPUs (Intel, Nvidia, ARM, tested for this text on Intel, Nvidia). This does not require any MVC specific build of Kodi.
[[Category:XBMC Manual]]
 
==== Intel GPU ====
 
On Intel GPU, HDMI 1.4 3D support may require the GPU to support [https://www.intel.com/content/www/us/en/support/articles/000005683/graphics-drivers.html InTru 3D]. With IntTru 3D, HDMI 1.4 3D full-HD (1080p@24) is supported on Windows 7, 8 and 8.1 (unclear if Kodi supports this on Windows 7, unclear if Intel article just forgot to mention Windows 10 or if there is a change in support).
==== NVidia GPU ====
 
===== HDMI 1.4 3D capable displays =====
 
When connecting a HDMI 1.4 frame packing 3D capable HDMI display to an NVidia GPU, "Enable stereoscopic 3D" must be enabled in Windows NVidia Control Panel to use it. In Kodis "stereoscopic 3D mode" selection, this enables "Hardware based" for that display. It also enables the "HD 3D" modes 1080p24 and 720p50/60 in the NVidia Control Panels "Change resolution" section. These resolutions do not need to be selected explicitly to play back 3D in Kodi, instead set "Hardware based" as the default 3D optoin and enable frame rate switching in Kodi. Kodi will then automatically switch to 1080p24 frame packing when playing back 3D videos.
 
When stereoscopic 3D is enabled in the NVidia Control Panel for such a HDMI display, there is no separate "2D" 1080p24 option anymore. Kodi can therefore only use the "3D" 1080p24 frame packing mode when playing back 24fps videos (without any 3D effect of course). Active 3D capable HDMI displays often enable their IR transmitter when frame packing mode is selected. This can be irritating when the IR transmitter disturbs other IR remotes  and only a 2D video is shown. It may then be necessary to switch between 2D/3D on the display manually or enable stereoscopic 3D on the NVidia Control Panel manually only before playing 3D.
 
===== NVidia 3DTV Play =====
 
By default, the NVidia Control Panel shows "HDMI Blu-Ray 3D" as the "Stereoscopic 3D display type" under "Enable stereoscopic 3D" for HDMI 1.4 capable displays and there is no other option. When NVIDIA 3DTV Play is active on the system, "HDMI Blu-Ray 3D" is not available anymore, but instead "3DTV Play" must be selected to enable HDMI 1.4 frame packing resolutions. NVIDIA 3DTV Play is neither necessary nor beneficial for Kodi nor other Blu-Ray DVD playback software for video playback with HDMI 1.4 frame packing.
 
NVidia 3DTV is an optional and separately sold software from NVidia primarily for rendering 3D games in HDMI 1.4 stereoscopic 3D. It is also enabled automatically for free when an NVidia 3D Vision USB IR emitter is connected to the PC. That emitter services no purpose for HDMI 1.4 display, it solely serves as a dongle so customers of the NVidia 3D Vision kit (including emitter and glasses) can get NVIDIA 3DTV Play for free if they have both NVidia 3DTV Vision capable display and HDMI 1.4 display connected to their PC. See http://www.nvidia.com/object/3dtv-play-compare.html.
 
When NVIDIA 3DTV Play is active, Kodi may display during startup a red warning onscreen that the selected resolution is incompatible with HDMI 1.4 3D. This is NVIDIA 3DTV Play recognizing Kodi as a 3D application. The warning will go away after some time and can simply be ignored.
 
===== NVidia 3D Vision =====
 
NVidia 3D Vision uses 3D active shutter glassses in conjunction with (certified for NVidia 3D Vision) DisplayPort PC Displays at 100/120/144 Hz. This can be used to display 3D video up to the full display resolution of the display used. In the NVidia Control Panel, Stereoscopic 3D needs to be enabled, then a resolution with >= 100Hz refresh rate needs to be choosen. 144Hz is best for 24p material to avoid motion judder. In Kodi, "Adjust display refresh rate" must be disabled (or else 3D vision gets enabled when Kodi switches to 24p fps) and "Hardware based" output method must be choosen. Tested with Windows 10, Kodi 17.6 for this paragraph (01/2018).
 
=== ARM (Android, iOS, Raspberry Pi) ===
* 3D modes anaglyph and interlaced are not currently supported on ARM platforms (such as Android, iOS, Raspberry Pi, or other linux-based ARM distros) due to those platforms using OpenGLES rather than OpenGL or DirectX.
 
== Other guides ==
* brazen1's 3D guide: http://forum.kodi.tv/showthread.php?tid=229692
 
==See also==
* [[Samples]]
 
{{Gotham updated}}
 
[[Category:Video library]]
[[Category:Manual]]

Latest revision as of 15:39, 16 December 2025

Starting in v13, Kodi supports a number of passive 3D video formats such as SBS, TAB, anaglyph or interlaced. This support extends to the Kodi GUI including subtitles and on-screen-controls.

3D Kodi capable player info

See Kodi Forum discussion

Displays

Some collected data for 3D displays, discussion at the 3D display discussion thread (2025). This was initially triggered by various displays downsampling 3D videos in 2025. Those cases are indicated by "ERR:". See legend.

Be sure to check the 3D resolution of your display by watching the [MVC Resolution Pattern] video from Samples#3D_Formats and observe whether you see all horizontal and vertical white lines in the top two rows of the 3x3 resolution lines block of the test patterns.

  • If you want information about displays you know to be entered to the table, ideally do it yourself, it's not difficult to get an account on this wiki. If you're worried about table formatting, just write freeeform text into the "AddToTable" section.
  • Primarily check resolution of the MVC version of the resolution pattern video. If you have a 4k capable display, you may want to try at least also the FSBS version, ideally from a media player whose video output is set to 60Hz. If the projector can switch automatically, that is also very useful information. Any more information about the projector 3D capabilities is ideally put into an appropriate forum post and the URL put into the notes column.
Display FP SBS TAB FSBS FTAB Notes
Epson 5050UB (2019) ✔ (auto) ✔ (auto) ✔ (auto) - - [1]
AWOL Vision LTV 2500/3000/3500/ ? ? ? ? [2], [3]
Hisense C2 Ultra (2024) ERR:TAB ? ? ? ? Vidaa OS, not Google OS.(no verification image found yet, see [4])
Hisense PX3 Pro (2024) ERR:TAB ? ? ? ? [5]
NexiGo Nova Mini (2025) ERR:TAB ? ? ? ? Mediatek MT9630, [6]
NexiGo Aurora Pro MKII (2025) No No [7] FullSBS/TAB are rendered as HalfSBS/TAB
NexiGo TriVision Ultra ? ? ? ? [8]
Optoma ZH406 (2019) ? ? ? ? [9], [10]
Valerion Pro2, Max (series) (2025) ERR:TAB (auto) ERR:960x540 ERR:TAB ERR:TAB (auto) ERR:TAB MediaTek MT9618 (Pro2, Max), [11] [12] [13], FSBS auto: [14]
XGIMI Horizon 20 Max (series) (2025) ERR:TAB 60Hz ERR:960x540 60Hz ERR:TAB 60Hz ERR:TAB 60Hz ERR:TAB 60Hz MediaTek MT9679, [15]

AddToTable:

Legend:

  • (series) Only the indicated model was tested, but the data is believed to apply to all model variations in the series.
  • ? - Information not provided by any user. Ability to get full resolution at FP (✔) is sufficient for Blu Ray 3D payback as long as a Blu Ray Player or Media Player with support for this format is used. FSBS/FTAB support is mostly interesting as a workaround or when 60fps is supported, or when media is present in these formats but no media player to convert to FP video signal. SBS/TAB formats are lower quality and may be of interest for the same reasons.
  • (auto) - display switches automatically to 3D decoding when signal is received with HDMI 1.4 InfoFrame indicating the signal type. Else display requires manual enabling of 3D decoding for the signal. Current understanding is that InfoFrame signaling to trigger automatic decoding only is specified for FP@25fps and SBS/TAB for maybe up to 60fps, but not for FSBS, FTAB (they likely always require manual enabling of 3D mode on the display).
  • FP - HDMI 1.4 "Frame Packed" FullHD 1920x1080@24fps 3D as per HDMI 1.4 3D spec. This video signal is generated by blu Ray players playing a 3D Blu Ray disc.
  • SBS - "Side By Side" 3D. Per eye 960x1080, arranged side by side, total video size 1920x1080. Without additional fps indication, support for only 24fps is assumed. Part of HDMI 1.4 3D spec.
  • TAB - "Top And Bottom" 3D. Per eye 1920x540, arranged top and bottom, total video size 1920x1080. Without additional fps indication, support for only 24fps is assumed. Part of HDMI 1.4 3D spec.
  • FSBS - "Full Side By Side" 3D. Per eye 1920x1080, arranged side by side, total video size 3840x1080. Without additional fps indication, support for only 24fps is assumed. Not part of HDMI 1.4 3D spec. Common resolution format for VR glasses. FSBS encoded 3D video can be displayed as FSBS without media player knowing about 3D (without subtitles).
  • FTAB "Full Top And Bottom" 3D. Per eye 1920x1080, arranged top and bottom, total video size 1920x2160. Without additional fps indication, support for only 24fps is assumed. Not part of HDMI 1.4 3D spec. FTAB encoded 3D video can be displayed as FTAB without media player knowing about 3D (without subtitles).
  • 60Hz - Format can be decoded not only with 24fps, but also up to the indicated Hz (e.g.: 60Hz). This is relevant for supporting stereoscopic 3D gaming which typically requires 60Hz or higher to be sufficiently fast enough.
  • ERR: - the visual resolution is in error and is best described by the following resolution or abbreviation thereof. Specifically, ERR:TAB indicates that the visual resolution is only like 1920x540 when provided with a 1920x540 resolution video per eye.
  • For further details see notes and/or URLs in the notes column

Warning: Much of the text below has not been updated since Kodi 18 and may include outdated information. Please help to improve it.

Theory of Operations

3D can be encoded in the video file in a variety of methods and displayed on the output device in yet another variety of methods. When Kodi can decode the video file and knows how 3D is encoded in it, it can then transform the decoded video to the desired output method. In that case Kodi can also render its GUI according to the desired output method, making the GUI naturally useable during playback.

The most popular 3D formats encode left and right images of the 3D frame inside a 2D frame and can therefore be supported with any Kodi supported video file encoding (typically h264/h265(hevc) with mkv container format). For example, in (half) Side-By-Side (SBS) a left eye 960x1080 and a right eye 960x1080 frame are combined side-by-side into a full HD 1920x1080 frame. In (half) Top-And-Bottom (TAB), a left eye 1920x540 and a right eye 1920x540 frame are combined top and bottom into a full HD 1920x1080 frame.

Either of these formats can be played back onto a HDMI 1.4 compatible display even without the player (Kodi or any other) knowing that they are 3D. The display can then (usually manually) be set to decode the 3D content, and then displays it for active or passive shutter glasses (depending on the type of 3D display). If Kodi is unaware of the video being 3D, it will render its GUI across the whole 2D frame, so that it becomes gibberish after 3D decoding by the display.

Typically, Kodi is aware of the 3D encoding of the video, see the section "How Kodi does 3D detection". In that that case it will transform the 3D format of the video after decoding to the desired output mode for the display, for example converting SBS to TAB or vice versa, or even to anamorphic which can be played back on any display using colored (plastic) glasses.

HDMI 3D

HDMI 1.4/2.0/2.1 support SBS and TAB formats with 24, 50 and 60Hz but only up tofull-HD resolution of 1920x1080. Larger size SBS/TAB such as full SBS (3840x1080) or full TAB (1920x2160) can be played back by Kodi but will be scaled down to 1920x1080 for HDMI displays, resulting in a loss of half the horizontal (SBS) or vertical (TAB) resolution.

For full HD 3D resolution on a HDMI display the system must render a HDMI 1.4 frame-packing signal (unchanged in HDMI 2.0/2.1). This is the format used by Blu Ray 3D players. It is a 1920x2205 signal constituting of full-HD top and bottom left and eye frames separated by 45 lines of blanking. It is only supported by HDMI at 24 fps or at 1280x720 resolution with 50/60Hz. Support for this output format is platform specific. See Platform specific info below. If Kodi supports this output format, it is usually enabled (Kodi 17) via the "Hardware based" output method in Kodi and can be used to play back full SBS/TAB videos without loss of resolution.

Limitations

MVC software decoding not supported

Kodi does not yet support software video decoding of MVC (Multiview Video Coding) encoded 3D videos, which is the format most commonly used in raw Blu-ray 3D backups/rips (and on original Blu-ray Disc media with stereoscopic video.

However, hardware decoding of MVC (Multiview Video Coding) encoded 3D videos is supported in Kodi on some platforms/operating-systems if the device drivers and hardware supports it, like it does for the Raspberry Pi. For hardware decoding Kodi relies on the SoC/VPU/GPU chipset hardware manufacturer to add support for this to their SDK (Software Developer Kits) and for the media player box manufacturers to implement that into their API, firmware, kernel, and/or device drivers images as needed.

For software video decoding Kodi depends on the third-party decoder libraries from the (ffmpeg.org) project as well as code from its sister-project Libav (libav.org). The fact is that Kodi developers will not be ablle to add support software video decoding of MVC encoded 3D videos until the developers of those upstream projects have written and added code for it first, and those projects are just like Kodi also non-profit organizations run by volunteers working for free so it is impossible to estimate when (if ever) someone will write and add code for MVC decoding support to FFmpeg and/or Libav (which is needed before it can be added to Kodi).

For some Kodi forum discussion please see: http://forum.kodi.tv/showthread.php?tid=227862 or for more information read the wikipedia article about MVC (Multiview Video Coding)

Developers might also want to read this development-oriented description written by the Libav (and FFmpeg) developers on their wiki here: http://wiki.libav.org/Blueprint/MVC as well as a very descriptive blog-post which explains why software video decoding of MVC is so hard to code into FFmpeg/Libav: http://blogs.gentoo.org/lu_zero/2014/04/04/the-road-to-mvc/ (posted by Luca Barbato and Vittorio who have been two of the lead developers in the FFmpeg and Libav projects for the past 10-years).

Interface and menus

INCOMPLETE:
This page or section is incomplete. Please add information or correct uncertain data which is marked with a ?


How Kodi does 3D detection

Kodi has three ways to detect whether a videofile is a 3D video. These methods are checked in the following order:

Embedded streaminfo

First, Kodi tries to detect the stereoscopic mode for a video when extracting streamdetails from the videofile.

One of the supported fields is the 'Stereomode' field in the Matroska specification: http://matroska.org/technical/specs/index.html#StereoMode

Manual selection

When playing a video, you can bring up the video settings dialog to manually select the stereoscopic mode.

If you've done this before, Kodi will remember this setting and use it as the second method to detect the stereoscopic mode of a videofile.

Video filenames flags

The third and final method is detection through the filename of the video.

Kodi uses regular expressions to check for certain flags in the filename.

In order to properly detect the stereomode, two tags need to be present in the filename. First, a '3D' tag has to be present that matches the following regex: [-. _]3d[-. _]

In addition to this, either a 'SBS' tag [-. _]h?sbs[-. _] or a 'TAB' flag [-. _]h?tab[-. _] must be present in the filename.

You can customize these regular expressions through the Advancedsettings.xml file.


Regex matching is done case-insensitive, so for example either .3d. and .3D. will work.

Note: the tags need be be surrounded be either a hyphen -, space  , dot . or underscore _.


See the table below for some examples:

3D Stereoscopic side-by-side Stereoscopic top-and-bottom
.3D. .sbs. .tab.
-3d- .SBS. .TAB.
3d .HSBS. .HTAB.
_3d_ -hsbs- -htab-
.3D- _sbs_ _tab_
3D. SBS TAB
.3D sbs tab
-SBS -TAB
HSBS_ HTAB_
Filename examples
  • moviename (year).3d.hsbs.mkv
  • moviename 3d sbs.mkv
  • moviename.3D-HTAB.mkv
  • moviename-3D.sbs-720p.mkv


For other filename flags examples.

Subtitiles

?

Platform specific info

General

  • Hardware acceleration is not provided for full SBS or full TAB movies, meaning users will need playback hardware with adequate CPU power.
  • Kodi's "window mode" in Settings -> System -> Video output must use normal "Full screen" and not "Full screen window".

Windows

Starting with version 8.1, Windows supports HDMI 1.4 frame packing, and Kodi on Windows can therefore not only render to half-SBS/TAB HDMI output formats, but also full-HD 3D (at 24 Hz) via the "Hardware based" output method to HDMI displays supporting HDMI 3D. This should work across all GPUs (Intel, Nvidia, ARM, tested for this text on Intel, Nvidia). This does not require any MVC specific build of Kodi.

Intel GPU

On Intel GPU, HDMI 1.4 3D support may require the GPU to support InTru 3D. With IntTru 3D, HDMI 1.4 3D full-HD (1080p@24) is supported on Windows 7, 8 and 8.1 (unclear if Kodi supports this on Windows 7, unclear if Intel article just forgot to mention Windows 10 or if there is a change in support).

NVidia GPU

HDMI 1.4 3D capable displays

When connecting a HDMI 1.4 frame packing 3D capable HDMI display to an NVidia GPU, "Enable stereoscopic 3D" must be enabled in Windows NVidia Control Panel to use it. In Kodis "stereoscopic 3D mode" selection, this enables "Hardware based" for that display. It also enables the "HD 3D" modes 1080p24 and 720p50/60 in the NVidia Control Panels "Change resolution" section. These resolutions do not need to be selected explicitly to play back 3D in Kodi, instead set "Hardware based" as the default 3D optoin and enable frame rate switching in Kodi. Kodi will then automatically switch to 1080p24 frame packing when playing back 3D videos.

When stereoscopic 3D is enabled in the NVidia Control Panel for such a HDMI display, there is no separate "2D" 1080p24 option anymore. Kodi can therefore only use the "3D" 1080p24 frame packing mode when playing back 24fps videos (without any 3D effect of course). Active 3D capable HDMI displays often enable their IR transmitter when frame packing mode is selected. This can be irritating when the IR transmitter disturbs other IR remotes and only a 2D video is shown. It may then be necessary to switch between 2D/3D on the display manually or enable stereoscopic 3D on the NVidia Control Panel manually only before playing 3D.

NVidia 3DTV Play

By default, the NVidia Control Panel shows "HDMI Blu-Ray 3D" as the "Stereoscopic 3D display type" under "Enable stereoscopic 3D" for HDMI 1.4 capable displays and there is no other option. When NVIDIA 3DTV Play is active on the system, "HDMI Blu-Ray 3D" is not available anymore, but instead "3DTV Play" must be selected to enable HDMI 1.4 frame packing resolutions. NVIDIA 3DTV Play is neither necessary nor beneficial for Kodi nor other Blu-Ray DVD playback software for video playback with HDMI 1.4 frame packing.

NVidia 3DTV is an optional and separately sold software from NVidia primarily for rendering 3D games in HDMI 1.4 stereoscopic 3D. It is also enabled automatically for free when an NVidia 3D Vision USB IR emitter is connected to the PC. That emitter services no purpose for HDMI 1.4 display, it solely serves as a dongle so customers of the NVidia 3D Vision kit (including emitter and glasses) can get NVIDIA 3DTV Play for free if they have both NVidia 3DTV Vision capable display and HDMI 1.4 display connected to their PC. See http://www.nvidia.com/object/3dtv-play-compare.html.

When NVIDIA 3DTV Play is active, Kodi may display during startup a red warning onscreen that the selected resolution is incompatible with HDMI 1.4 3D. This is NVIDIA 3DTV Play recognizing Kodi as a 3D application. The warning will go away after some time and can simply be ignored.

NVidia 3D Vision

NVidia 3D Vision uses 3D active shutter glassses in conjunction with (certified for NVidia 3D Vision) DisplayPort PC Displays at 100/120/144 Hz. This can be used to display 3D video up to the full display resolution of the display used. In the NVidia Control Panel, Stereoscopic 3D needs to be enabled, then a resolution with >= 100Hz refresh rate needs to be choosen. 144Hz is best for 24p material to avoid motion judder. In Kodi, "Adjust display refresh rate" must be disabled (or else 3D vision gets enabled when Kodi switches to 24p fps) and "Hardware based" output method must be choosen. Tested with Windows 10, Kodi 17.6 for this paragraph (01/2018).

ARM (Android, iOS, Raspberry Pi)

  • 3D modes anaglyph and interlaced are not currently supported on ARM platforms (such as Android, iOS, Raspberry Pi, or other linux-based ARM distros) due to those platforms using OpenGLES rather than OpenGL or DirectX.

Other guides

See also