Replies: 5 comments 9 replies
-
关于第2个方法 想到了改进,在视频对应的缩略图文件夹里加一个lock文件夹,打开一次该视频(建立缩略图),就往里面增加一个名字为当前进程pid的文件,删除时先在lock文件夹里删除当前pid名的文件,然后判断lock文件夹是否为空(utils.readdir)… |
Beta Was this translation helpful? Give feedback.
-
同一个视频不同进程无法复用同样的缩略图缓存造成的性能浪费太多了。 |
Beta Was this translation helpful? Give feedback.
-
按第二种方法,加了文件锁,如果其余窗口还在使用某缩略图时,就会保留。 问题就是在mpv.net中,设置关闭时清理缩略图,关闭窗口时只来得及删除9个视频的缩略图(根据我的电脑进行测试),使得不能够清理完全……除非多整几个worker专门负责清理缩略图 |
Beta Was this translation helpful? Give feedback.
-
题外话:多窗口打开同视频的场景是什么? |
Beta Was this translation helpful? Give feedback.
-
想出了方法3:
https://github.com/zhongfly/mpv-conf/blob/main/scripts/Thumbnailer.lua 其实还有一种情况就是播放中途通过快捷键切换“自动删除”选项导致的问题,不过这样的情形也太少见了。不过还是略微修改了一下 |
Beta Was this translation helpful? Give feedback.
-
问题最初在论坛中有人提出 https://bbs.acgrip.com/forum.php?mod=redirect&goto=findpost&ptid=5843&pid=77986&fromuid=12177
主要原因是缩略图脚本将生成的缩略图输出到固定的文件夹,假如设置关闭时清除的话,脚本会在关闭时直接删除整个文件夹。这使得还未关闭窗口的缩略图也被删除。
我也和脚本作者询问过这个情况,deus0ww/mpv-conf#15
我提出了2种简单的方法:
但我觉得依然可行,根据是否自动删除来判断要不要建立独立文件夹(自动删除时,每个窗口根据pid建立独立文件夹;不自动删除时与现在一致)
但是作者不愿意这么做,但我自己修改了,没啥大问题。
https://github.com/zhongfly/mpv-conf/commit/5c6fa181c55a9190559669742c1dfe6f4c7651c2#diff-460fb2c70b9e5208658d3f7f1cea5c096cb9100a98316c4539d41aa019fb0edd
不过仍存在一个问题,就是2个窗口打开同一个视频,关闭一个窗口、自动删除时自然还是会删除该视频的缩略图,另一个窗口就又出现缩略图丢失的问题了。
是否能实现类似文件锁的东西,只要还有窗口正在使用这个文件夹(正在播放对应的视频),就不会被删除
Beta Was this translation helpful? Give feedback.
All reactions