kiến thức Tổng hợp những addon chất cho Firefox / Chromium

Có cách nào giảm ram của firefox ko các fen, cùng 1 web mà firefox ăn nhiều hơn chrome quá nhiều
Trang nào mới là quan trọng kia bạn, chứ cách giảm RAM Firefox là lên #1 cài uBlock và Auto Tab Discard là tối đa rồi, ngoài ra phải kiểm tra lại danh sách addon xem có cái nào ngốn tài nguyên thì lược bỏ.

Ngoài ra nếu bạn thực sự muốn giảm RAM mà không quan tâm tới bảo mật, vào about:config tìm fission.autostart chỉnh thành false, khởi động lại Firefox để tắt chế độ đa tiến trình của Firefox đi, Firefox sẽ tạo ra ít firefox.exe hơn => chiếm ít RAM đi tầm 30%.

Mình dùng Firefox bao lâu nay chưa thấy nó ngốn hơn Chrome cả nếu đã có uBlock.
 
Last edited:
Trước có bạn @caube_vn hỏi cách xem HDR với MPV, thì thực ra MPV nó luôn có hỗ trợ HDR rồi cơ mà phải tốn chút công cài đặt với đống shaders và config sau: https://github.com/natural-harmonia-gropius/hdr-toys

(Nếu chưa rõ thì xem qua cấu trúc folder MPV: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23849603)
Code:
hwdec=auto-safe

vo=gpu-next
gpu-api=vulkan

deband
deband-iterations=4
deband-threshold=48
deband-range=16
deband-grain=16

[bt.2100]
profile-cond=get("video-params/sig-peak") > 1
profile-restore=copy
target-trc=pq
target-prim=bt.2020
glsl-shader=~~/shaders/hdr-toys/utils/clip_both.glsl
glsl-shader=~~/shaders/hdr-toys/transfer-function/pq_to_l.glsl
glsl-shader=~~/shaders/hdr-toys/transfer-function/l_to_linear.glsl
glsl-shader=~~/shaders/hdr-toys/utils/crosstalk.glsl
glsl-shader=~~/shaders/hdr-toys/utils/chroma_correction.glsl
glsl-shader=~~/shaders/hdr-toys/tone-mapping/dynamic.glsl
glsl-shader=~~/shaders/hdr-toys/utils/crosstalk_inverse.glsl
glsl-shader=~~/shaders/hdr-toys/gamut-mapping/compress.glsl
glsl-shader=~~/shaders/hdr-toys/transfer-function/linear_to_bt1886.glsl
glsl-shader-opts-add=crosstalk/alpha=0
glsl-shader-opts-add=crosstalk_inverse/alpha=0

[bt.2020]
profile-cond=get("video-params/primaries") == "bt.2020" and get("video-params/sig-peak") == 1
profile-restore=copy
target-prim=bt.2020
glsl-shader=~~/shaders/hdr-toys/transfer-function/bt1886_to_linear.glsl
glsl-shader=~~/shaders/hdr-toys/gamut-mapping/compress.glsl
glsl-shader=~~/shaders/hdr-toys/transfer-function/linear_to_bt1886.glsl

Vậy là xong, mọi thứ đều tự động.

Hay đơn giản hơn nữa thì phang luôn folder portable_config của người đã và đang sử dụng MPV để xem SDR, HDR vậy sẽ không có nhầm lẫn, bộ folder này hỗ trợ cả SVP để tăng FPS lên 60: https://github.com/natural-harmonia-gropius/mpv-config

Nguồn:
Hàng mới nóng hổi nhé :love:
 
Last edited:
Hiện tại cái hướng dẫn mới nhất cài vapoursynth để ép 60FPS lại cho MPV.net kia https://github.com/mpvnet-player/mpv.net/wiki/Using-VapourSynth-in-mpv.net

Cơ mà chắc là áp dụng cho MPV zin được cơ mà phải tìm hiểu. Nó sẽ y hệt như MPV.net, chỉ khác là phần profile phải tự bật nó lên: https://mpv.io/manual/stable/#options-profile

Kiểu này: mpv.exe --profile=VapourSynth-Motion-Interpolation để kích hoạt profile, hoặc tạo file bat hay shortcut gì gì đó, rồi phang ném thằng file video vào là xong.

Cái này mình không rành nên có gì nhờ bạn @erogemaster225 tư vấn tiếp vậy.
Khó quá fen ơi. Khi nào fen rảnh rỗi vọc cho mpv zin thử nhoé
WawmAwM.png
 
Giới thiệu tiếp một addon nữa dành cho những người cuồng mở nhiều tab giúp ép người dùng không mở tab trùng lặp nhau gây gia tăng số lượng tab một cách không cần thiết: https://addons.mozilla.org/en-US/firefox/addon/dont-open-duplicate-tabs/

Sau khi cài vào xong mình khuyến cáo nên vào Manage Extension chỉnh:
Khi dùng sẽ dễ chịu hơn, ngoài ra mình lôi lại một vài bài viết hữu ích về việc tối ưu Firefox để mở nhiều tab mà ở đây là 6000, thậm chí 20000 tab, ưu điểm là nếu chơi vô hạn tab kiểu của mình thì các bạn hoàn toàn có thể tắt tính năng lưu History Firefox đi được, giảm đi rất nhiều ghi đọc vào SSD vào file places.sqlite:

 
Hiện tại cái hướng dẫn mới nhất cài vapoursynth để ép 60FPS lại cho MPV.net kia https://github.com/mpvnet-player/mpv.net/wiki/Using-VapourSynth-in-mpv.net

Cơ mà chắc là áp dụng cho MPV zin được cơ mà phải tìm hiểu. Nó sẽ y hệt như MPV.net, chỉ khác là phần profile phải tự bật nó lên: https://mpv.io/manual/stable/#options-profile

Kiểu này: mpv.exe --profile=VapourSynth-Motion-Interpolation để kích hoạt profile, hoặc tạo file bat hay shortcut gì gì đó, rồi phang ném thằng file video vào là xong.

Cái này mình không rành nên có gì nhờ bạn @erogemaster225 tư vấn tiếp vậy.
nếu muốn dùng cho mọi video thì chỉ đơn giản là đừng thêm cái [tên profile] vào conf
 
mà nếu dùng cái filter vs kia mà thấy drop frame thì cũng không có gì lạ đâu cái đó cũng hơi nặng, còn nếu có máy cực khoẻ thì dùng rife mà chơi
 
mà nếu dùng cái filter vs kia mà thấy drop frame thì cũng không có gì lạ đâu cái đó cũng hơi nặng, còn nếu có máy cực khoẻ thì dùng rife mà chơi

Nhiều bạn chắc máy cũng khủng, có con card tầm A100 thì phang tất chỉ ngại không dùng hết khả năng của nó thôi, mình thì đúng là nhận ra sự khác biệt giữa 30 với 60 FPS, cơ mà thấy vẫn chưa đáng để ép MPV biến 30 thành 60 bằng mấy cái filter như SVP lắm, với lại toàn xem Youtube có sẵn 60FPS rồi chả lo lắm.

Vấn đề là mấy hướng dẫn dùng VapourSynth có vẻ vẫn khó đối với nhiều bạn muốn tự mò vì phải cài Python rồi cài module VapourSynth, cài VapourSynth rồi lắp vào PATH của hệ điều hành, sau đó lắp vào profile MPV.
 
Nhiều bạn chắc máy cũng khủng, có con card tầm A100 thì phang tất chỉ ngại không dùng hết khả năng của nó thôi, mình thì đúng là nhận ra sự khác biệt giữa 30 với 60 FPS, cơ mà thấy vẫn chưa đáng để ép MPV biến 30 thành 60 bằng mấy cái filter như SVP lắm, với lại toàn xem Youtube có sẵn 60FPS rồi chả lo lắm.

Vấn đề là mấy hướng dẫn dùng VapourSynth có vẻ vẫn khó đối với nhiều bạn muốn tự mò vì phải cài Python rồi cài module VapourSynth, cài VapourSynth rồi lắp vào PATH của hệ điều hành, sau đó lắp vào profile MPV.
nên là mới có staxrip nó bundle hết vs lẫn python
còn chuyện "đáng hay không" thì cũng không hẳn, nó là "nên hay không" vì "nhiều hơn là tốt hơn" nó không đúng với mọi loại nội dung, ví dụ như phim và hoạt hình là thứ hay được mang ra interpolate nhiều nhất nhưng đều làm mọi thứ tệ hơn
 
Khó quá fen ơi. Khi nào fen rảnh rỗi vọc cho mpv zin thử nhoé
WawmAwM.png

Cái guide trên là dễ nhất rồi, bạn làm khó ở phần nào cứ nói mình sẽ xem cho. Thôi mình viết dịch qua và đơn giản hóa:

Code:
import os, sys
import vapoursynth

core = vapoursynth.core

sys.path.append(r"C:\StaxRip\Apps\Plugins\VS\Scripts")
import importlib.machinery
mvsfunc = importlib.machinery.SourceFileLoader('mvsfunc', r"C:\StaxRip\Apps\Plugins\VS\Scripts\mvsfunc.py").load_module()
adjust = importlib.machinery.SourceFileLoader('adjust', r"C:\StaxRip\Apps\Plugins\VS\Scripts\adjust.py").load_module()
havsfunc = importlib.machinery.SourceFileLoader('havsfunc', r"C:\StaxRip\Apps\Plugins\VS\Scripts\havsfunc.py").load_module()
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\AddGrain\AddGrain.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\AWarpSharp2\libawarpsharp2.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\CAS\CAS.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\CTMF\CTMF.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\Deblock\Deblock.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\EEDI2\EEDI2.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\EEDI3m\EEDI3m.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\Dual\flash3kyuu_deband\flash3kyuu_deband.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\FluxSmooth\libfluxsmooth.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\fmtconv\fmtconv.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\HQDN3D\libhqdn3d.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\Dual\KNLMeansCL\KNLMeansCL.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\mvtools\libmvtools.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\libnnedi3.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\NNEDI3CL.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\Sangnom\libsangnom.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\scenechange\scenechange.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\SVPFlow\svpflow1_vs64.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\SVPFlow\svpflow2_vs64.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\TTempSmooth\TTempSmooth.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\vsznedi3.dll", altsearchpath=True)

# ref: http://avisynth.org.ru/mvtools/mvtools2.html#functions
# default is 400, less means interpolation will only happen when it will work well
ignore_threshold=140
# if n% of blocks change more than threshold then don't interpolate at all (default is 51%)
scene_change_percentage=15

dst_fps = display_fps
# Interpolating to fps higher than 60 is too CPU-expensive, smoothmotion can handle the rest.
# while (dst_fps > 60):
#    dst_fps /= 2

if "video_in" in globals():
    # realtime
    clip = video_in
    # Needed because clip FPS is missing
    src_fps_num = int(container_fps * 1e8)
    src_fps_den = int(1e8)
    clip = core.std.AssumeFPS(clip, fpsnum = src_fps_num, fpsden = src_fps_den)
else:
    # run with vspipe
    clip = core.ffms2.Source(source=in_filename)
    dst_fps=float(dst_fps)

# resolution in megapixels. 1080p ≈ 2MP, 720p ≈ 1MP
mpix = clip.width * clip.height / 1000000

# Skip interpolation for >1080p or 60 Hz content due to performance
if not (mpix > 2.5 or clip.fps_num/clip.fps_den > 59):
    analParams = {
        'overlap': 0,
        'search': 3,
        'truemotion': True,
        #'chrome': True,
        #'blksize':16,
        #'searchparam':1
    }
    blockParams = {
        'thscd1': ignore_threshold,
        'thscd2': int(scene_change_percentage*255/100),
        'mode': 3,
    }

    if mpix > 1.5:
        # can't handle these on Full HD with Intel i5-2500k
        # see the description of these parameters in http://avisynth.org.ru/mvtools/mvtools2.html#functions
        analParams['search'] = 0
        blockParams['mode'] = 0
        quality = 'low'
    else:
        quality = 'high'


    dst_fps_num = int(dst_fps * 1e4)
    dst_fps_den = int(1e4)
    print("Reflowing from {} fps to {} fps (quality={})".format(clip.fps_num/clip.fps_den,dst_fps_num/dst_fps_den,quality))
    
    sup  = core.mv.Super(clip, pel=2)
    bvec = core.mv.Analyse(sup, isb=True, **analParams)
    fvec = core.mv.Analyse(sup, isb=False, **analParams)
    clip = core.mv.BlockFPS(clip, sup, bvec, fvec, 
            num=dst_fps_num, den=dst_fps_den, 
            **blockParams)

clip.set_output()
- Thêm cái này vào file mpv.conf:
Code:
[VapourSynth-Motion-Interpolation]
vf=vapoursynth="C:\StaxRip\mpv.vpy":buffered-frames=4:concurrent-frames=32
profile-restore = copy

[extension.vpy]
demuxer-lavf-format = vapoursynth
- Tạo file bat ở folder chứa MPV có nội dung như sau, save lại rồi mở lên:
Code:
mpv.exe --profile=VapourSynth-Motion-Interpolation --keep-open

Thế là xong, kéo thả video vào xem sẽ được 60 FPS như SVP. Mình viết đơn giản và chi tiết hết mức có thể rồi, cố gắng làm được nhé. :D

Nếu càng nhiều bạn test thử mà thành công thì mình cho lên #1.
 
Last edited:
Cái guide trên là dễ nhất rồi, bạn làm khó ở phần nào cứ nói mình sẽ xem cho. Thôi mình viết dịch qua và đơn giản hóa:

Code:
import os, sys
import vapoursynth

core = vapoursynth.core

sys.path.append(r"C:\StaxRip\Apps\Plugins\VS\Scripts")
import importlib.machinery
mvsfunc = importlib.machinery.SourceFileLoader('mvsfunc', r"C:\StaxRip\Apps\Plugins\VS\Scripts\mvsfunc.py").load_module()
adjust = importlib.machinery.SourceFileLoader('adjust', r"C:\StaxRip\Apps\Plugins\VS\Scripts\adjust.py").load_module()
havsfunc = importlib.machinery.SourceFileLoader('havsfunc', r"C:\StaxRip\Apps\Plugins\VS\Scripts\havsfunc.py").load_module()
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\AddGrain\AddGrain.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\AWarpSharp2\libawarpsharp2.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\CAS\CAS.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\CTMF\CTMF.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\Deblock\Deblock.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\EEDI2\EEDI2.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\EEDI3m\EEDI3m.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\Dual\flash3kyuu_deband\flash3kyuu_deband.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\FluxSmooth\libfluxsmooth.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\fmtconv\fmtconv.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\HQDN3D\libhqdn3d.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\Dual\KNLMeansCL\KNLMeansCL.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\mvtools\libmvtools.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\libnnedi3.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\NNEDI3CL.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\Sangnom\libsangnom.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\scenechange\scenechange.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\SVPFlow\svpflow1_vs64.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\SVPFlow\svpflow2_vs64.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\TTempSmooth\TTempSmooth.dll", altsearchpath=True)
core.std.LoadPlugin(r"C:\StaxRip\Apps\Plugins\VS\nnedi3\vsznedi3.dll", altsearchpath=True)

# ref: http://avisynth.org.ru/mvtools/mvtools2.html#functions
# default is 400, less means interpolation will only happen when it will work well
ignore_threshold=140
# if n% of blocks change more than threshold then don't interpolate at all (default is 51%)
scene_change_percentage=15

dst_fps = display_fps
# Interpolating to fps higher than 60 is too CPU-expensive, smoothmotion can handle the rest.
# while (dst_fps > 60):
#    dst_fps /= 2

if "video_in" in globals():
    # realtime
    clip = video_in
    # Needed because clip FPS is missing
    src_fps_num = int(container_fps * 1e8)
    src_fps_den = int(1e8)
    clip = core.std.AssumeFPS(clip, fpsnum = src_fps_num, fpsden = src_fps_den)
else:
    # run with vspipe
    clip = core.ffms2.Source(source=in_filename)
    dst_fps=float(dst_fps)

# resolution in megapixels. 1080p ≈ 2MP, 720p ≈ 1MP
mpix = clip.width * clip.height / 1000000

# Skip interpolation for >1080p or 60 Hz content due to performance
if not (mpix > 2.5 or clip.fps_num/clip.fps_den > 59):
    analParams = {
        'overlap': 0,
        'search': 3,
        'truemotion': True,
        #'chrome': True,
        #'blksize':16,
        #'searchparam':1
    }
    blockParams = {
        'thscd1': ignore_threshold,
        'thscd2': int(scene_change_percentage*255/100),
        'mode': 3,
    }

    if mpix > 1.5:
        # can't handle these on Full HD with Intel i5-2500k
        # see the description of these parameters in http://avisynth.org.ru/mvtools/mvtools2.html#functions
        analParams['search'] = 0
        blockParams['mode'] = 0
        quality = 'low'
    else:
        quality = 'high'


    dst_fps_num = int(dst_fps * 1e4)
    dst_fps_den = int(1e4)
    print("Reflowing from {} fps to {} fps (quality={})".format(clip.fps_num/clip.fps_den,dst_fps_num/dst_fps_den,quality))
   
    sup  = core.mv.Super(clip, pel=2)
    bvec = core.mv.Analyse(sup, isb=True, **analParams)
    fvec = core.mv.Analyse(sup, isb=False, **analParams)
    clip = core.mv.BlockFPS(clip, sup, bvec, fvec,
            num=dst_fps_num, den=dst_fps_den,
            **blockParams)

clip.set_output()
- Thêm cái này vào file mpv.conf:
Code:
[VapourSynth-Motion-Interpolation]
vf=vapoursynth="C:\StaxRip\mpv.vpy":buffered-frames=4:concurrent-frames=32
profile-restore = copy

[extension.vpy]
demuxer-lavf-format = vapoursynth
- Tạo file bat ở folder chứa MPV có nội dung như sau, save lại rồi mở lên:
Code:
mpv.exe --profile=VapourSynth-Motion-Interpolation --keep-open

Thế là xong, kéo thả video vào xem sẽ được 60 FPS như SVP. Mình viết đơn giản và chi tiết hết mức có thể rồi, cố gắng làm được nhé. :D

Nếu càng nhiều bạn test thử mà thành công thì mình cho lên #1.
fen dùng python ver mấy?
 
Đã làm và thành cmn công
Có cách nào ko cần dùng file bat ko fen? Em mở phim thẳng bằng mpv luôn chứ ko kéo thả khổ dâm :pudency:
Ngoài ra lưu ý chút, một khi đã thành công rồi thì thử thêm hwdec=auto hoặc hwdec=auto-safe vào đầu file mpv.conf nếu chưa có để cải thiện hiệu năng và bắt MPV dùng GPU chạy video, mặc định MPV nó dùng CPU.

Nói chung tham khảo đoạn hwdec ở post này rồi cứ thêm mắm thêm muối vào: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23246313

Nên đọc hướng dẫn để hiểu cách thức hoạt động của mấy cái trên:

https://mpv.io/manual/stable/#options-hwdec
https://mpv.io/manual/stable/#options-vo
 
click đúp mở phim thẳng bằng mpv luôn ấy fen
Thì thêm ở phần này, sửa thành

Code:
#[VapourSynth-Motion-Interpolation]
vf=vapoursynth="C:\StaxRip\mpv.vpy":buffered-frames=4:concurrent-frames=32
profile-restore = copy

Không chịu trách nhiệm nếu xem video thường hiệu năng kém nhé, vì profile 60FPS SVP này nên dùng khi cần, dùng với video 60FPS thì vô dụng trừ khi biết cách dùng profile-cond cơ mà không đảm bảo.
 
Có thể thử:

Code:
[VapourSynth-Motion-Interpolation]
profile-desc=Force SVP if FPS lower than 60
profile-cond=p["container-fps"] < 60
vf=vapoursynth="C:\StaxRip\mpv.vpy":buffered-frames=4:concurrent-frames=32
profile-restore = copy

Cái này là để MPV cứ thấy video nào nhỏ hơn 60 FPS thì nó ép bằng SVP. :D

Mình không rành vụ profile-cond nên nếu viết sai code nó sẽ không hoạt động, nếu thấy vậy cứ xóa đi.
 
Có thể thử:

Code:
[VapourSynth-Motion-Interpolation]
profile-desc=Force SVP if FPS lower than 60
profile-cond=p["container-fps"] < 60
vf=vapoursynth="C:\StaxRip\mpv.vpy":buffered-frames=4:concurrent-frames=32
profile-restore = copy

Cái này là để MPV cứ thấy video nào nhỏ hơn 60 FPS thì nó ép bằng SVP. :D

Mình không rành vụ profile-cond nên nếu viết sai code nó sẽ không hoạt động, nếu thấy vậy cứ xóa đi.
em switch profile bằng keybind được rồi fen :beauty:
 
Back
Top