关于 mpv
mpv 是一个轻量级的开源媒体播放器,可从命令行完全控制。支持播放本地文件和网络流,提供脚本化接口用于自动化和集成。
主要功能
- 01播放本地视频和音频文件
- 02直接播放网络流地址
- 03通过命令行标志定制播放行为
- 04支持脚本扩展和自动化
适用场景
- 01自动化视频处理工作流
- 02集成到编码 Agent 进行媒体验证
- 03批量处理和无头播放场景
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行mpv --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍

mpv
外部链接
概览
mpv 是一款自由(强调自由)的命令行媒体播放器。它支持种类繁多的媒体文件格式、音视频编解码器和字幕类型。
这里有一份常见问题。
可在发布列表中找到各版本。
系统要求
- 较新的 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。
更新日志
没有完整的更新日志;不过,播放器核心接口的变更会列在接口更新日志中。
C API 的变更记录在客户端 API 更新日志中。
发布列表中概述了每个版本的大部分重要变更。
默认按键绑定的变更会在 restore-old-bindings.conf中标明。
默认 OSC 绑定的变更会在 restore-osc-bindings.conf中标明。
编译
启用全部功能进行编译需要多个外部库的开发文件。Mpv 需要使用 meson 进行构建。你可以从发行版或 PyPI 获取 Meson。
创建构建目录后(例如 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 支持存在许多错误)。
- AV1 解码支持需要 dav1d。
- 若要在 Linux 上获得良好的 nvidia 支持,请确保已安装 nv-codec-headers 并且 configure 能够找到它。
上述大多数库都能在常见 Linux 发行版中找到合适版本。为了方便编译所有组件的最新 git 主分支版本,你可以使用单独提供的构建封装工具(mpv-build),它会先 编译 FFmpeg 库和 libass,然后编译与它们静态链接的播放器。
如果要构建 Windows 二进制文件,请参阅 Windows 编译。
发布周期
每年会从当前开发状态中切出一个或两个版本,并分配 0.X.0 版本号。除非出现安全问题, 否则不会进行后续维护。
发布版本的目标是满足 Linux 发行版的需求。出现错误时,也预计 Linux 发行版会应用 自己的补丁。
除最新版本外的其他版本均不受支持,也不会维护。
更多信息请参阅发布政策文档。
Bug 报告
请使用 GitHub 提供的 issue 跟踪器向我们提交 Bug 报告或功能请求。 请遵循模板中的说明,否则问题很可能会被忽略或作为无效问题关闭。
参与贡献
请阅读 contribute.md。
小改动可以直接通过 GitHub 向我们提交拉取请求。较大的改动请在开始着手前先来 IRC 和我们讨论。这样之后双方进行代码审查会更容易。
你可以查看 wiki 或 问题跟踪器,寻找可以参与贡献的内容。
许可证
默认采用 GPLv2“或更高版本”许可证,使用 -Dgpl=false 时采用 LGPLv2.1“或更高版本”许可证。
参见详细信息。
历史
本软件基于 MPlayer 项目。在 mpv 作为项目诞生之前,代码库曾短暂以 mplayer2 项目的名义开发。详情请参阅 FAQ。
联系方式
大多数交流都在 IRC 频道和 GitHub 问题跟踪器上进行。