(在notion里编辑好了直接粘贴过来的,格式多少有点问题。可以看原笔记
MPC-BE入门
为什么选择MPC-BE
- Windows默认播放器从来都只支持少数的文件格式,功能有限。因此安装其他播放器或者解码包是一个必然的选择。而MPC天生全能解码。
- 广为人知的KMPlayer、PotPlayer、暴风影音、QQ影音都违背了开源协议,一同被加入了FFmpeg耻辱名单。而MPC天生开源。
- MPC基于 DirectShow,由于DirectShow是Windows平台上的流媒体框架,并且可以使用LAV三件套、madVR。当然也产生了限制——只能在Windows平台使用。
- MPC-BE支持 hlsl 着色器,并且能实时编译,实时预览效果。
- 体积小,官方提供免安装版本。
还有谁?
- 与MPC相比,MPV是一个跨平台的播放器。支持glsl(但需要转换成.hook脚本)。MPV相对功能比较强大,着色器支持内嵌图片资源,所以能实现的效果相对更加牛逼,它甚至支持computershader。但是它上手相对困难。
相关链接
- https://sourceforge.net/projects/mpcbe mpc-be本体
- http://www.madvr.com/ madVR —— 高品质渲染器
- https://github.com/Nevcairiel/LAVFilters/ LAV Filter——高性能滤镜套件
- https://www.free-codecs.com/ 免费解码器下载站
可能改善体验的选项
- 自定义打开文件后的窗口尺寸
- 自定义缩放视频使用的算法
一个显而易见的事实,视频的分辨率和屏幕不同时,无法点对点显示,需要经过缩放。如果使用了比较简单的算法,很容易产生画面模糊,或者锯齿的结果; 如果使用了复杂的算法而设备性能不足,会导致运算量过大,机器轰鸣,甚至卡顿。
常见的算法可以参考我这篇笔记:
https://note.youdao.com/s/6XlIFbWt
总的来说,需要不同的效果就选择不同的算法。lanczos就是效果非常不错的算法,如果想要颗粒感可以选择nearest。
- 选择渲染器
在调整渲染器时,鼠标悬停可以看到提示。不同的渲染器有不同的效率和品质,甚至可以选择“空”完全不渲染,极致节约资源
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滤镜进行解码操作。
屏蔽自带的滤镜
由于我们启用了第三方的滤镜,为了避免自带的播放滤镜进行干扰,需要对其进行相应的屏蔽操作。点击左侧列表的“内部滤镜”选项,接着点击右侧窗口里面的“视频解码器”标签,将列表中一些常见的格式前的勾去除。比如禁用列表中前四个DXVA、所有的MPEG1和MPEG2以及H264/AVC等,这样自带的分离器就不起作用了。然后选择窗口中的“音频解码器”标签,禁用列表中的DTS这个选项。点击“音频解码器设置”按钮,将“Int24”这个选项选中(?)。接下来点击左侧“扩展滤镜”选项下的“优先”按钮,将除“MPEG2-PS”以外的所有格式都设置为“LAV Splitter”即可。
第三方滤镜设置
既然启用了第三方的滤镜,还需要对这些滤镜进行一些设置才可以。首先点击左侧的“扩展滤镜”选项,双击滤镜列表中的“LAV Video Decoder”项,在弹出的窗口中对视频解码器进行一下设置。首先将“反交错方式”选项设置为“自动”,再将“硬件加速”列表选择为“DXVA2(native)”即可,接着在“格式”标签中选择需要进行视频硬件解码的格式(图7)。设置完毕点击“确定”按钮,关闭视频解码器的设置窗口。再双击滤镜列表中的“LAV Audio Decoder”项,在“混音”标签中选择“启用混音功能”选项就可以了。
着色器(Shader)
简单来讲,着色器可以理解为画面特效处理的工具。包括但不限于调色、变形、裁切、锐化、降噪。
无论你使用便携版,还是安装版,MPC-BE着色器的路径都在 APPDATA\MPC-BE ,而不是安装目录内的那一份。
另外,如果需要使用着色器,~~必须使用MPC VR作为视频渲染器。~~EVR渲染器同样可以生效,如果不行可以先安装MPC VR试试。
使用着色器
在菜单中选择着色器-选择着色器-中添加需要的着色器效果,注意勾选“启用”,此时着色器已经生效,点击确定完成保存。
技术资料
着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。
MPC支持 HLSL 语言的着色器。
高阶着色器语言(High Level Shader Language,简称HLSL)语法非常类似于 C 和 C++ ,由微软开发,工作在 Windows 平台上,只能供微软的 Direct3D 使用,已经包含在 DirectX9 中。 HLSL是微软抗衡 GLSL 的产品,不能与 OpenGL 标准兼容。
HLSL的主要作用为将一些复杂的图像处理,快速而又有效率地在显示卡上完成,与组合式或低阶 Shader Language 相比,能降低在编写复杂特殊效果时所发生编程错误的机会。
HLSL参考