mpv一款免费、开源、跨平台的命令行媒体播放器

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

编译

使用完整功能进行编译需要多个外部库的开发文件。Mpv 需要 meson才能进行构建。Meson 可以从您的发行版或 PyPI 获取。

创建构建目录(例如 meson setup build)后,您可以通过 meson configure build 查看所有构建选项的列表。您也可以直接查看 meson_options.txt 文件。日志存储在构建目录中的 meson-logs 中。

Example:

复制代码
meson setup build
meson compile -C build
meson install -C build

对于 libplacebo,如果在构建环境中无法轻松获得足够的 libplacebo 版本,meson 可以使用 git check out 作为子项目,以便方便地编译 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):

  • x86 和 x86_64 系统需要 gcc 或 clang、nasm
  • fribidi、freetype、fontconfig 开发头文件(用于 libass)
  • harfbuzz(用于正确渲染组合字符,尤其需要
    在 macOS 上正确渲染非英语文本,以及在任何平台上渲染阿拉伯语/印度语脚本)

FFmpeg 依赖项(编译 FFmpeg 时):

  • x86 和 x86_64 系统需要 gcc 或 clang、nasm
  • OpenSSL 或 GnuTLS(编译 FFmpeg 时必须明确启用)
  • libx264/libmp3lame/libfdk-aac(如果要使用编码,则必须
    在编译 FFmpeg 时明确启用)
  • 要实现原生 DASH 播放,需要使用 --enable-libxml2 选项编译 FFmpeg
    (尽管存在安全隐患,并且 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 发行版也应该在出现错误时应用自己的补丁。

除最新版本之外的版本均不受支持且不予维护。

请参阅[发布政策文档][release-policy]了解更多信息。

扩展链接

许可证

默认使用 GPLv2 或更高版本,使用 LGPLv2.1 或更高版本(需设置 -Dgpl=false)。
详情请参阅详情

关于项目

mpv 是一款免费的命令行媒体播放器。它支持多种媒体文件格式、音频和视频编解码器以及字幕类型。强大的脚本功能几乎可以让玩家做任何事情。Wiki 上有大量用户脚本可供选择。虽然 mpv 追求简约,不提供真正的 GUI,但它在视频顶部有一个小型控制器,用于基本控制。
GPL-2.0
C
32,295
3139
502
2012-10-13
2025-10-12

增长趋势 - stars