mirror of
https://github.com/HandBrake/HandBrake-docs.git
synced 2025-12-11 13:54:49 -06:00
85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
---
|
|
Type: article
|
|
Title: Building HandBrake for Mac
|
|
Project: HandBrake
|
|
Project_URL: https://handbrake.fr/
|
|
Project_Version: Latest
|
|
Language: English
|
|
Language_Code: en
|
|
Authors: [ Bradley Sepos <bradley@bradleysepos.com> (BradleyS), Scott (s55) ]
|
|
Copyright: 2024 HandBrake Team
|
|
License: Creative Commons Attribution-ShareAlike 4.0 International
|
|
License_Abbr: CC BY-SA 4.0
|
|
License_URL: https://handbrake.fr/docs/license.html
|
|
---
|
|
|
|
Building HandBrake for Mac
|
|
==========================
|
|
|
|
Building HandBrake for Mac requires an Apple computer with a 64-bit Intel processor running macOS 13.5 Ventura or later, and the following dependencies.
|
|
|
|
- [Xcode](https://developer.apple.com/xcode/) 15.2 or later
|
|
- free Apple Developer registration required, or install from the Mac App Store
|
|
|
|
Additional dependencies (may be built via included script):
|
|
|
|
- autoconf 2.71 or later
|
|
- automake 1.16.5 or later
|
|
- cmake 3.27.4 or later
|
|
- libtool 2.4.7 or later
|
|
- meson 1.2.1 or later
|
|
- nasm 2.15.05 or later
|
|
- ninja 1.11.1 or later
|
|
- pkg-config 0.29.2 or later
|
|
|
|
Optional dependencies (required by libdovi)
|
|
|
|
- [Rust](https://www.rust-lang.org/tools/install) 1.64.0 or later
|
|
- Cross-compiling requires adding an additional target:
|
|
- `rustup target add aarch64-apple-darwin` for cross-compiling for Apple Silicon on an Intel Mac
|
|
- `rustup target add x86_64-apple-darwin` for cross-compiling for Intel on an Apple Silicon Mac
|
|
- [openssl](https://www.openssl.org)
|
|
- may be built via included script
|
|
- [cargo-c](https://github.com/lu-zero/cargo-c)
|
|
- Can be installed by running `cargo install cargo-c`
|
|
|
|
Install Xcode and open it once. Approve any prompts to install additional tools. You may quit Xcode after it has finished loading.
|
|
|
|
If you installed Python 3 from a different source, such as Homebrew, it is necessary to check whether Python 3 can properly open HTTPS connections. The following test prints `0` for success, or `1` for failure. Upon failure, you will need to ensure SSL certificates are installed and accessible to your Python 3 installation, or remove the installation and reinstall from the official package.
|
|
|
|
python3 -c 'from urllib.request import urlopen; test = lambda x=exec("def f():\n try:\n urlopen(\"https://handbrake.fr\", timeout=10)\n return 0\n except: return 1"): f(); result = test(); exit(result)'; echo $?
|
|
|
|
Clone the HandBrake repository.
|
|
|
|
git clone https://github.com/HandBrake/HandBrake.git && cd HandBrake
|
|
|
|
You may build and install the additional dependencies using the included script. Feel free to choose a different output path, if desired.
|
|
|
|
sudo scripts/mac-toolchain-build /usr/local
|
|
|
|
This process will take a few minutes. If necessary, the script will provide you with instructions for adding the resulting binaries location to your environment's `PATH`[^default-path]. Do this now.
|
|
|
|
### Build HandBrake using command line
|
|
|
|
To build the command line interface only, disable the graphical interface by appending `--disable-xcode`.
|
|
|
|
./configure --launch-jobs=$(sysctl -n hw.activecpu) --launch
|
|
|
|
When complete, you will find `HandBrakeCLI` in the `build/xroot` directory. If the graphical interface is enabled, you will also find `HandBrake.app` in this directory.
|
|
|
|
Install HandBrake (optional).
|
|
|
|
sudo make --directory=build install
|
|
|
|
To start over, simply remove the `build` directory.
|
|
|
|
rm -rf build
|
|
|
|
### Build HandBrake using Xcode
|
|
|
|
If you installed the additional dependencies to `/usr/local`, Xcode should build without any problems.
|
|
|
|
If you installed them somewhere else that Xcode couldn't find, you can update and add your custom `PATH` in `macosx/xcconfig/supplemental.xcconfig`.
|
|
|
|
[^default-path]: `/usr/local/bin` is included in the system's `PATH` by default. It is not necessary to add it to your environment's `PATH` when installing the additional dependencies to `/usr/local`.
|