| Category | Details | Guidance level |
|---|---|---|
General Per Device Capabilities | Different devices have different capabilities. Use MediaCodecInfo.CodecCapabilities to determine the best possible configuration. The guidelines aim towards the latest device. | Should / Recommended |
Video playback configuration & resolution | Bitrate/ABR settings should align with Smart TV streaming, with a minimum threshold of 4 mbps. Max available quality should match that of TV platforms up to 4K. | Should / Recommended |
Video Resolution | Time to 1080p is <= 5 seconds | Should / Recommended |
Video encoding / codecs | For 2D streaming use one of the supported codecs: * AV1 (will work on Quest 3 and above only) * HEVC (H.265) * VP9 * AVC (H.264) Note: Certain codecs may be restricted in certain geo-locations based on licensing restrictions. MediaCodecInfo.CodecCapabilities would correctly reflect the available codecs in that case. | Should / Recommended |
Orientation of app panel | Landscape panel | Should / Recommended |
DRM options | If required, the following DRM implementation options are available: L1 and L3 Widevine DRM. | Requirement (if streaming service has DRM obligations to third-parties) |
Parity Network Speeds | CDN and network infrastructure serving streaming and downloads to Meta devices should deliver speed and throughput consistent with the top tier throughput offered on other platforms (e.g., mobile, SmartTV, web). | Should / Recommended |
Audio | Formats: Dolby Digital or Dolby Atmos (to the extent available on other third-party platforms). Minimum: 2 channel stereo. App-Level Audio Controls: Use player-level volume APIs. App must include a mute/unmute button that adjusts audio for the app only. Using system-wide volume and system-wide mute is prohibited. | Should / Recommended |
Audio | Volume Controls: App should include a volume slider (0-100%) for granular control. Implement support for audio focus handling to properly adjust volume when multiple apps are playing audio. Expose media controls when the panel is minimized/closed. | May / Optional |
Login experience (device code login) | Prioritize a device code login flow (a user-friendly authentication flow where a device displays a code in VR/MR/AR, which the user enters on another authorized device (mobile app/browser) to grant access). Recommended in preferred order: Passkey login flow: Add support for passkey based login. This will enable users to use passkeys cross-device for 1st time login and create local passkeys on device for repeat time login. Cross-device URL Login Flow: Implement a URL that users can access on a secondary device for login. This URL will contain a nonce (e.g. device code) which is opened on a secondary device in order to log in the user on the headset. To reduce friction, use the Meta Horizon OS Login API libraries to forward the URL from the headset to the secondary device via the Meta Horizon App. | Should / Recommended |
Offline downloads | Enable offline downloads at multiple quality brackets, including 1080p, 2K and 4K (if offered on other third-party platforms). | Should / Recommended |
Input support | Support controllerless input methods, including hand tracking (gesture-based) input. | Should / Recommended |
In app purchase | If the app offers any in-app purchase, either: (i) use Meta Pay; or (ii) remove in-app purchasing from the app; or (iii) redirect the user to the Quest Browser to complete the transaction. | Should / Recommended |
AI Voice Assistant | Partner will allow Meta to use the same metadata that powers search and discovery to power its AI voice assistant. | Should / Recommended |
Closed captions | Support for closed captions. | Should / Recommended |
Video resolution | Use DisplayMetrics rounded up to the next higher resolution. Typically 1440p (minimum 1080p or source) for a large Panel, up to 4K+. | May / Optional |
Video quality | Video Multimethod Assessment Fusion (VMAF) score at 1080p source resolution should target minimum quality of 60 and high end quality of 85 when streaming over mobile networks, and 95 when streaming over WiFi. SSIM at 1080p source resolution should target minimum quality of 0.92 and high end quality of 0.96 when streaming over mobile networks, and 0.98-1 when streaming over WiFi. | Should / Recommended |
Size of app panel | 1280px or larger width (see here for further detail). | May / Optional |
HDR Video Format | HDR10, HDR10+ or Dolby Vision Profile 5, 8 (to the extent available on other third-party platforms). | May / Optional |
Errors, Failures and Debugging | Service to share common points of failure for Platform debugging purposes. | May / Optional |
| Category | Details | Guidance level |
|---|---|---|
Video Resolution | In case of side by side format, the horizontal resolution should be doubled. | Should / Recommended |
Bitrate | When using MV-HEVC format, the bitrate should be roughly 40% higher than corresponding 2D quality. When using side by side format, the bitrate should be doubled. | Should / Recommended |
Spatial Subtitles | Support for depth-based subtitle parsing and rendering. Plugin and sample code provided by Meta. | Should / Recommended |
3D layout | Preferred: MV-HEVC with AV1 SBS fallback. Alternative: * Side by side (Left / Right): Use square aspect ratio i.e. a 16:9 media becomes 32:9 in 3D. * Top / Bottom | Should / Recommended |
Codec | MV-HEVC with AV1 SBS fallback stream. | Should / Recommended |
HDR Video Format | If using MV-HEVC: HDR10+ or Dolby Vision Profile 20. | Should / Recommended |
| Category | Details | Guidance level |
|---|---|---|
Video Resolution | Aim for 30 to 60 pixels per degree (PPD), capped by the max decode resolution of the device and camera hardware. For cropped equirectangular projection at 30 PPD, this computes to 5400x5400 (1:1 aspect ratio). Note that future Meta headset displays may exceed 40 PPD, in which case that would be the desired angular resolution. Realistically, most services may only be able to achieve: 4320x4320 / 60fps. Max 5760x5760 / 60fps (hardware decode limit). | May / Optional |
Video Frame Rate | 48-60fps. High frame rates are required for 180 content to mitigate stutter and judder. | Should / Recommended |
Video encoding | h.265 or AV1 (AV1 will work on Quest 3 and above only) | May / Optional |
Bitrate | Refer to our VMAF and SSIM guidelines to determine the bitrate that achieves the recommended quality bar. Typically we would expect a commensurate bitrate higher than 35 mbps. | May / Optional |
Audio | Dolby Digital or Dolby Atmos (to the extent available on other third-party platforms). | May / Optional |
| Category | Details | Guidance level |
|---|---|---|
Video Resolution | Same guidelines as 180 2D category above, but with a 2x multiplier dependent 3D layout. e.g. Left-Right layout content should use 2x the horizontal resolution. Similarly Top-bottom layout content should use 2x the vertical resolution. Realistically, most services may only be able to achieve: Side-by-side: 7680x3840 / 60fps. Max 8192x4096 / 60fps (hardware decode limit). | May / Optional |
Video Frame Rate | 48-60fps. High frame rates are required for 180 content to mitigate stutter and judder. | Should / Recommended |
Video encoding | h.265 or AV1 (AV1 will work on Quest 3 and above only) | May / Optional |
Bitrate | Refer to our VMAF and SSIM guidelines to determine the bitrate that achieves the recommended quality bar. Typically we would expect a commensurate bitrate higher than 35 Mbps for the highest quality | May / Optional |
Audio | Dolby Digital or Dolby Atmos (to the extent available on other third-party platforms). | May / Optional |
| Category | Details | Guidance level |
|---|---|---|
Video Resolution | Aim for 30 to 60 pixels per degree (PPD), capped by the max decode resolution of the device. For equirectangular projection at 30 PPD, this computes to 10800x5400 (2:1 aspect ratio). This should be clamped to the max decode resolution of the codec, typically 8k for clear and 4k for DRM content. Realistically, most services may only be able to achieve: 7680x3840 / 60fps. Max 8192x4096 / 60fps (hardware decode limit). | May / Optional |
Video Frame Rate | 48-60fps. High frame rates are required for 180 content to mitigate stutter and judder. | Should / Recommended |
Video encoding | h.265 or AV1 (AV1 will work on Quest 3 and above only) | May / Optional |
Bitrate | Refer to our VMAF and SSIM guidelines to determine the bitrate that achieves the recommended quality bar. Typically we would expect a commensurate bitrate higher than 50 mbps. | May / Optional |
Audio | Dolby Digital or Dolby Atmos (to the extent available on other third-party platforms). | May / Optional |
| Category | Details | Guidance level |
|---|---|---|
Video Resolution | Aim for 30 to 60 pixels per degree (PPD), capped by the max decode resolution of the device. For equirectangular projection at 30 PPD, this computes to 10800x10800 (top-bottom layout). This should be clamped to the max decode resolution of the codec, typically 8k for clear and 4k for DRM content. Realistically, most services may only be able to achieve: 5760x5760 / 60fps. | May / Optional |
Video Frame Rate | 48-60fps. High frame rates are required for 180 content to mitigate stutter and judder. | Should / Recommended |
Video encoding | h.265 or AV1 (AV1 will work on Quest 3 and above only) | May / Optional |
Bitrate | Refer to our VMAF and SSIM guidelines to determine the bitrate that achieves the recommended quality bar. Typically we would expect a commensurate bitrate higher than 50 mbps. | May / Optional |
Audio | Dolby Digital or Dolby Atmos (to the extent available on other third-party platforms). | May / Optional |