# MPVKit
[](https://github.com/mpv-player/mpv)
[](https://github.com/FFmpeg/FFmpeg)
[](https://github.com/mpvkit/MPVKit/main/LICENSE)
> MPVKit is only suitable for learning `libmpv` and will not be maintained too frequently.
`MPVKit` is a collection of tools to use `mpv` in `iOS`, `macOS`, `tvOS` applications.
It includes scripts to build `mpv` native libraries.
Forked from [kingslay/FFmpegKit](https://github.com/kingslay/FFmpegKit)
## About Metal support
Metal support only a patch version ([#7857](https://github.com/mpv-player/mpv/pull/7857)) and does not officially support it yet. Encountering any issues is not strange.
## Installation
### Swift Package Manager
```
https://github.com/mpvkit/MPVKit.git
```
### Choose which version
| Version | License | Note |
|---|---|---|
| MPVKit | LGPL | [FFmpeg details](https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md) , [mpv details](https://github.com/mpv-player/mpv/blob/master/Copyright) |
| MPVKit-GPL | GPL | Support samba protocol, same as old MPVKit version |
## How to build
```bash
make build
# specified platforms (ios,macos,tvos,tvsimulator,isimulator,maccatalyst,xros,xrsimulator)
make build platform=ios,macos
# build GPL version
make build enable-gpl
# clean all build temp files and cache
make clean
# see help
make help
```
## Make demo app using the local build version
If you want the demo app to use the local build version, you need to modify `Package.swift` to reference the local build xcframework file.
Click here for more information.
```
.binaryTarget(
name: "Libmpv-GPL",
path: "dist/release/Libmpv.xcframework.zip"
),
.binaryTarget(
name: "Libavcodec-GPL",
path: "dist/release/Libavcodec.xcframework.zip"
),
.binaryTarget(
name: "Libavdevice-GPL",
path: "dist/release/Libavdevice.xcframework.zip"
),
.binaryTarget(
name: "Libavformat-GPL",
path: "dist/release/Libavformat.xcframework.zip"
),
.binaryTarget(
name: "Libavfilter-GPL",
path: "dist/release/Libavfilter.xcframework.zip"
),
.binaryTarget(
name: "Libavutil-GPL",
path: "dist/release/Libavutil.xcframework.zip"
),
.binaryTarget(
name: "Libswresample-GPL",
path: "dist/release/Libswresample.xcframework.zip"
),
.binaryTarget(
name: "Libswscale-GPL",
path: "dist/release/Libswscale.xcframework.zip"
),
```
## Run default mpv player
```bash
./mpv.sh --input-commands='script-message display-stats-toggle' [url]
./mpv.sh --list-options
```
> Use Shift+i to show stats overlay
## Related Projects
* [moltenvk-build](https://github.com/mpvkit/moltenvk-build)
* [libplacebo-build](https://github.com/mpvkit/libplacebo-build)
* [libdovi-build](https://github.com/mpvkit/libdovi-build)
* [libshaderc-build](https://github.com/mpvkit/libshaderc-build)
* [libluajit-build](https://github.com/mpvkit/libluajit-build)
* [libass-build](https://github.com/mpvkit/libass-build)
* [libbluray-build](https://github.com/mpvkit/libbluray-build)
* [libsmbclient-build](https://github.com/mpvkit/libsmbclient-build)
* [gnutls-build](https://github.com/mpvkit/gnutls-build)
* [openssl-build](https://github.com/mpvkit/openssl-build)
## Donation
If you appreciate my current work, you can buy me a cup of coffee ☕️.
[](https://ko-fi.com/C0C410P7UN)
## License
`MPVKit` source alone is licensed under the LGPL v3.0.
`MPVKit` bundles (`frameworks`, `xcframeworks`), which include both `libmpv` and `FFmpeg` libraries, are also licensed under the LGPL v3.0. However, if the source code is built using the optional `enable-gpl` flag or prebuilt binaries with `-GPL` postfix are used, then `MPVKit` bundles become subject to the GPL v3.0.