3D and Spatial VR Formats
Which 3D, 180°, 360° and fisheye videos Alt C plays, how it recognises each one, and how to name your files.
Alt C plays 3D films and VR video on every headset: Vision Pro, Android XR, Meta Quest and Steam Frame. Most files need nothing from you: the app reads what the file says about itself, then its name. When it gets one wrong, you can change it while it plays, and the app remembers your choice.
For codecs, HDR and subtitles, see Video Support.
What plays
| Format | Vision Pro | Android XR | Meta Quest | Steam Frame | Notes |
|---|---|---|---|---|---|
| 3D Blu-ray (MVC) | ✓ | ✓ | ✓ | ✓ | 3D or 2D. |
| 3D or 2D. | |||||
| 3D frame-sequential (H.264, HEVC) | ✓ | ✓ | ✓ | ✓ | 3D or 2D. Left and right as alternate frames. |
| 3D or 2D. Left and right as alternate frames. | |||||
| 3D side-by-side | ✓ | ✓ | ✓ | ✓ | Full or half width. |
| Full or half width. | |||||
| 3D top-and-bottom | ✓ | ✓ | ✓ | ✓ | Full or half height. |
| Full or half height. | |||||
| 180° video | ✓ | ✓ | ✓ | ✓ | 2D, side-by-side or top-and-bottom. |
| 2D, side-by-side or top-and-bottom. | |||||
| 360° video | ✓ | ✓ | ✓ | ✓ | 2D, side-by-side or top-and-bottom. |
| 2D, side-by-side or top-and-bottom. | |||||
| Fisheye | ✓ | ✓ | ✓ | ✓ | 180°, 190°, 200° and 220° lenses, including Canon's RF5.2 dual fisheye. Quest and Android XR Fisheye suport is currently limited to 180° angles greater will be trimmed but will still playback. |
| 180°, 190°, 200° and 220° lenses, including Canon's RF5.2 dual fisheye. Quest and Android XR Fisheye suport is currently limited to 180° angles greater will be trimmed but will still playback. | |||||
| MV-HEVC (iPhone spatial video) | Partial | Partial | Partial | Partial | Plays in 2D. |
| Plays in 2D. | |||||
| EAC / cubemap 360° | ✕ | ✕ | ✕ | ✕ | Not supported yet. The file plays as a flat 2D picture. |
| Not supported yet. The file plays as a flat 2D picture. | |||||
On a phone, tablet or TV, a 3D film plays as an ordinary 2D picture: you see one eye, at the film's normal shape. 180°, 360° and fisheye video can't be shown on a flat screen. Playing one shows the message "VR content requires an XR headset."
How Alt C recognises a format
The app checks four things, in this order. The first one that answers wins.
- Your choice in the player. Anything you set under Format in Spatial Options while the video plays. It is remembered for that file.
- What the file says about itself. Many cameras, editing tools and VR video downloads mark a file as 180°, 360° or 3D inside the file. Alt C reads this the first time the file plays and remembers it.
- The file name. The words described below.
- Jellyfin's 3D tag. Jellyfin sets this when a file is named following its 3D naming rules, or when you set a title's 3D format in Jellyfin yourself. When a file has this tag, the tag decides whether it is side-by-side or top-and-bottom; the name can still add the shape (180°, 360°, fisheye) and the eye order.
The badge on a title's page shows what Alt C has recognised: 3D, 180°, 360°, 3D 180°, 3D 360°, Fisheye or 3D Fisheye. The library filter has the same groups under 3D & VR.
Naming your files
Alt C looks for whole words in the file name. Words are separated by spaces, dots, dashes, underscores or brackets, and capitals don't matter: _LR, .lr. and (LR) all count, but LR inside another word doesn't.
You can combine one word from each group below, in any order.
Layout: how the two eyes are stored
| Write | Means |
|---|---|
LR, SBS, 3DH, HSBS, FSBS | Side-by-side: left eye on the left |
RL, 3DHR | Side-by-side, right eye on the left |
TB, OU, TAB, 3DV, HTAB, FTAB, OverUnder | Top-and-bottom: left eye on top |
BT, 3DVR | Top-and-bottom, right eye on top |
Mono, 2D | One picture for both eyes |
Full or half resolution
Side-by-side and top-and-bottom files come in two kinds. Full files keep each eye at full resolution, so the whole picture is twice as wide (or tall) as a normal film. Half files squeeze both eyes into a normal-sized picture.
| Write | Means |
|---|---|
FSBS, FTAB, Full, or a layout word ending in F: LRF, RLF, TBF, BTF, SBSF, 3DHF, 3DVF | Full resolution |
HSBS, HTAB, Half | Half resolution |
When the name doesn't say, Alt C judges from the shape of the picture when it plays. A 3840 × 1080 side-by-side file is clearly two full 16:9 eyes; a 1920 × 1080 one is two squeezed ones.
This only matters for flat 3D. 180°, 360° and fisheye video is never squeezed.
Shape
| Write | Means |
|---|---|
VR180, 180x180, Mono180, or 180 | 180° |
VR360, 360x180, Mono360, or 360 | 360° |
| nothing | A flat screen |
A plain 180 or 360 counts only next to a layout word (_180_LR, _360_TB, _MONO360) or as the last word of the name (Drone Flight_360.mp4). That way a film called 360 Degrees of Sky isn't mistaken for VR video.
Fisheye lenses
Fisheye video comes straight from dual-lens VR cameras, before it is converted to 180°. Name the lens and Alt C maps it correctly.
| Write | Lens |
|---|---|
Fisheye, Fisheye180, F180, 180F | 180° |
Fisheye190, 190F | 190° |
RF52 | Canon RF5.2 dual fisheye: 190°, side-by-side, right eye on the left |
Fisheye200, MKX200, 200F | 200° |
Fisheye220, MKX220, MKX22, VRCA220, 220F | 220° |
Add a layout word for stereo fisheye (_FISHEYE190_LR). RF52 needs nothing else.
Frame-sequential files
| Write | Means |
|---|---|
FrameSeq, FrameSequential, 3DFS | Frame-sequential 3D: left and right as alternate frames |
There's no common convention for these files, so these words are Alt C's own. FS on its own doesn't count.
Not supported yet
Files named EAC, EAC360, 360EAC, Cube or Cubemap use a cube-shaped projection Alt C doesn't draw yet. They play as a flat 2D picture rather than the wrong shape.
Examples
| File name | Plays as |
|---|---|
Avatar (2009) - fsbs.mkv | 3D, full side-by-side |
Gravity (2013).3D.hsbs.mkv | 3D, half side-by-side (Jellyfin's naming) |
Hugo (2011)_TAB.mkv | 3D, half top-and-bottom |
Concert_180_LR.mp4 | 3D 180°, side-by-side |
Waterfall_180_TB.mp4 | 3D 180°, top-and-bottom |
City Walk_MONO180.mp4 | 180°, 2D |
Drone Flight_360.mp4 | 360°, 2D |
Timelapse_360_TB.mp4 | 3D 360°, top-and-bottom |
Hike_FISHEYE190_LR.mp4 | 3D fisheye 190°, side-by-side |
Kitchen_RF52.mp4 | 3D fisheye, Canon RF5.2 |
Old Rip_RL.mkv | 3D side-by-side, right eye first |
Projector Demo_FrameSeq.mkv | 3D, frame-sequential |
Changing the format while you watch
On a headset, open Spatial Options in the player and use Format:
- Shape: Flat, 180°, 360°, or a fisheye lens (180°, 190°, 200°, 220°).
- Layout: 2D, Side-by-side or Top-bottom. MVC films also show 3D Blu-ray (MVC), and H.264 video at 48 frames per second or more also shows 3D (frame sequential).
- Options: 3D shows both eyes in stereo; turn it off and both eyes see the left one. Swap eyes fixes a file whose eyes are the wrong way round. Half width is for squeezed flat 3D.
The video changes straight away, and Alt C remembers the format for that file, so it opens the same way next time. A choice belongs to one version of a title: if a film has a 2D and a 3D version, each keeps its own.
2D under Layout means the file isn't 3D at all, so you see the whole picture, both halves side by side. To watch a 3D file with one eye's picture, keep its layout and turn 3D off under Options.
3D Blu-ray (MVC)
3D Blu-ray films use MVC, which stores the second eye as an extra layer on top of an ordinary 2D film. Jellyfin marks a file as MVC when you name it following Jellyfin's 3D naming rules or set its 3D format in Jellyfin yourself. If neither is done, Alt C spots MVC the first time the file plays: 3D Blu-ray (MVC) appears under Format straight away, and the 3D choice is offered every time after that.
- On a headset, the play button asks Play in 3D or Play in 2D.
- On a phone, tablet or TV, it plays in 2D straight away.
MVC 3D needs direct play: the server can't transcode the second eye, so 3D plays at Original quality. Every other format here also plays when the server transcodes it, for example on a slow or remote connection.
Frame-sequential 3D
Some older 3D files, made for 3D projectors and TVs, store the eyes as alternate frames: left, right, left, right, at twice the film's frame rate. Alt C pairs each left frame with the right frame after it and plays the film at its normal rate.
- Files named for it (
FrameSeq,3DFS, see Naming your files) play as frame-sequential from the start, show the 3D badge, and appear under 3D (frame sequential) in the library's 3D & VR filter. - Files that mark themselves (with the H.264 or HEVC frame-packing tag) are recognised the first time they play: 3D (frame sequential) is selected under Format straight away, and every time after that.
- Files that do neither look like ordinary video at 48 or 60 frames per second. If one flickers or looks doubled, choose 3D (frame sequential) under Format. If the depth looks inside out, turn on Swap eyes.
- On a phone, tablet or TV it plays in 2D: you see the left eye.
Like MVC, frame-sequential 3D needs direct play, so it plays at Original quality.
Getting the best results
- Keep the file's own markings. Videos from VR cameras and VR downloads usually describe themselves. Alt C reads that before anything else.
- Name what the file can't say. Flat 3D films almost never describe themselves, so add a layout word:
- fsbs,_TB,_RL. - Fix a wrong guess once. Change it under Format while it plays, and that file stays fixed on your current playback device.