MPC-BE 播放器入门

(在notion里编辑好了直接粘贴过来的,格式多少有点问题。可以看原笔记

MPC-BE入门

为什么选择MPC-BE

  1. Windows默认播放器从来都只支持少数的文件格式,功能有限。因此安装其他播放器或者解码包是一个必然的选择。而MPC天生全能解码。
  2. 广为人知的KMPlayer、PotPlayer、暴风影音、QQ影音都违背了开源协议,一同被加入了FFmpeg耻辱名单。而MPC天生开源。
  3. MPC基于 DirectShow,由于DirectShow是Windows平台上的流媒体框架,并且可以使用LAV三件套、madVR。当然也产生了限制——只能在Windows平台使用。
  4. MPC-BE支持 hlsl 着色器,并且能实时编译,实时预览效果。
  5. 体积小,官方提供免安装版本。

还有谁?

  1. 与MPC相比,MPV是一个跨平台的播放器。支持glsl(但需要转换成.hook脚本)。MPV相对功能比较强大,着色器支持内嵌图片资源,所以能实现的效果相对更加牛逼,它甚至支持computershader。但是它上手相对困难。

相关链接

  1. https://sourceforge.net/projects/mpcbe mpc-be本体
  2. http://www.madvr.com/ madVR —— 高品质渲染器
  3. https://github.com/Nevcairiel/LAVFilters/ LAV Filter——高性能滤镜套件
  4. https://www.free-codecs.com/ 免费解码器下载站

可能改善体验的选项

  1. 自定义打开文件后的窗口尺寸

  1. 自定义缩放视频使用的算法

一个显而易见的事实,视频的分辨率和屏幕不同时,无法点对点显示,需要经过缩放。如果使用了比较简单的算法,很容易产生画面模糊,或者锯齿的结果; 如果使用了复杂的算法而设备性能不足,会导致运算量过大,机器轰鸣,甚至卡顿。

常见的算法可以参考我这篇笔记:

https://note.youdao.com/s/6XlIFbWt

总的来说,需要不同的效果就选择不同的算法。lanczos就是效果非常不错的算法,如果想要颗粒感可以选择nearest。

  1. 选择渲染器

在调整渲染器时,鼠标悬停可以看到提示。不同的渲染器有不同的效率和品质,甚至可以选择“空”完全不渲染,极致节约资源

MPC-BE播放视频的流程

读取器、分离器、解码器都被称为“滤镜”,

flowchart LR
    文件([文件]) --> 读取器 --> 分离器 --> 视频解码器 --> 渲染器/着色器 --> 显卡 
    分离器 --> 音频解码器 --> 均衡器 --> 声卡
    分离器 --> 字幕渲染器

LAV Filter

款LAV Filters滤镜就包含三个部分,分别是LAV Splitter、LAV Video Decoder和LAV Audio Decoder。其中LAV Splitter负责将文件分离成单独的视频流和音频流,而LAV Video Decoder和LAV Audio Decoder用于对这些数据流进行解码处理。

首先从网上下载安装最新版本的LAV Filters,官方提供了两种不同的安装方式。如果用户下载的是压缩包的话,解压后记得一定要运行其中三个Install开头的批处理文件进行注册才行。

再次打开“选项”窗口,点击左侧的“扩展滤镜”选项。接着点击右侧窗口中的“添加滤镜”按钮,在弹出的对话框里面选择“浏览”按钮后,选择LAV Filters文件夹中的LAVSplitter.ax、LAVVideo.ax和LAVAudio.ax三个文件。当这三个文件被成功添加到列表后,在列表中选中LAV Video Decoder,再点击右侧的“首选”命令。这样就是告诉播放器,优先使用LAV Video Decoder滤镜进行解码操作。

Untitled 3

屏蔽自带的滤镜

由于我们启用了第三方的滤镜,为了避免自带的播放滤镜进行干扰,需要对其进行相应的屏蔽操作。点击左侧列表的“内部滤镜”选项,接着点击右侧窗口里面的“视频解码器”标签,将列表中一些常见的格式前的勾去除。比如禁用列表中前四个DXVA、所有的MPEG1和MPEG2以及H264/AVC等,这样自带的分离器就不起作用了。然后选择窗口中的“音频解码器”标签,禁用列表中的DTS这个选项。点击“音频解码器设置”按钮,将“Int24”这个选项选中(?)。接下来点击左侧“扩展滤镜”选项下的“优先”按钮,将除“MPEG2-PS”以外的所有格式都设置为“LAV Splitter”即可。

Untitled 4

第三方滤镜设置

既然启用了第三方的滤镜,还需要对这些滤镜进行一些设置才可以。首先点击左侧的“扩展滤镜”选项,双击滤镜列表中的“LAV Video Decoder”项,在弹出的窗口中对视频解码器进行一下设置。首先将“反交错方式”选项设置为“自动”,再将“硬件加速”列表选择为“DXVA2(native)”即可,接着在“格式”标签中选择需要进行视频硬件解码的格式(图7)。设置完毕点击“确定”按钮,关闭视频解码器的设置窗口。再双击滤镜列表中的“LAV Audio Decoder”项,在“混音”标签中选择“启用混音功能”选项就可以了。

Untitled 6

Untitled 5

着色器(Shader)

简单来讲,着色器可以理解为画面特效处理的工具。包括但不限于调色、变形、裁切、锐化、降噪。

无论你使用便携版,还是安装版,MPC-BE着色器的路径都在 APPDATA\MPC-BE ,而不是安装目录内的那一份。

另外,如果需要使用着色器,~~必须使用MPC VR作为视频渲染器。~~EVR渲染器同样可以生效,如果不行可以先安装MPC VR试试。

使用着色器

在菜单中选择着色器-选择着色器-中添加需要的着色器效果,注意勾选“启用”,此时着色器已经生效,点击确定完成保存。

Untitled

技术资料

着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。

MPC支持 HLSL 语言的着色器。

高阶着色器语言(High Level Shader Language,简称HLSL)语法非常类似于 C 和 C++ ,由微软开发,工作在 Windows 平台上,只能供微软的 Direct3D 使用,已经包含在 DirectX9 中。 HLSL是微软抗衡 GLSL 的产品,不能与 OpenGL 标准兼容。

HLSL的主要作用为将一些复杂的图像处理,快速而又有效率地在显示卡上完成,与组合式或低阶 Shader Language 相比,能降低在编写复杂特殊效果时所发生编程错误的机会。

HLSL参考

https://blog.csdn.net/kongbu0622/article/details/5315407

https://zhuanlan.zhihu.com/p/348370447

看到这么多设置选项就头大,普通人真的用得着那么多自定义功能吗 :sweat_smile:

用来用去最后我还是选择了win10播放器,色彩比其他软件好非常多,而且还不需要配置就能使用。唯一的缺点可能就是操作性拖后腿了,但是看视频真的就是看视频啊,自从明白了这一点,就没去花时间折腾同类软件了,省下不少时间。

相对而言,mpc-be的设置已经相当’清晰明了了。
并且你可以不设置任何参数就能使用。
对普通用户而言,win10播放器的格式和字幕支持至少是不行的

1 Like

你的 lav 设置界面是自己汉化的么?官网 github 上没有多语言版本的呀?而且你截图的版本非常古老了哎

我倒觉得英文原版的更好理解一些,比方说活动解码器这些翻译,肯定没有错,但是理解起来怪怪的 :melting_face:

我完全理解楼主说的这些设置的东西,从看视频的角度来说,基本从前处理到后处理都覆盖了。作为普通用户,截取自己需要的部分借鉴就好了。

我作为一个对画质品质没那么严苛要求的人,我只安装设置了一下 lav filter。原因是我用的是10+年前的初代i3笔记本,这个笔记本看 1080p 60fps 的视频带不动了,默认的解码设置带不起这个帧率,所以需要用 lav 设置一下硬件解码。 :joy:

这个是别人的截图复制过来的。我自己用的也是英文的界面。
不过说实话,如果看不懂这些英文,显示为中文也不会太懂是什么意思

解码包我推荐 K-Lite Codec Pack Download K-Lite Codec Pack
包含lav madvr 还有字幕滤镜 xy-VSFilter等
最全的Mega包的内容 Contents of K-Lite Mega Codec Pack
方便更新,自己下载lav madvr还需自己手动管理更新,这个集成包,可以设置定期检查更新,并且更新是增量更新,也不费时间与流量

win10播放器的格式和字幕支持至少是不行的

视频格式大致还行,可以安装hevc av1 vp9等格式的解码插件

看到是个人汉化的……汉化有些生硬

挺不错的播放器,就是有些不完美。

  1. 加速播放时。
    1.1 声音变尖锐了,类似小黄人。
    1.2 粒度不够小,potplay 调整播放速度的粒度是 0.1.
    1.3 操作不够方便,ctrl+up, ctrl+down 太简陋了。potplayer 可以 c 键递增 0.1, x 键递减 0.1,z 键还原到 1.0

  2. 可以收藏播放位置到 Favorites,但这不如 potplayer 的书签

  3. 播放列表不能以单独窗口显示。


另外,提一个问题,可能是我使用不当。

为什么 p 03* 打开后播放列表中只有一个视频。
p 的定义 /home/god/bin/mpc-be "$1" /play &

但我手动执行 /home/god/bin/mpc-be 03* /play & 时,就是正常的,播放列表中有 030xx 到 039xx 共 10 个视频?

类似的,如果用 play 脚本打开 potplayer,使用 play 03* 会从 030xx 开始播放,但是会把所有的视频文件添加到播放列表。

变调可以通过变更音频渲染器来解决,是Windows的音频渲染器比较拉…
粒度的问题…我不知道开发团队是怎么考量的,理论上应该做这种优化很简单
快捷键反正可以改,又没有锁死

1 Like

用惯了PotPlayer,发现操作上习惯不了MPC-BE,另一方面简单使用也是PotPlayer更好一些。
虽然这么说不够厚道,但对于最终用户来说,违背开源协议影响并不大 :sweat_smile:
原来视频播放还有读取器一个环节,以前都没见过。
顺带请教下楼主,LAV Splitter带Source和不带Source有什么区别?选分离器时经常困扰。

抛开那些自由之类的道理不谈,也不讲权利和责任,
一个最简单的道理,一个不遵循协议的产品剽窃开源成果,与开源产品竞争用户,不给予开源环境以贡献,这样的行径显然对开源产品造成了妨害。最坏的结果,如果开源产品停止开发——Mpc和mpc-hc已经停止开发了,而前者的发起者之所以退出,原因正是被剽窃——停止开发之后,不止是用户的选择变少了,来抄的都没得继续抄了,变好的可能性也变少了。

3 Likes

最近也经常看到一句话:普通用户(消费者)的每次使用(消费)都是给自己想要的 未来投票…
更粗浅的说,在你有选择自由的时候,是选择不讲规矩的合作,还是选择讲规矩的?

毫不知情的时候怎么选,那的确无所谓…但是既然已经知道它破坏开源协议,不讲规矩,那自然是不选择它最好。

后来好像有人接手维护mpc-hc

现在播放器门槛都这么高了吗?

每次看到论坛里提到“普通用户”(当然我自己也常常这样)我都在想究竟哪里普通 :rofl:

就我来说,尽管是在用 MPV,但scoop install mpv后什么也没配置,就只是文件管理器双击打开文件、全屏、拖动进度条而已,充其量再加上把字幕文件拖动到界面自动添加,这些操作不管是上面提到的哪一个会有什么易用性上的区别吗 :nerd_face:

每次看到论坛里提到“普通用户”(当然我自己也常常这样)我都在想究竟哪里普通 :rofl:

就我来说,尽管是在用 MPV,但scoop install mpv后什么也没配置,就只是文件管理器双击打开文件、全屏、拖动进度条而已,充其量再加上把字幕文件拖动到界面自动添加,这些操作不管是上面提到的哪一个会有什么易用性上的区别吗 :nerd_face:

很多操作是为了获得更佳/更准确的显示效果或者性能

mpc-be自带的分离器/解码器在一些方面比不上楼主设置的,所以做了修改。
其实不在意/看不出画面差异的,不调也无所谓

像mpv,默认设置其实也足够使用了,但为了更方便、用的更舒服就会去改配置,修改快捷键,添加脚本

相对于输入命令,直接修改配置文件,这当然普通极了。完全图形化操作,设置后快速生效。

不说额外安装滤镜,就是最基本的修改缩放算法都可以产生非常明显的差异。

说实在,放大倍数不高的话,不仔细看,我真看不出来。

不是能看出或者讲出区别,而是没有看出区别但是有那种感觉。
最基本的原理,屏幕和视频不一致,那么屏幕每个像素显示的内容来自哪里呢?来自视频文件近似位置的运算。运算效果不好,就会有画面直线不直、边缘模糊等问题。这也是有人看视频打游戏追求的“点对点”。

如果纯粹从放大倍率的角度讲,1280p的屏幕看1080p的视频,可能真的感觉也感觉不出来。但是差别更大的话肯定不一样的。