MPV播放器交流分享贴

发现论坛里使用MPV播放器的还不少,因此想建立一个帖子方便大家分享使用经验,或者提出遇到的问题。

常用链接:
官网: https://mpv.io/
Github仓库: GitHub - mpv-player/mpv: 🎥 Command line video player
官方手册: mpv.io
用户脚本: User Scripts · mpv-player/mpv Wiki · GitHub
GUI前端:Applications using mpv · mpv-player/mpv Wiki · GitHub

windows版本下载(shinchiro维护): mpv player (Windows) - Browse Files at SourceForge.net
mac版本(我不了解,待补充)
安卓版:https://play.google.com/store/apps/details?id=is.xyz.mpv

相关知识:
MPV与其他播放器(potplayer/mpc等)的主要区别

个人看法

potplayer/mpc等播放器都是DirectShow+技术框架的,可以认为是模块化的,用户可以自行安装DirectShow滤镜,包括:分离器( Splitter)、解码滤镜(decoder)、渲染器(render,例如MadVR)。播放视频时大致流程为分离器将视频流、音频流分开,交由对应的视频/音频解码器,最终由渲染器输出给屏幕显示。由于滤镜是DirectShow+技术框架下通用的,所以无论是potplayer,还是mpc-hc,抑或是mpc-be,都是可以用相同的滤镜组合,如现在主流的lav Splitter+lav video/audio decoder+madvr组合。如果是字幕的话,还需要加装xy-filter这样的字幕滤镜。
而mpv不是DirectShow+技术框架的,所以不能使用那些滤镜。它自身就有一整套解决方案,包含了多种视频输出驱动、图形输出后端,也支持多种硬件解码方案。可以认为整合度更高

8 个赞

补充一个快速生成mpv配置文件的玩意。

可以按默认预置生成ultra,high,normal等不同配置。也可以根据自己需求再细化。

1 个赞

个人分享(以下只是本人推荐,并非与本人有利益关联):

个人目前日常使用的windows gui前端:(英文界面) mpv .net GitHub - mpvnet-player/mpv.net: 🎞 mpv.net is a media player for Windows that has a modern GUI.中文汉化版见下面的粗体推荐

著名动漫压制组vcb-s的mpv教程: https://web.archive.org/web/20210401044201/https://vcb-s.com/archives/7594

一位对mpv有较多了解的大佬的一些资源:

自行编译windows版本mpv (shinchiro维护): GitHub - shinchiro/mpv-winbuild-cmake: CMake-based MinGW-w64 Cross Toolchain

===================

以下为我的个人项目,你可以视为私货:

windows版本mpv每日构建:
与现在常用的shinchiro版使用完全相同的构建配置
每天晚8点更新release,每小时跟随mpv主分支自动构建
GitHub - zhongfly/mpv-winbuild: Use Github Action to build mpv for Windows with latest commit.

5 个赞

看了下,发现最后一次更新是2020年底,目而mpv的开发一直很活跃,一些选项可能也发生了改变…我个人认为不推荐使用

个人建议是找一个中文注释的配置文件,自己用文本编辑器改就好。例如上一楼里的一个配置就可供参考 MPV_lazy/mpv.conf at main · hooke007/MPV_lazy · GitHub

1 个赞

虽然mpv作为一个播放器内核很优秀,但是成熟的成品软件实在是太少,人性化太差。。。
例如解码器的调教不省心,没有开箱即用的味道。快捷键不舒适。网络协议的兼容性不好。
然后就又回到了potplayer。
有没有比较成熟的发行版本,推荐一下。

1 个赞

+1,不想动脑,只想开箱即用

最近在用,才发现这货弹广告……

potplayer用旧版。不过也用的少了,现在经常用一些弹幕播放器,虽然性能不咋滴,但是弹幕才是本体。

1 个赞

mpv.conf

#log-file = "~~desktop/mpv.txt"

hwdec=d3d11va
d3d11va-zero-copy=yes
#使用硬解的格式
hwdec-codecs=all
#禁用内置快捷键方案
no-input-builtin-bindings
#播放视频时的向后缓存大小(KiB或MiB)
demuxer-max-bytes=32MiB 
cache=yes
cache-on-disk=no
#cache-secs=8

#贴边(限win)     
snap-window=yes
#osd-bar宽度[1,100],屏幕宽度的百分比
osd-bar-w=100
#osd-bar高度[0.1,50]屏幕高度的百分比
osd-bar-h=0.4
#位置[-1,1]x为左到右,y为上到下
osd-bar-align-y=1
#OSD信息位置(x~left/center/right,y~top/center/buttom)
osd-align-x=left
osd-align-y=top
osd-font-size=28
osd-color="#98FB98"
osd-border-size=2
osd-font-size=24
#OSD随窗口大小缩放(yes/no)
osd-scale-by-window=no                    
#设置OSD文本信息的持续时间(毫秒)(默认值:1000)
osd-duration=2000       
#窗口大小
geometry=1280x720

#退出时记住播放状态
save-position-on-quit

#加载视频文件的外部字幕文件方式。(fuzzy 加载含有视频文件名的全部字幕文件)
sub-auto=fuzzy
#未指定字体的字幕字体
sub-font=sans-serif
sub-border-size=2
#强制ass字幕使用黑边, if the subtitles are in a plain text format使用--sub-use-margins
sub-ass-force-margins=yes
#加载含有视频文件名的音频文件
#audio-file-auto=fuzzy
#指定优先使用音轨
alang=en,eng,zh,chi,zho,chs,sc
#指定优先使用字幕轨
slang=zh,chi,zho,chs,sc,en,eng
#设定程序启动后的默认音量
volume=100
volume-max=100
loop-playlist=inf
#截屏文件格式(可选:png、ppm、pgm、pgmyuv、tga、jpg、jpeg)
screenshot-format=jpg
#截屏文件保存路径
screenshot-directory=D:\图片

一个个人看来比较舒适的快捷键方案input.conf

MBTN_LEFT 	ignore		#鼠标左键 无操作
MBTN_LEFT_DBL 	cycle fullscreen	#左键双击 切换全屏
MBTN_RIGHT    	cycle pause		#右键 切换暂停
MBTN_MID 		ignore 		#中键 无操作
MBTN_BACK     	playlist-prev	#侧键向前 播放列表上一个
MBTN_FORWARD  	playlist-next	#侧键向后 播放列表下一个
WHEEL_UP      	add volume 2	#滚轮向上 音量+2
WHEEL_DOWN    	add volume -2	#滚轮向下 音量-2
WHEEL_LEFT    	seek 2		#滚轮向左 向前2秒
WHEEL_RIGHT   	seek -2		#滚轮向右 向后2秒
		
ESC 	set fullscreen no	#ESC 退出全屏
SPACE 	cycle pause		#空格 切换暂停
ENTER 	cycle fullscreen	#回车 切换全屏
KP_ENTER 	cycle fullscreen	#小键盘回车 切换全屏
		
UP  	add volume 5	#方向键上 音量+5
DOWN  	add volume -5	#方向键下 音量-5
Shift+UP  	add volume  20	#音量+20
Shift+DOWN add volume -20       	#音量-20
LEFT 	seek -2		#方向键左 后退2秒
RIGHT 	seek  2		#方向键右 前进2秒
Shift+LEFT  	seek -60 exact	#后退60秒
Shift+RIGHT seek 87 exact	#前进87秒
Ctrl+UP 	add audio-delay -0.1	#音频延迟-0.1
Ctrl+DOWN 	add audio-delay +0.1	#音频延迟+0.1
Ctrl+LEFT 	add sub-delay -0.1	#字幕延迟-0.1
Ctrl+RIGHT  	add sub-delay 0.1	#字幕延迟+0.1

PGUP 	playlist-prev	#播放列表上一个
PGDWN 	playlist-next	#播放列表下一个
HOME 	add chapter -1	#上一章节
END 	add chapter 1	#下一章节
F11 	show_text ${track-list}
F12 	show_text ${playlist}
	
a 	cycle audio		#切换音轨
s 	cycle sub		#切换字幕轨
d 	cycle sub-visibility	#切换字幕开/关
f 	cycle mute		#静音开/关
g 	cycle border 	#切换无边框
H 	cycle-values hwdec "auto" "no"	#切换硬解软解
j 	cycle deinterlace	#切换反交错
k 	cycle-values video-aspect-override "16:9" "4:3" "2.35:1" "-1" #循环视频比例
l 	ab-loop 		#设置/清除 A-B loop点
K	cycle-values loop-file inf no 	#切换文件循环
L	cycle-values loop-playlist inf no 	#切换列表循环
;	script-binding osc/visibility 	#循环OSC可视性(常驻、隐藏、自动)
'	cycle-values osd-level "1" "2" "3"	#切换OSD等级
P 	playlist-shuffle; show-text "playlist-shuffle"

z 	set speed 1.0	#播放速度设为1
c 	add speed 0.1	#播放速度+0.1
x 	add speed -0.1	#播放速度-0.1
C 	multiply speed 2.0	#播放速度x2
X	multiply speed 0.5	#播放速度x0.5
v 	frame-back-step	#前一帧
b 	frame-step 		#后一帧
n 	add sub-pos -1	#字幕下移1单位
m 	add sub-pos +1	#字幕上移1单位
, 	add sub-scale -0.05	#字幕缩小5%
. 	add sub-scale +0.05	#字幕放大5%
			
q 	add brightness -1	#亮度-1
w 	add brightness 1	#亮度+1
e 	add contrast -1	#对比度-1
r 	add contrast 1	#对比度+1
t 	add gamma -1	#伽马-1
y 	add gamma 1	#伽马+1
u 	add saturation -1	#饱和度-1
i	add saturation 1	#饱和度+1
o 	add hue -1		#色调-1
p 	add hue 1		#色调+1
[ 	set contrast 0; set brightness 0; set gamma 0; set saturation 0; set hue 0 #视频均衡器归零

] 	script-binding stats/display-stats	#查看统计信息		
=	screenshot video		#视频截图
-	screenshot window		#带界面(OSC/OSD)截图
\ 	show-progress		#显示播放进度
` 	script-binding console/enable	#打开控制台,ESC退出
TAB 	script-binding stats/display-stats-toggle	#切换统计信息

1 	set window-scale 0.36 		#设置窗口为视频分辨率0.36倍
2 	set window-scale 0.5 		#设置窗口为视频分辨率0.5倍
3	set window-scale 0.667 		#设置窗口为视频分辨率0.667倍
4 	set window-scale 1.0 		#设置窗口为视频分辨率
5 	cycle ontop 			#切换置顶
6 	add current-window-scale -0.1   # 缩小窗口
7 	add current-window-scale  0.1   # 放大窗口
8	add video-rotate 1 	#视频顺时针旋转1度(限软解或-copy硬解)
9	cycle-values video-rotate "no" "90" "180" "270" #设置视频 不旋转/90/180/270

有什么弹幕播放器推荐吗

网络协议的兼容性不好

这就离谱了,网络方面都是ffmpeg和yt-dlp解析的,支持覆盖相当广。

解码器的调教不省心,没有开箱即用的味道

我也是折腾过potplayer+lav+madvr的,特别是madvr需要设置的东西,那叫一个多。不过可能很多用potplayer的不会去设置这些,只用默认
解码方面,mpv要开箱即用的话,也可以直接用;想性能好点的话,调整硬解和gpu-api这2个设置就行了,也不算多啊。

mpv主要是操作习惯上的区别,默认osc的功能简单,所有设置都是配置文件,让人难上手而已。
很多功能需要脚本补足完善,但这也能说明自由度高

成熟的发行版本:
我个人的日常就是用mpv .net,设置什么的都可以GUI操作。要是不喜欢快捷键的,直接用鼠标右键菜单,已经相当方便了
而且是建议直接用汉化整合包,GitHub - hooke007/mpv.net_CM: 🎞 mpv.net_CM 是中文分支模组 ,自带一些功能脚本,好用的osc显示


当年因为potplayer有广告就换了mpc-be,简单好用

1 个赞

我以前也是用mpc-be的……只不过莫名奇妙遇到了问题,全屏下不显示下面的播放控制部分界面,找半天设置都没找到是什么设置导致的,成了未解之谜

不使用 PotPlayer 等一众播放器是因为 FFmpeg 的耻辱柱

2 个赞

这也是一种原因……但大部分人都不在意这个(不知道的就更多了)
但最主要的是potplayer是商业公司,目标是盈利,比如加广告。

ps:论坛怎么编辑时是回复xx的,实际却不是?

仅个人观点,毕竟许多用户甚至都不知道这回事儿。

我一般通过引用一部分来解决这个问题 :joy:

确实,像我这样仅限于观看字幕组动漫资源和javdb 学习资料 的人,mpv的基础快捷键完全够用:thinking:
甚至还试用过一次ffplay,那个才真完全不是开箱即用

关于字幕方面的工具分享

适用大部分播放器,不只是mpv

经常看动漫外挂字幕或者电影特效字幕的都清楚,为了良好的字幕(ass字幕)显示效果,需要安装字体,但为了避免安装太多字体在系统中有所影响,可以使用FontLoader临时挂载字体,观看完后取消挂载即可。
但FontLoader使用较为麻烦,需要手动选中需要挂载的字体,之后有人开发了FontLoaderSub( 介绍 开源地址),可以拖入ass字幕文件自动挂载字体,但是这仍然需要在观看前手动操作。
目前又有新的工具,SubtitleFontHelper(介绍 开源地址 )可以完全实现自动加载,播放视频+字幕时,自动加载需要的字体。

支持VSFilter或libass的字幕渲染,例如mpv播放器(因为使用了libass),xy-VSFilter滤镜
最新版下载地址:

MPV EASY Player

开箱即用

1 个赞