Skip to main content

BD-to-AVP 3D Blu-ray Disc to Apple Vision Pro README

Introduction

This tool processes 3D video content from Blu-ray discs, ISO images, MKV files, or mts files, creating a final video file compatible with the Apple Vision Pro. It uses FFmpeg, MakeMKV, and a bundled native MVC decoder helper for video extraction, audio transcoding, and video stream merging to convert from Mpeg 4 MVC 3D video to MV-HEVC 3D video. The tool also injects 360° metadata into the video file for spatial media playback. You have the option of AI upscaling the video to 4K resolution and AI OCR of subtitles.

The videos will play directly in the Files or Screenlit app on the AVP.

Screenshots

Screenshot of main screen Screenshot of about screen

GUI install

To install the GUI version of Blu-ray to Vision Pro, download the latest release from the releases page. Open the DMG file and drag the app to your Applications folder.

The GUI app does not install Homebrew or modify your shell setup. Runtime tools are bundled into the app where possible. MakeMKV remains an external requirement for reading Blu-ray discs; install the current macOS version from the MakeMKV website before converting discs.

Terminal install or update (power users)

The terminal/PyPI version is for power users who manage their own command-line dependencies. Install the tools listed below, create a Python environment, then install BD_to_AVP with pip.

Prerequisites

Ensure the following are installed on your Mac (if using the terminal/PyPI version):

  • Apple Silicon Mac: A Mac with Apple Silicon, such as the M1, M1 Pro, or M1 Max
  • macOS Sonoma: The latest version of macOS.
  • Python 3.12: The latest version of Python.
  • Homebrew: The missing package manager for macOS (or Linux).
  • FFmpeg: A complete, cross-platform solution to record, convert, and stream audio and video.
  • MakeMKV: For converting disc video content into MKV files.
  • spatial-media-kit-tool: A tool for injecting 360° metadata into video files.
  • MP4Box: A multimedia packager available for Windows, Mac, and Linux.
  • MKVToolNix: A set of tools to create, alter, and inspect Matroska files.

Current release note: BD_to_AVP still uses MakeMKV for Blu-ray title extraction. Extracted MVC .h264 video, including MVC video extracted from direct .mts/.m2ts sources, now uses a bundled native Apple Silicon MVC splitter when available. Native MVC splitting supports 8-bit Blu-ray 3D MVC sources only.

Runtime tool lookup prefers explicit BD_TO_AVP_<TOOL>_PATH environment overrides, bundled tools in bd_to_avp/bin, tools already available in PATH, and finally the legacy /opt/homebrew/bin location. The GUI app uses bundled tools where available; the terminal/PyPI version still expects power users to install command-line tools themselves.

Manual terminal/PyPI dependency setup

These steps are for terminal/PyPI users who manage their own command-line tools. GUI users should use the release DMG and install MakeMKV from the MakeMKV website.

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Homebrew formula dependencies. MP4Box is provided by gpac.
brew install ffmpeg gpac mkvtoolnix python@3.12 tesseract

# Install the current macOS MakeMKV build from https://www.makemkv.com/.
# The app bundle is detected automatically from /Applications/MakeMKV.app.

# Ensure Python 3.12 is correctly installed then create a virtual environment
python3.12 -m pip install --upgrade pip
python3.12 -m venv ~/.bd_to_avp_venv

# Activate the virtual environment and install BD_to_AVP
source ~/.bd_to_avp_venv/bin/activate
pip install bd_to_avp

# Run the command from the virtual environment
bd-to-avp --help

GUI Usage

If you have installed the terminal version and wish to use the GUI version, you can run the following command in your terminal:

bd-to-avp

As long as you provide no arguments, the GUI will open.

Terminal Usage

Navigate to the tool's directory in your terminal and execute the command with the required and optional parameters:

Command Syntax

bd-to-avp --source <source> [--source-folder <source-folder>] [options]

Parameters

  • --source: Source for a single disc number, MKV file path, or ISO image path (required).
  • --source-folder: Source folder path. This option will recurively scan for image files or mkv files. Will take precedence over --source if both are provided.
  • --fx-upscale: Upscale video to 4K resolution using fx-upscale (disabled by default).
  • --remove-original: Remove original file after processing.
  • --overwrite: Overwrite existing output file.
  • --keep-files: Keep intermediate files (disabled by default).
  • --output-root-folder: Output folder path. Defaults to the current directory.
  • --transcode-audio: Enable audio transcoding to AAC (disabled by default).
  • --audio-bitrate: Audio bitrate for transcoding in kb/s do not include unit (default: "384").
  • --left-right-bitrate: Bitrate for left and right views in Mb/s do not include unit (default: "20").
  • --mv-hevc-quality: Quality factor for MV-HEVC encoding (default: "75").
  • --fov: Horizontal field of view for MV-HEVC (default: "90").
  • --frame-rate: Video frame rate (auto-detected if not provided).
  • --resolution: Video resolution (auto-detected if not provided).
  • --swap-eyes: Swap left and right views (disabled by default).
  • --start-stage: Start processing at a specific stage.
  • --output-commands: Output commands used to console.
  • --software-encoder: Use software encoder for MV-HEVC encoding (disabled by default).
  • --skip-subtitles: Skip subtitle extraction (disabled by default).
  • --continue-on-error: Continue processing after an error (disabled by default).
  • --language: Language code for audio and subtitle extraction (default: "eng") Use the ISO 639-2 (three character) code.
  • --remove-extra-languages: Remove extra audio and subtitle languages (disabled by default).
  • --no-keep-awake: Prevent the system from sleeping during processing (disabled by default).
  • --version: Show the version number and exit.

Stage Names

  • CREATE_MKV
  • EXTRACT_MVC_AND_AUDIO
  • EXTRACT_SUBTITLES
  • CREATE_LEFT_RIGHT_FILES
  • UPSCALE_VIDEO
  • COMBINE_TO_MV_HEVC
  • TRANSCODE_AUDIO
  • CREATE_FINAL_FILE
  • MOVE_FILES

Examples

Process a Blu-ray disc:

bd-to-avp --source disc:0 --output-root-folder /path/to/output

Process an ISO image:

bd-to-avp --source /path/to/movie.iso --output-root-folder /path/to/output

Process an MKV file:

bd-to-avp --source /path/to/movie.mkv --output-root-folder /path/to/output --transcode-audio

Upscale Quality

For most users, the default values of 75 HEVC Quality and 75 Upscale Quality provides a good tradeoff of preserving all the details of the original film, the extra details generated by the upscaler, while also keeping the size of the resulting video manageable.

If you would like to change the default quality, here are some recommended alternative settings sorted by final output size, with some notes about the quality of the results.

HEVC Quality Upscale Quality Min Processing Space Needed Final Size Notes
85 85 ~ 225 GB ~ 95 GB These settings are arguably "too" high. Only for those obsessed with maintaining the best possible quality.
85 50 ~ 130 GB ~ 62 GB A reasonable choice for "Best Quality" encoding.
75 75 ~ 100 GB ~ 47 GB The default setting.
75 50 ~ 75 GB ~ 37 GB Provides a good trade-off for minimizing storage space while retaining quality throughout the process.
65 65 ~ 75 GB ~ 32 GB Compression artifacting is very visible in dark scenes or on fast-moving objects, but is otherwise okay.

HEVC Quality values below 65 are not recommended when upscaling. At that quality level, you are essentially upscaling compression artifacts. Keeping the video in 1080p and increasing the HEVC Quality will result in a better viewing experience.

Note on Blu-ray drives

If your BD drive does not seem to be compatible with your M-series Mac, it's possible that the error is related to the region code, which BDs handle differently than DVDs.

Solution

  • Connect your BD drive to your Mac via USB. Using a dongle often yields better results than a direct connection.
  • Insert a DVD (not a Blu-ray) into the drive and open the DVD Player.
  • If prompted, select a region code for the DVD.
  • Eject the DVD and insert a Blu-ray disc. Your Mac should now recognize the Blu-ray discs.

This method has been effective in resolving compatibility issues.

Contribution

Contribute to the project by submitting pull requests or opening issues for bugs and feature requests.

Acknowledgements

Big thanks to:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bd_to_avp-0.2.142.tar.gz (5.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bd_to_avp-0.2.142-py3-none-any.whl (5.6 MB view details)

Uploaded Python 3

File details

Details for the file bd_to_avp-0.2.142.tar.gz.

File metadata

  • Download URL: bd_to_avp-0.2.142.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bd_to_avp-0.2.142.tar.gz
Algorithm Hash digest
SHA256 0702a524c942f1d3e13045b1ce1b6c8441e6f57b97b5555576832de7874d4de4
MD5 db13ee3222b61bfb0785b5c48fa338c0
BLAKE2b-256 3c56981d74e9a1514fb76ca1bd279aba746ee2c923c159863061b25fafcd0842

See more details on using hashes here.

File details

Details for the file bd_to_avp-0.2.142-py3-none-any.whl.

File metadata

  • Download URL: bd_to_avp-0.2.142-py3-none-any.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bd_to_avp-0.2.142-py3-none-any.whl
Algorithm Hash digest
SHA256 49b449d14ffb9b42f8dbaba14fda48f0193568d9a18bd2d212bf11b53c111d3c
MD5 ee0751a372ee6482fe2ec818296e83b1
BLAKE2b-256 941003f8f63da840aa3420a2c0f9660222a58cfebca34f9c09c23579dfdc1efa

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page