[媒体播放工具]MPV的一些折腾(每天自动编译最新版mpv)

前言

官方主页:https://mpv.io/

mpv是极简设计的高画质的开源播放器。
与传统的PC高画质方案Directshow+(mpc+lavfilter+madvr+xysubfilter)不同,mpv是一整套的解决方案(单播放器解码渲染字幕齐活)
引自mpv播放器设置教程

MPV是很奇特的一种播放器,其原版几乎没有GUI,设置全靠配置文件,操作基本靠快捷键。上手真是有些困难,那个无比详细的官方手册真是难以用于入门

不过好处显而易见,真正完全便携的高质量播放器。
可能有人要说,像potplayer不也有便携版吗?但是对播放器稍有研究的朋友都知道,一般都是用potplayer搭配各种解码/滤镜使用,比如最常见的Potplayer+Lav Filters+madVR,Lav和madVR都是需要安装或者说注册到系统中,所以并不能完全称为便携……
而MPV是完全可以做到便携的,因为它自己的功能以及能力已经十分足够,已拥有高画质播放的所有基本功能,也没有像potplayer这类播放器那样允许使用外部解码,所有配置和额外的脚本都可以随mpv便携移动。
由于mpv的跨平台,你完全可以做到一次配置,全平台通用,并且可以很轻松的分享给你的朋友直接使用(所以懒人包就诞生了)。而且更新版本也很简单

使用入门

我个人推荐阅读 hooke007 的mpv播放器设置教程

mpv是基于配置文件的播放器,所有设置都可以通过配置文件的相应选项修改实现,所以你需要先弄清配置文件怎么修改,以满足你的需要。
新手十分推荐他所做的 MPV_lazy 懒人包及自带的手册
他对配置文件的各个选项都有详细的注释

快捷键设置也是一个配置文件,你可以自定义任意快捷键。

如果你有额外需要,那就需要使用脚本,类似于浏览器中的油猴脚本,你在脚本文件夹里添加相应的脚本就会给mpv添加相应的功能。你不仅可以使用别人写好的脚本,也可以自己用lua语言编写脚本

你可能还是希望有一个好用的GUI界面,例如MPV-EASY Player,或者我一直使用的 mpv.net(或者它的中文版)。它们都是基于mpv的播放器,文件夹中的mpv.exe或者libmpv-1.dll文件就是MPV,相当于mpv.exelibmpv-1.dll是发动机,而这些GUI只是在发动机外套上车身方便开车而已。

MPV以及基于MPV的播放器 更新播放器版本也十分简单,windows版本可以使用 shinchiro 用最新源码 编译的版本 。如果是更新mpv.exe选择 64bit32bit,如果是更新libmpv-1.dlllibmpv下载即可。

扩展阅读:官方手册 mpv.io

我折腾的每日版本

之前由于MPV某个版本的ass字幕显示存在问题,源代码似乎已经修复,而shinchiro还没发布新版本(他是隔一段时间才发布一次的),于是要不等、要不自己编译一个。
shinchiro提供了他的编译工具,需要linux系统,虽然windows有wsl,但wsl需要开启hyper-v功能,然而我用的安卓模拟器与hyper-v不兼容,只能放弃。
于是我就打算使用github action来进行自动编译,折腾许久,弄出来自己的自动编译发布项目,包含的功能与shinchiro版完全相同。
下载地址:Releases · zhongfly/mpv-winbuild · GitHub
每天晚上自动编译64位版本的mpv,发布到release页面,其中 mpv-dev前缀的文件是64位的mpv-2.dll,没有dev的则是mpv.exe(以及mpv.com
最新的版本保留14天,每月最后一个版本保留一年。
方便和我一样想要一直体验最新版本的人

5 个赞

linux下有一個mplayer,我之前也折騰過,不知跟你說的是不是同一個東西。

本人有個問題,為甚麼不直接使用vlc?

不是,只是在根源上有所联系,FAQ是这么说的:最初是基于mplayer有了mplayer2项目,然后一些mplayer2的开发者重新开发了mpv。

我个人只简单用过vlc,第一印象是界面不够现代化……再加上用mpv已经顺手了,就没有换了
还有一个小原因,之前尝试手机版vlc时竟然出现中文字幕乱码的情况……

字幕亂碼那基本就是編碼問題,可能vlc手機版僅支持unicode編碼,而你的字幕是gbk。

如果是電腦版的vlc是可以切換字幕編碼的。

個人認為mplayer以及你所說的mpv會提供更多令人眼花瞭亂的功能,而一般人可能用不到這些,並且用起来還是有一點難度的。

比如播放指定的片段,轉成gif動畫;調節音畫同步;播放選中區域。

各有所需,此贴本意也不是推荐,我个人也不愿意推荐别人使用mpv,确实上手很难(不过也有方便使用的gui版本啦),都是推荐使用potplayer

这个贴的重心其实是最后一部分,就是我自己的每日构建版本,方便一样使用mpv的朋友们……

你说的轉成gif動畫、調節音畫同步,我都没有需求,也没用过,而且mpv也没有自带这些功能(音频提前或延迟是有的)……

“令人眼花瞭亂的功能”这倒没有,功能丰富其实并没有potplayer多,主要还是聚焦于视频播放……只是提供了自定义的方法,有很多基于mpv的二次开发作品,例如Mac上的IINA。

可能是我的表述不清晰,假如需要向朋友提供打开即用的高质量播放器,我才会推荐mpv,因为可以你全部设置好,写好配置,打包发给朋友,朋友打开后,不需要任何设置、安装,就可以直接使用它播放,播放效果完全和你设置/预想的一样……

win上十几年前流行的是 mplayer-kk 版,后来是 mplayer-ww 版,ww版最新的也已经停留在 2012年了。

mpv 已经比 mplayer 方便很多了,起码已经有 gui 了,稍微配置一下就非常好用了,我也是一个配置多台电脑用了好几年。不过 mplayer 自带个 mencoder,转换个视频啥的很方便,暂时也还是留着的。

vlc太差了,相对potplayer来说

最近使用mpv看cctv的iptv源,但是好像沒有緩沖這個功能,導致觀看卡頓。
看了一下MPV配置有

cache=yes
cache-secs=300
# Uses extra large RAM cache (needs cache=yes to make it useful).
demuxer-max-bytes=1800M
demuxer-max-back-bytes=1200M

但感覺則是針對本地的。有沒有針對網絡相關的配置參數?

有网络缓存(cache指的就是网络缓存),我之前用来看B站或youtube视频,有明显的缓存
我个人理解,不见得正确,iptv是类似直播那种,没有什么能缓存的
@POPTHEZID

也许可以看看mpv.io 手册里关于低延迟播放的介绍 LOW LATENCY PLAYBACK 以及 Cache 章节

我觉得看直播应该减少缓存
或者看看这个选项

–cache-pause=<yes|no>
Whether the player should automatically pause when the cache runs out of data and stalls decoding/playback (default: yes). If enabled, it will pause and unpause once more data is available, aka “buffering”.

它的意思就是说,每次缓存数据被播放完了,都会自动暂停,直到缓存足够多的数据或者过了cache-pause-wait设置的时间(默认为1),再重新开始播放。
在直播上,你设置那么大的缓存,估计得暂停不短的时间才能缓存足够多的数据?

具体原因建议你看控制台或日志里记录

感谢回复,cache这些选项实测效果不大,我在github上也看到有人讨论:

总体来说感觉是mpv集成的ffmpeg下载速度不够导致直播看起来卡顿。

#EXTINF:-1,CCTV-1综合
http://39.134.115.163:8080/PLTV/88888910/224/3221225618/index.m3u8
#EXTINF:-1,CCTV-6电影
http://39.135.138.58:18890/PLTV/88888888/224/3221225632/index.m3u8
#EXTINF:-1,CCTV-9纪录
http://39.135.138.59:18890/PLTV/88888910/224/3221225626/index.m3u8

可以将上方存为m3u8格式,直接拖到mpv打开。

mpv文件夹放个yt-dlp试试