mpv-player/mpv
GitHub: mpv-player/mpv
跨平台命令行媒体播放器,支持多种音视频格式与脚本扩展,适合自动化与高性能播放场景
Stars: 34298 | Forks: 3244

# mpv
* [外部链接](#external-links)
* [概述](#overview)
* [系统要求](#system-requirements)
* [下载](#downloads)
* [更新日志](#changelog)
* [编译](#compilation)
* [发布周期](#release-cycle)
* [Bug 报告](#bug-reports)
* [贡献](#contributing)
* [许可证](#license)
* [联系方式](#contact)
## 外部链接
* [Wiki](https://github.com/mpv-player/mpv/wiki)
* [用户脚本](https://github.com/mpv-player/mpv/wiki/User-Scripts)
* [FAQ][FAQ]
* [手册](https://mpv.io/manual/master/)
## 概述
**mpv** 是一个免费(如自由)的命令行媒体播放器。它支持
多种媒体文件格式、音频和视频编解码器以及字幕类型。
这里有一份 [FAQ][FAQ]。
发布版本可以在 [发布列表][releases] 中找到。
## 系统要求
- 不要太旧的 Linux(通常,仅主动支持发行版的最新版本),Windows 10 1607 或更高版本,或 macOS 10.15 或更高版本。
- 性能稍好的 CPU。如果 CPU 太慢无法实时解码视频,硬件解码可能会有所帮助,但必须使用 `--hwdec` 选项显式启用。
- 不要太差的 GPU。mpv 的重点不在于嵌入式或集成 GPU 上的节能播放(例如,硬件解码甚至默认未启用)。低功耗 GPU 可能会导致画面撕裂、卡顿等问题。在此类 GPU 上,建议使用 `--profile=fast` 以获得流畅的播放体验。
主视频输出使用着色器进行视频渲染和缩放,
而不是 GPU 固定功能硬件。在 Windows 上,您可能需要确保
显卡驱动程序是最新的。在某些情况下,古老的后备视频
输出方法可能会有所帮助(例如 Linux 上的 `--vo=xv`),但不推荐或
不支持这种用法。
mpv 不会刻意在旧硬件或旧的、不受支持的
操作系统上运行出错,但开发时并未考虑到它们。不保证
与此类设置保持兼容。如果能正常运行,那就当作是
意外之喜。
## 下载
关于半官方构建和第三方软件包,请参阅
[mpv.io/installation](https://mpv.io/installation/)。
## 更新日志
没有完整的更新日志;但是,播放器核心接口的
变更列在 [接口更新日志][interface-changes] 中。
C API 的变更记录在 [客户端 API 更新日志][api-changes] 中。
[发布列表][releases] 包含每个版本大多数重要
变更的摘要。
默认键绑定的变更在
[restore-old-bindings.conf][restore-old-bindings] 中标明。
默认 OSC 绑定的变更在
[restore-osc-bindings.conf][restore-osc-bindings] 中标明。
## 编译
使用完整功能编译需要几个外部库的开发文件。Mpv 需要 [meson](https://mesonbuild.com/index.html)
来构建。Meson 可以从您的发行版或 PyPI 获取。
在创建构建目录(例如 `meson setup build`)后,您可以通过 `meson configure build` 查看所有
构建选项的列表。您也可以直接
查看 `meson_options.txt` 文件。日志存储在您的构建
目录下的 `meson-logs` 中。
示例:
```
meson setup build
meson compile -C build
meson install -C build
```
对于 libplacebo,如果在构建环境中不易获得
足够版本的 libplacebo,meson 可以使用 git 检出作为子项目,作为编译 mpv 的便捷
方式。它将与 mpv 静态链接。示例:
```
mkdir -p subprojects
git clone https://code.videolan.org/videolan/libplacebo.git --depth=1 --recursive subprojects/libplacebo
```
基本依赖项(不完整列表):
- gcc 或 clang
- X 开发头文件 (xlib, xrandr, xext, xscrnsaver, xpresent, libvdpau,
libGL, GLX, EGL, xv, ...)
- 音频输出开发头文件 (libasound/ALSA, pulseaudio)
- FFmpeg 库 (libavutil libavcodec libavformat libswscale libavfilter
以及 libswresample 或 libavresample)
- libplacebo
- zlib
- iconv (通常由系统 libc 提供)
- libass (OSD, OSC, 文本字幕)
- Lua (可选,OSC 伪 GUI 和 youtube-dl 集成所需)
- libjpeg (可选,仅用于截图)
- uchardet (可选,用于字幕字符集检测)
- Linux 上用于硬件解码的 nvdec 和 vaapi 库(可选)
Libass 依赖项(构建 libass 时):
- gcc 或 clang, x86 和 x86_64 上的 nasm
- fribidi, freetype, fontconfig 开发头文件 (用于 libass)
- harfbuzz (组合字符的正确渲染所需,特别是
对于 macOS 上非英语文本以及任何平台上
阿拉伯/印度语脚本的正确渲染)
FFmpeg 依赖项(构建 FFmpeg 时):
- gcc 或 clang, x86 和 x86_64 上的 nasm
- OpenSSL 或 GnuTLS (编译 FFmpeg 时必须显式启用)
- libx264/libmp3lame/libfdk-aac 如果您想使用编码功能 (编译 FFmpeg 时
必须显式启用)
- 对于原生 DASH 播放,FFmpeg 需要使用 --enable-libxml2 构建
(尽管存在安全隐患,且 DASH 支持有很多 bug)。
- AV1 解码支持需要 dav1d。
- 为了在 Linux 上获得良好的 nvidia 支持,请确保已安装 nv-codec-headers
并且 configure 可以找到它。
上述大多数库在正常的
Linux 发行版中都有合适的版本可用。为了便于编译所有内容的最新 git master,
您可能希望使用单独可用的构建包装器 ([mpv-build][mpv-build])
它首先编译 FFmpeg 库和 libass,然后编译
静态链接这些库的播放器。
如果您想构建 Windows 二进制文件,请参阅 [Windows 编译][windows_compilation]。
## 发布周期
每年一次或两次,会从当前开发状态
切出一个发布版本,并分配一个 0.X.0 版本号。除了
发生安全问题外,不进行进一步的维护。
发布的目的是为了让 Linux 发行版满意。Linux 发行版
也应该在出现 bug 时应用它们自己的补丁。
除最新版本之外的发布版本均不受支持和维护。
有关更多信息,请参阅 [发布策略文档][release-policy]。
## Bug 报告
请使用 GitHub 提供的 [问题追踪器][issue-tracker] 向我们发送 bug
报告或功能请求。遵循模板说明,否则问题
很可能会被忽略或因无效而关闭。
可以在 [讨论][discussions] 或 IRC 上提问(见
下方的 [联系方式](#Contact))。
## 许可证
默认为 GPLv2 "或更高版本",使用 `-Dgpl=false` 则为 LGPLv2.1 "或更高版本"。
见 [详情。](https://github.com/mpv-player/mpv/blob/master/Copyright)
## 历史
本软件基于 MPlayer 项目。在 mpv 作为一个项目存在之前,
代码库曾在 mplayer2 项目下进行过短暂的
开发。有关详情,请参阅 [FAQ][FAQ]。
## 联系方式
大多数活动发生在 IRC 频道和 GitHub 问题追踪器上。
- **GitHub 问题追踪器**: [问题追踪器][issue-tracker] (在此报告 bug)
- **讨论**: [讨论][discussions]
- **用户 IRC 频道**: `irc.libera.chat` 上的 `#mpv`
- **开发者 IRC 频道**: `irc.libera.chat` 上的 `#mpv-devel`
标签:4K视频, FFmpeg, HDR视频, LangChain, Linux软件, macOS软件, Python脚本扩展, rizin, Windows软件, 多媒体播放器, 多媒体框架, 多媒体编解码, 媒体处理, 字幕支持, 客户端加密, 客户端加密, 播放器内核, 流媒体, 着色器渲染, 硬件解码, 视频播放器, 轻量级, 音频播放器, 预握手, 高画质