找回密码
 立即注册
楼主: cczzhh

分享一下自己的mpv配置

  • TA的每日心情
    慵懒
    2020-6-24 01:28
  • 签到天数: 895 天

    [LV.10]以坛为家III

    7

    主题

    556

    回帖

    116

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    163825

    活跃达人崭露头角坚持不懈

    cczzhh  楼主| 发表于 2018-12-5 07:49:01 | 显示全部楼层
    本帖最后由 cczzhh 于 2018-12-5 07:57 编辑
    EdveR 发表于 2018-12-5 00:21
    请教一下,mpv可以用快捷键手动加载外挂字幕吗?就像MPC-BE按Ctrl+L那样~
    因为个人习惯原因,字幕文件和视 ...

    意思是类似open-file-dialog.lua这个插件,用Ctrl+O打开视频/音频文件那样,用Ctrl+L打开字幕文件?用lua写一下就可以做到了,就照着open-file-dialog.lua抄再小改一下就行了,把loadfile换成sub-add。如果是这个意思的话我可以改个脚本出来。

    mpv本身肯定是不支持的,因为人家设计就是命令行程序,是通过
    1. mpv video/example.mkv --sub-file=subs/different_name.ass
    复制代码
    这样的方式打开视频和字幕的。拖拽添加文件其实大多数情况下已经够好了。


    SMPlayer这东西早在mpv还是mplayer的时候我就用过了。如今想拿它作为mpv的GUI,如果你用着没问题的话,那也挺好的。就我个人而言,我是不喜欢SMPlayer的,因为脚本系统和mpv自身的配置文件全被禁用了,对我而言是不可接受的。其他也有很多用libmpv的GUI,好比mpv-qt,但质量都一般。GUI的设计应该向macOS的IINA看齐。mpv的GitHub Wiki这页有大概讲哪些基于mpv的应用:https://github.com/mpv-player/mpv/wiki/Applications-using-mpv


    mpv目前仍然是没有官方GUI的。但我觉得现在这样用lua凑出OSC的minimal GUI已经很好了(可能就是习惯了吧


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    10 小时前
  • 签到天数: 2006 天

    [LV.Master]伴坛终老

    3

    主题

    74

    回帖

    13

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    427530
    EdveR 发表于 2018-12-5 17:44:30 | 显示全部楼层
    本帖最后由 EdveR 于 2018-12-5 17:54 编辑
    cczzhh 发表于 2018-12-5 07:49
    意思是类似open-file-dialog.lua这个插件,用Ctrl+O打开视频/音频文件那样,用Ctrl+L打开字幕文件?用lua ...

    确实界面都有些土,不是很喜欢,最麻烦的是它默认的快捷键还和mpv不一样,刚习惯了mpv的快捷键。。还是老老实实用mpv了。
    嗯,是这个意思。自己简单粗暴地改了一下,能用,也不知道对不对。后面title和lang都没写(其实是没搞清楚)。可以把打开文件窗口对话的路径定义到视频的上一层文件夹吗?现在打开窗口默认是上一次打开过的路径。还有,我发现scripts文件夹放在mpv安装目录下也可以正常运行。
    sub-add "<file>" [<flags> [<title> [<lang>]]]
    Load the given subtitle file. It is selected as current subtitle after loading.

    The flags args is one of the following values:

    <select>

    Select the subtitle immediately.
    <auto>

    Don't select the subtitle. (Or in some special situations, let the default stream selection mechanism decide.)
    <cached>

    Select the subtitle. If a subtitle with the same filename was already added, that one is selected, instead of loading a duplicate entry. (In this case, title/language are ignored, and if the was changed since it was loaded, these changes won't be reflected.)
    The title argument sets the track title in the UI.

    The lang argument sets the track language, and can also influence stream selection with flags set to auto.
    1. utils = require 'mp.utils'

    2. function open_sub_dialog()
    3.         local was_ontop = mp.get_property_native("ontop")
    4.         if was_ontop then mp.set_property_native("ontop", false) end
    5.         local res = utils.subprocess({
    6.                 args = {'powershell', '-NoProfile', '-Command', [[& {
    7.                         Trap {
    8.                                 Write-Error -ErrorRecord $_
    9.                                 Exit 1
    10.                         }
    11.                         Add-Type -AssemblyName PresentationFramework

    12.                         $u8 = [System.Text.Encoding]::UTF8
    13.                         $out = [Console]::OpenStandardOutput()

    14.                         $ofd = New-Object -TypeName Microsoft.Win32.OpenFileDialog
    15.                         $ofd.Multiselect = $true

    16.                         If ($ofd.ShowDialog() -eq $true) {
    17.                                 ForEach ($filename in $ofd.FileNames) {
    18.                                         $u8filename = $u8.GetBytes("$filename`n")
    19.                                         $out.Write($u8filename, 0, $u8filename.Length)
    20.                                 }
    21.                         }
    22.                 }]]},
    23.                 cancellable = false,
    24.         })
    25.         if was_ontop then mp.set_property_native("ontop", true) end
    26.         if (res.status ~= 0) then return end

    27.         local first_file = true
    28.         for filename in string.gmatch(res.stdout, '[^\n]+') do
    29.                 mp.commandv('sub-add', filename, first_file and 'select')
    30.                 first_file = false
    31.         end
    32. end

    33. mp.add_key_binding('ctrl+l', 'open-sub-dialog', open_sub_dialog)
    复制代码
    还有两个问题:
    1、在播放有些字幕时,特效会不对,如下图。OP过渡效果应该是逐字变色的,MPC-BE播放正常,用mpv就变成下面这样了。

    2、播放4K HDR 60fps时卡顿掉帧,4K HDR 24fps时流畅不掉帧,CPU占用不超过60%。之前用MPC-BE+madVR播放60fps也不掉帧,mpv默认设置。


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-4-12 12:54
  • 签到天数: 809 天

    [LV.10]以坛为家III

    5

    主题

    227

    回帖

    -1

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    132538
    laichiaheng 发表于 2018-12-5 18:56:03 | 显示全部楼层
    本帖最后由 laichiaheng 于 2018-12-5 20:17 编辑
    EdveR 发表于 2018-12-5 17:44
    确实界面都有些土,不是很喜欢,最麻烦的是它默认的快捷键还和mpv不一样,刚习惯了mpv的快捷键。。还是老 ...

    我也是 4K 60fps 時會掉幀,不過只有啟用 vaapi zero copy 並且開啟高於 bilinear 的 cscale 演算法和 deband 時會發生,而且我發現離開全螢幕時就不會了,大概又是 AMDGPU 驅動出的包

    CPU:i5-4460
    GPU:AMD RX460

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-6-24 01:28
  • 签到天数: 895 天

    [LV.10]以坛为家III

    7

    主题

    556

    回帖

    116

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    163825

    活跃达人崭露头角坚持不懈

    cczzhh  楼主| 发表于 2018-12-6 06:01:41 | 显示全部楼层
    EdveR 发表于 2018-12-5 17:44
    确实界面都有些土,不是很喜欢,最麻烦的是它默认的快捷键还和mpv不一样,刚习惯了mpv的快捷键。。还是老 ...

    脚本中你不需要first_file这个变量。然后推荐用'cached'而非'select'。

    想要直接打开进上一层目录要改那部分powershell脚本。我查了一圈没找到合适的方法。我是觉得,何必这么麻烦自己。推荐要么命令行启动,要么在视频文件夹底下再建一个subs文件夹,里面存指向上层目录里的字幕文件的快捷方式,并修改快捷方式的名字匹配视频文件名,利用mpv的字幕自动加载机制。



    字幕特效不对原因不太好判断,要么libass就是有bug,要么就是字幕制作者是按照vsfilter的标准做的,然后触及到了和libass不兼容的部分,这部分不兼容也有可能是libass没bug但是vsfilter有bug,字幕文件这么写反而在vsfilter上正常,之类的。我是对特效字幕没什么了解,不过你可以把这个字幕传上来看看。

    我4790K软解4K 60fps HDR也会掉帧,甚至选择vo=null没有视频输出纯测试解码能力也会发现无法做到实时解码。由于我自己并不看4K 60fps HDR,就没多计较。如果想解决的话,可以试试开关vd-lavc-dr(默认是开的),vd-lavc-threads设超过16线程(默认自适应,但不会超过16)等等来试图增加软解性能。至于lav为什么能解更快,我不知道,按道理用的都是ffmpeg的解码。或许和编译器指令集优化有关?如果是比GTX960新的显卡,那开d3d11硬解吧。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-4-12 12:54
  • 签到天数: 809 天

    [LV.10]以坛为家III

    5

    主题

    227

    回帖

    -1

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    132538
    laichiaheng 发表于 2018-12-6 08:10:48 | 显示全部楼层
    本帖最后由 laichiaheng 于 2018-12-6 08:12 编辑
    cczzhh 发表于 2018-12-6 06:01
    脚本中你不需要first_file这个变量。然后推荐用'cached'而非'select'。

    想要直接打开进上一层目录要改那 ...

    mpv 的字幕渲染絕對有問題,只要有外掛 srt 這類的字幕就容易出現 delayed 或 mistimed,在我比較舊的電腦上更是明顯
    然後我發現我和他問題不太一樣,4K HDR 60fps 沒問題,但 4K 非HDR 60fps 就有問題
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    10 小时前
  • 签到天数: 2006 天

    [LV.Master]伴坛终老

    3

    主题

    74

    回帖

    13

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    427530
    EdveR 发表于 2018-12-6 20:51:06 | 显示全部楼层
    本帖最后由 EdveR 于 2018-12-6 20:52 编辑
    cczzhh 发表于 2018-12-6 06:01
    脚本中你不需要first_file这个变量。然后推荐用'cached'而非'select'。

    想要直接打开进上一层目录要改那 ...

    我都试过了,还是一样掉帧。vulkan也试过,LZ的配置也试过,和4K HDR有关的项都改过,还是没有用。MPC-BE+madVR能跑得动,为什么换mpv就不行了?明明mpv渲染字幕的效率比MPC-BE高的说~搞不懂。。。CPU和GPU占用都不超过50%,不像是硬件性能不够啊~老显卡想硬解也解不了T_T
    附件是加载字幕的lua脚本和那个mpv播放有问题的字幕。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    10 小时前
  • 签到天数: 2006 天

    [LV.Master]伴坛终老

    3

    主题

    74

    回帖

    13

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    427530
    EdveR 发表于 2018-12-6 21:25:46 | 显示全部楼层
    laichiaheng 发表于 2018-12-5 18:56
    我也是 4K 60fps 時會掉幀,不過只有啟用 vaapi zero copy 並且開啟高於 bilinear 的 cscale 演算法和 deb ...

    我是全屏幕和窗口化都会掉帧,不管用什么算法。我用的N卡,应该不是GPU驱动的问题。话说你是用Linux吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-4-12 12:54
  • 签到天数: 809 天

    [LV.10]以坛为家III

    5

    主题

    227

    回帖

    -1

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    132538
    laichiaheng 发表于 2018-12-6 23:26:17 | 显示全部楼层
    EdveR 发表于 2018-12-6 21:25
    我是全屏幕和窗口化都会掉帧,不管用什么算法。我用的N卡,应该不是GPU驱动的问题。话说你是用Linux吗? ...

    是,原來你是用 Windows 啊,沒注意到

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-18 07:48
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    3

    主题

    24

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    2995
    neil78 发表于 2018-12-7 01:36:17 | 显示全部楼层
    本帖最后由 neil78 于 2018-12-7 02:21 编辑

    大,vulkan 模式  是否在旧的显卡、系统(例如win7)表现不是很好啊



    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-6-24 01:28
  • 签到天数: 895 天

    [LV.10]以坛为家III

    7

    主题

    556

    回帖

    116

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    163825

    活跃达人崭露头角坚持不懈

    cczzhh  楼主| 发表于 2018-12-7 02:42:28 | 显示全部楼层
    本帖最后由 cczzhh 于 2018-12-7 08:34 编辑
    EdveR 发表于 2018-12-6 21:25
    我是全屏幕和窗口化都会掉帧,不管用什么算法。我用的N卡,应该不是GPU驱动的问题。话说你是用Linux吗? ...

    他用的是硬解,完全不是一个问题。

    你用的是什么CPU?madVR Ctrl+j看dropped frames计数确实不增长?

    我Intel i7-4790K用mpc-be+madVR也会掉帧,即使开bilinear算法。


    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表