TOP123导航 - 探索中国以外的互联网

MPV 是一款免费、开源的命令行媒体播放器,以其强大的功能和高品质的视频输出而闻名。它基于MPlayer和mplayer2开发,支持广泛的媒体文件格式、音频/视频编解码器以及字幕类型。作为一款注重极简主义的设计工具,MPV没有传统的图形用户界面(GUI),但提供了屏幕控制器(On-Screen Controller,简称OSC)用于基本操作。下面将从多个方面详细介绍MPV,包括其历史、特点、安装方法、使用指南、脚本功能、与其他播放器的比较,以及社区与开发现状。

概述

MPV是一款命令行媒体播放器,强调自由软件精神(free as in freedom)。它支持多种媒体格式,包括视频、音频和字幕,能够处理从标准定义到高动态范围(HDR)的各种内容。MPV的核心优势在于其高品质视频输出,使用OpenGL、Vulkan和D3D11作为后端,支持高端视频缩放算法、色彩管理、帧时序、插值和HDR等特性,深受视频发烧友喜爱。此外,MPV支持硬件解码,可以在运行时按需启用,大大提升播放效率。

MPV的设计理念是极简且可扩展:它没有内置的图形界面,但可以通过脚本和插件实现几乎任何功能。官方强调活跃开发,专注于代码重构、清理和新增特性,用户可以通过提交补丁或请求新功能参与贡献。MPV还设计了简洁的C API,便于嵌入其他应用程序中。

历史

MPV的起源可以追溯到开源媒体播放器的早期发展。它于2012年由开发者Vincent Lang(网名wm4)从mplayer2中分叉而来,而mplayer2本身则是2010年从MPlayer分叉出的项目。分叉的主要目的是移除不可维护的代码,并停止支持非常旧的系统,从而激发更多开发者贡献。这次分叉确实带来了大量新贡献,推动了项目的快速发展。

MPV的首个版本于2013年8月7日发布。从2015年6月起,项目的源代码从GNU通用公共许可证第2版或更高版本(GPLv2+)重新许可为GNU宽松通用公共许可证第2.1版或更高版本(LGPLv2.1+)。这一变化旨在使MPV更容易作为库集成到更多应用程序中,同时解决与GPL不兼容依赖(如OpenSSL)的兼容性问题。

MPV的开发由社区驱动,继承了MPlayer和mplayer2的基础。在MPlayer的基础上,MPV添加了多项改进,包括内置的屏幕控制器(OSC)用于鼠标交互、对YouTube等网站高清视频的原生支持(通过yt-dlp)、基于OpenGL和Vulkan的自定义视频输出驱动(提供超过100个播放质量控制选项)、改进的客户端API(libmpv)用于与其他应用的集成、新增的视频转码模式,以及通过Lua脚本自定义行为(如视频裁剪和刷新率调整)。音频缩放算法也升级为使用Waveform Similarity Overlap-and-add(WSOLA)算法的scaletempo2参数,实现更平滑的速度变化而保持音高不变。

不过,MPV移除了一些功能,如对VCD光盘的支持。它仍以命令行为主,但启发了多种图形前端,如Baka MPlayer、Celluloid(前身为GNOME MPV)和IINA,这些前端提供了更友好的界面和额外特性。

关键特点

MPV的功能强大且高度可定制,以下是其主要特点:

  • 高品质视频输出:基于OpenGL、Vulkan和D3D11的后端,支持高端缩放算法(如Lanczos、Spline)、色彩管理、帧时序、插值和HDR。用户可以通过选项如–vo(视频输出驱动)和–vf(视频滤镜)精细调整质量。
  • 硬件解码:支持大多数平台的硬件解码API(如VAAPI、NVDEC、D3D11VA),通过–hwdec选项在运行时启用或切换。Ctrl+h快捷键可快速切换硬件解码,支持软件回退以确保兼容性。
  • 屏幕控制器(OSC):尽管无GUI,MPV提供了一个视频上方的小型控制器,用于基本控制如播放/暂停、音量和进度条。默认键o和P可显示进度条和剩余时间。
  • 互动控制:完全可配置的命令驱动层,支持键盘、鼠标或遥控。默认绑定包括左右箭头(5秒seek)、上下箭头(1分钟seek)、空格(暂停)和q(退出)。通过input.conf文件自定义绑定。
  • 字幕支持:支持外部字幕文件加载(–sub-files)、延迟调整(–sub-delay)和样式覆盖(–sub-ass-override)。选项如–sub-scale控制字体大小。
  • 音频功能:音量控制(–volume)、回放增益(–replaygain)和无缝音频(–gapless-audio)。支持压缩音频直通(如AC3、DTS-HD)。
  • 播放控制:支持特定时间seek(–start、–end)、循环播放、随机播放和速度调整(–speed)。低延迟模式通过–profile=low-latency优化。
  • 恢复播放:–save-position-on-quit保存位置,–resume-playback恢复上次进度。观看历史通过–save-watch-history记录文件和时间戳,默认存储在JSONL文件中。
  • 嵌入性:简洁的C API(libmpv)便于集成到其他应用中,支持JSON IPC和iOS等平台的嵌入。
  • 其他:支持stdin输入、URL流媒体、帧丢弃(–framedrop)和基准测试(–untimed)。

安装方法

MPV支持多种平台,以下是详细安装指南:

Windows

  • 二进制包:从shinchiro(https://github.com/shinchiro/mpv-winbuild-cmake/releases)或zhongfly(https://github.com/zhongfly/mpv-winbuild/releases)下载。
  • 包管理器:Scoop(scoop install mpv)、Chocolatey(choco install mpvio)或MSYS2。
  • 编译:参考https://github.com/mpv-player/mpv/blob/master/DOCS/compile-windows.md。

macOS

  • 二进制包:从stolendata下载(https://laboratory.stolendata.net/~djinn/mpv_osx/)。
  • 包管理器:MacPorts(port install mpv)或Homebrew(brew install mpv)。
  • 第一方构建:从GitHub CI下载测试版。

Linux

  • 官方包:Arch Linux(pacman -S mpv)、Gentoo(emerge mpv)。
  • 第三方包:Arch AUR(mpv-git)、Debian multimedia仓库。
  • 源代码编译:使用mpv-build脚本(https://github.com/mpv-player/mpv-build)生成静态构建,包括FFmpeg和libass。注意:Debian/Ubuntu官方包通常过时,推荐第三方或自编译。

Android

  • Google Play商店:搜索“mpv”安装(https://play.google.com/store/apps/details?id=is.xyz.mpv)。

其他平台

  • FreeBSD:Freshports(pkg install mpv)。
  • NetBSD:pkgsrc。
  • OpenBSD:ports。
  • Haiku:depot。

源代码从GitHub(https://github.com/mpv-player/mpv)获取,最新稳定版从releases下载。

使用指南

MPV的基本使用是命令行:mpv 文件名 或 mpv URL。示例:

  • 播放视频:mpv video.mp4
  • 启用硬件解码:mpv –hwdec=auto video.mkv
  • 调整速度:mpv –speed=1.5 video.mp4
  • 添加字幕:mpv –sub-files=subtitle.srt video.mp4
  • 恢复播放:配置mpv.conf中添加save-position-on-quit=yes,然后正常播放。

配置文件位于~/.config/mpv/mpv.conf,语法为option=value。示例:

hwdec=auto
vo=gpu
volume=80

输入命令通过input.conf自定义,默认包括:

  • 左右箭头:seek 5秒
  • 空格:暂停
  • f:全屏切换

对于低延迟:mpv –profile=low-latency video.mp4。

脚本功能

MPV的脚本能力强大,支持Lua和JavaScript扩展。通过–script加载脚本,–script-opts传递参数。用户脚本仓库(https://github.com/mpv-player/mpv/wiki/User-Scripts)提供大量社区脚本,如自动字幕下载、界面增强等。

脚本可访问客户端API,实现自定义行为,如视频裁剪或OSD覆盖。内置脚本包括stats(i键显示统计)和console(`键打开控制台)。内存报告通过–js-memory-report启用。

与其他播放器的比较

MPV常与VLC比较:

  • 优势:MPV在视频质量上更胜一筹,支持更高级的渲染算法、帧时序和HDR,配置更灵活,无伪影问题。音频质量也更好,尤其HDR内容。
  • 劣势:无内置GUI,学习曲线陡峭;VLC更易用,支持更多格式且跨平台(包括移动端),界面友好。
  • 其他:比MPlayer更现代(MPlayer已久未更新),比VLC更“正确”(少hack)。适合发烧友,VLC适合日常。
0已收藏
0已赞

相关推荐

阅读榜

更多

联系我们

回顶部