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

Khả năng là do card màn hình thuộc nhóm chưa tương thích với Firefox nên phía Mozilla họ tắt đi mặc định, còn cài plugin vào thì nó ghi đè lên nên lại được.

Cơ mà mình lưu ý chút là cái plugin này từ năm 2018 chưa được cập nhập và nó dành cho Edge, không thể dựa dẫm vào nó lâu dài được vì có khả năng có lỗi, nếu có thể bạn nên thử xem trên MPV, ưu điểm:

  • Hiệu năng tốt hơn rất nhiều cả Firefox, Chrome hay Edge, CPU giảm rất nhiều nhìn chung luôn nhẹ hơn khi xem, đặc biệt là mở cả đống video với MPV còn chả tốn mấy so với mở 1 video trên trình duyệt. Ví dụ: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/page-22#post-23106885 hay cá nhân mình có con máy 10 năm tuổi với card AMD Radeon HD 6470M - 1024 MB (WDDM 1.3) mà còn xem 8k Youtube được với MPV, chả lag gì cả | Tham khảo thêm: https://voz.vn/search/7778600/?q=cpu&t=post&c[thread]=682181&o=relevance
  • Tính đa nhiệm cao vì có thể mở MPV sang màn hình phụ hay thu nhỏ qua một góc, vừa xem vừa làm việc và đây là trải nghiệm thực tế của mình, thay vì dán mắt vào tab Youtube mình vừa làm việc, vừa code, vừa đọc báo, vừa tìm hàng trên Github, hóng phốt trên Reddit... vừa xem Youtube được không bị lãng phí thời gian.
Ngồi mò cài mới xong đây bác. Mà mình đang bị lỗi, mở Video Youtube qua MVP khi mình sử dụng cái pack MVP Smooth ở trên bác có post thì xem video giật giật. Video mở trực tiếp trên máy thì vẫn mượt do cái Smooth pack kia
 
Ngồi mò cài mới xong đây bác. Mà mình đang bị lỗi, mở Video Youtube qua MVP khi mình sử dụng cái pack MVP Smooth ở trên bác có post thì xem video giật giật. Video mở trực tiếp trên máy thì vẫn mượt do cái Smooth pack kia
Video trên Youtube mà bạn không chỉnh gì nó là 60FPS 8K-4K rồi, cái smoothpack kia tất nhiên không giúp ích mà còn gây hại vì dù gì 60FPS tăng lên 60FPS chả để làm gì, chỉ ngốn CPU với GPU làm một điều không cần thiết, với lại bản MPV trong đó cũng cách đây 2 năm nên cũng khá cũ, mình không đảm bảo về hiệu năng của nó được.

Để có trải nghiệm tốt nhất có lẽ bạn nên dùng bản Smoothpack để xem video offline, còn bản tải từ đầu như #1 thì cài plugin uosc dùng xem Youtube.

Để nhập môn thì:

Thế là ngon lành cành đào, xem online đổi độ phân giải các kiểu, tự động có sub..
 
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.
 
Video trên Youtube mà bạn không chỉnh gì nó là 60FPS 8K-4K rồi, cái smoothpack kia tất nhiên không giúp ích mà còn gây hại vì dù gì 60FPS tăng lên 60FPS chả để làm gì, chỉ ngốn CPU với GPU làm một điều không cần thiết, với lại bản MPV trong đó cũng cách đây 2 năm nên cũng khá cũ, mình không đảm bảo về hiệu năng của nó được.

Để có trải nghiệm tốt nhất có lẽ bạn nên dùng bản Smoothpack để xem video offline, còn bản tải từ đầu như #1 thì cài plugin uosc dùng xem Youtube.

Để nhập môn thì:

Thế là ngon lành cành đào, xem online đổi độ phân giải các kiểu, tự động có sub..
:censored: sau khi chỉnh cho Firefox chạy Av1 ngon lành rồi thì thằng MPV này nó lại không nhận av1 bác ơi, bật video 8k ra ngoài giật tung đít kaka, mình sử dụng file ffmpeg + mpv mới nhất mà bản ko phải v3 :D
 
:censored: sau khi chỉnh cho Firefox chạy Av1 ngon lành rồi thì thằng MPV này nó lại không nhận av1 bác ơi, bật video 8k ra ngoài giật tung đít kaka, mình sử dụng file ffmpeg + mpv mới nhất mà bản ko phải v3 :D

Chắc bạn chưa copy cái config của mình rồi, mặc định MPV nó không bật hardware acceleration, chỉ cần thêm 1 dòng hwdec=auto vào là nó hỗ trợ, cực đơn giản nhưng cực quan trọng, thiếu là MPV sẽ chỉ dùng CPU, chứ AV1 MPV nó hỗ trợ từ lâu lắm rồi ấy chứ.

Bạn vào folder portable_config, mở file mpv.conf lên thêm dòng trên vào là ok, nếu có lỗi gì thì thử hwdec=auto-safe.
 
Chắc bạn chưa copy cái config của mình rồi, mặc định MPV nó không bật hardware acceleration, chỉ cần thêm 1 dòng hwdec=auto vào là nó hỗ trợ, cực đơn giản nhưng cực quan trọng, thiếu là MPV sẽ chỉ dùng CPU, chứ AV1 MPV nó hỗ trợ từ lâu lắm rồi ấy chứ.
Mình nhớ là có copy cái đoạn đó mà nhỉ, phải cái chỗ bác kêu cực quan trọng không. Để mai mình kiểm tra lại :D. Cám ơn bác nhiệt tình giúp đỡ :p
 
Mình nhớ là có copy cái đoạn đó mà nhỉ, phải cái chỗ bác kêu cực quan trọng không. Để mai mình kiểm tra lại :D. Cám ơn bác nhiệt tình giúp đỡ :p
Mới sửa lại cho dễ nhìn với thêm vài lưu ý, có gì mai bạn cứ thử xem. Chi tiết, nhìn chung nó xoay quanh cái vo với hwdec cho hardware acceleration:

https://mpv.io/manual/stable/#options-hwdec
https://mpv.io/manual/stable/#options-vo

Thường máy mới sẽ để vo=gpu-next

Post này cũng nên xem để hiểu rõ cấu trúc của folder và file của MPV: https://voz.vn/t/tong-hop-nhung-addon-chat-cho-firefox-pc-mobile.682181/post-23849603
 
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
 
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.
 
Sửa lần cuối:
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)
Mã:
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:
 
Sửa lần cuối:
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:

Mã:
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:
Mã:
[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:
Mã:
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.
 
Sửa lần cuối:
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:

Mã:
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:
Mã:
[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:
Mã:
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?
 

Thống kê chủ đề

Ngày tạo
toi la gay :sosad:,
Người trả lời cuối
Snawfus,
Trả lời
31.451
Lượt xem
3.327.392
Quay lại
Lên đầu trang