估计没有吧,mxplayer,vlc,都没有像potplayer的图象处理功能。
实现这个的目的是什么呢,通常逻辑都是为让画面变得更清晰和连贯,了解目标后或许还有其他方法解决
这都是什么神奇功能
reex,然后找个能在mpv用的模糊滤镜
reex播放器吗?mpv是什么,mpv用的模糊滤镜?没搞懂两者的关系。
mpv又是什么啊
什么用途啊?分享一下吧!
reex是一款基于mpv的安卓视频播放器,mpv有大量的着色器可以使用(用着色器足够了,不用滤镜),附我找到的模糊着色器:
https://github.com/hooke007/MPV_lazy/blob/main/portable_config/shaders/unsharp-masking_blur.glsl
例如glsl放在
/sdcard/Android/data/xyz.re.player.ex/files/mpv/shaders/Anime4K_Restore_CNN_S.glsl
配置文件这么写
glsl-shaders= "~~/shaders/Anime4K_Restore_CNN_S.glsl"
我是刚好在配置那里看到一个mpv.conf的路径写法,然后没按照图片里的写法。。。
然后加载了这个blur代码,起作用了,但是效果是直接黑屏了。
晚上我试试看
正常起作用,糊了~不知道你那边怎么回事
好的可否截图看看模糊的图片啊啊,因为不能动态调节模糊图片,估计效果不好吧。
// only necessary in --vo=gpu-next
// use --sharp=-1 instead via --vo=gpu
//!DESC unsharp-masking_blur
//!HOOK MAIN
//!BIND HOOKED
#define BLUR 1.0 // terrible when over 2
vec4 hook()
{
const float st1 = 1.2;
vec4 p = HOOKED_tex(HOOKED_pos);
vec4 sum1 = HOOKED_texOff(st1 * vec2(+1, +1))
+ HOOKED_texOff(st1 * vec2(+1, -1))
+ HOOKED_texOff(st1 * vec2(-1, +1))
+ HOOKED_texOff(st1 * vec2(-1, -1));
const float st2 = 1.5;
vec4 sum2 = HOOKED_texOff(st2 * vec2(+1, 0))
+ HOOKED_texOff(st2 * vec2( 0, +1))
+ HOOKED_texOff(st2 * vec2(-1, 0))
+ HOOKED_texOff(st2 * vec2( 0, -1));
vec4 t = p * 0.859375 + sum2 * -0.1171875 + sum1 * -0.09765625;
return p + t * -BLUR;
}