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中有所说明。
编译
要编译完整功能的版本,需要几个外部库的开发文件。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时的依赖项:
- gcc或clang,x86和x86_64上需要yasm
- fribidi、freetype、fontconfig开发头文件(用于libass)
- harfbuzz(正确渲染组合字符所必需,特别是在macOS上正确渲染非英语文本,以及在任何平台上渲染阿拉伯/印度文字)
编译FFmpeg时的依赖项:
- gcc或clang,x86和x86_64上需要yasm
- 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),它首先编译FFmpeg库和libass,然后将播放器静态链接到这些库上进行编译。
如果您想构建Windows二进制文件,请参阅Windows编译。
发布周期
每年一到两次,从当前开发状态中截取一个版本,并分配一个0.X.0版本号。除非出现安全问题,否则不会进行进一步的维护。
发布的目的是满足Linux发行版的需求。Linux发行版也预计会在出现bug时应用自己的补丁。
除最新版本外,其他版本均不受支持和维护。
更多信息请参阅发布政策文档。
错误报告
请使用GitHub提供的问题跟踪器向我们发送错误报告或功能请求。请按照模板的说明操作,否则问题可能会被忽视或关闭为无效。
贡献
请阅读contribute.md。
对于小的更改,您可以直接通过GitHub向我们发送拉取请求。对于较大的更改,请在开始工作之前在IRC上与我们讨论。这将使双方日后的代码审查更加容易。
许可证
默认为GPLv2"或更高版本",使用-Dgpl=false
时为LGPLv2.1"或更高版本"。
详情请参阅此处。
历史
本软件基于MPlayer项目。在mpv作为一个项目存在之前,代码库曾短暂地在mplayer2项目下开发。详情请参阅FAQ。
联系方式
大部分活动发生在IRC频道和GitHub问题跟踪器上。