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

Đây là bộ phím tắt căn bản để đổi thuật toán làm sắc nét, tất nhiên tất cả chỗ này đều thua thuật toán AI như Anime4K cho anime và FSRCNNX cho phim (Có thể tìm hiểu sau qua: https://github.com/iwalton3/default-shader-pack/tree/master/shaders)

Bỏ vào file input.conf. Nói chung nhiều vậy thôi chứ cái quan trọng nhất là cscale nghĩa là Alt + 2, mấy cái khác chỉ là râu ria.

Code:
Alt+1 cycle-values scale bilinear bicubic_fast oversample spline16 spline36 spline64 sinc lanczos ginseng jinc ewa_lanczos ewa_hanning ewa_ginseng ewa_lanczossharp ewa_lanczossoft haasnsoft bicubic bcspline catmull_rom mitchell robidoux robidouxsharp ewa_robidoux ewa_robidouxsharp box nearest triangle gaussian bartlett cosine hanning tukey hamming quadric welch kaiser blackman sphinx

Alt+2 cycle-values cscale bilinear bicubic_fast oversample spline16 spline36 spline64 sinc lanczos ginseng jinc ewa_lanczos ewa_hanning ewa_ginseng ewa_lanczossharp ewa_lanczossoft haasnsoft bicubic bcspline catmull_rom mitchell robidoux robidouxsharp ewa_robidoux ewa_robidouxsharp box nearest triangle gaussian bartlett cosine hanning tukey hamming quadric welch kaiser blackman sphinx

Alt+3 cycle-values tscale oversample linear spline16 spline36 spline64 sinc lanczos ginseng bicubic bcspline catmull_rom mitchell robidoux robidouxsharp box nearest triangle gaussian bartlett cosine hanning tukey hamming quadric welch kaiser blackman sphinx

Alt+4 cycle-values dscale bilinear bicubic_fast oversample spline16 spline36 spline64 sinc lanczos ginseng jinc ewa_lanczos ewa_hanning ewa_ginseng ewa_lanczossharp ewa_lanczossoft haasnsoft bicubic bcspline catmull_rom mitchell robidoux robidouxsharp ewa_robidoux ewa_robidouxsharp box nearest triangle gaussian bartlett cosine hanning tukey hamming quadric welch kaiser blackman sphinx
ewa_lanczossharp gang
mà nói thật là mấy cái scaling shader kiểu anime4k không phải lúc nào cũng tốt nhiều lúc nó cố "enhance" làm kết quả tệ hơn gốc
 
Tui dùng svp với mpv xem phim trên màn 75hz. Cho hỏi t chỉnh svp tăng fps phim lên 90fps, cao hơn refresh rate màn hình thì xem có mượt hơn không nhỉ hay vô tác dụng

via theNEXTvoz for iPhone
 
Tui dùng svp với mpv xem phim trên màn 75hz. Cho hỏi t chỉnh svp tăng fps phim lên 90fps, cao hơn refresh rate màn hình thì xem có mượt hơn không nhỉ hay vô tác dụng

via theNEXTvoz for iPhone
fps cao hơn thì cái kết sẽ là screen tearing chứ nó không thể hiện thêm frame nào được
còn về mấy cái phần mềm frame interpolation như svp chắc chỉ dùng với video game chứ hoạt hình phim ảnh người ta chọn framerate thấp là có chủ đích, không phải cứ nhìn "mượt" hơn là tốt hơn
Smoother animation ≠ Better animation
 
2 thím @erogemaster225 với @toi la gay :sosad: có thể chỉ giúp em cài thằng autosub hay subscene này được không, em mò mãi mà không được. Python thì em có Python 3.11 trong cái gói của streamlink rồi.

Không nên và cũng gần như không thể tái sử dụng gói Python trong Streamlink được, vì nó là dạng đóng gói thành .exe cho Streamlink nên bị cắt xén tính năng đi rất nhiều, thư viện thì bị ẩn vào file zip, và quan trọng nhất là không có pip hay easy_install để cài thư viện. Ngoài ra thằng autosub nó đòi dùng symlink, sửa thành hardlink cũng ok mà không nên.

Nên cài Python tại https://www.python.org/downloads/

Rồi bật CMD, gõ python -m pip install subliminal

Vậy là xong, autosub sẽ chạy.
 
Last edited:
Không nên và cũng gần như không thể tái sử dụng gói Python trong Streamlink được, vì nó là dạng đóng gói thành .exe cho Streamlink nên bị cắt xén tính năng đi rất nhiều, thư viện thì bị ẩn vào file zip, và quan trọng nhất là không có pip hay easy_install để cài thư viện. Ngoài ra thằng autosub nó đòi dùng symlink, sửa thành hardlink cũng ok mà không nên.

Nên cài Python tại https://www.python.org/downloads/

Rồi bật CMD, gõ python -m pip install subliminal

Vậy là xong, autosub sẽ chạy.
Mấy thằng này hình như có nhược điểm là nếu để slang là en, eng là cứ tiếng nước nào chuyển đổi sang eng là nó load hết chứ nó không lọc theo đúng 1 kiểu en như trong hình ví dụ này của em nhỉ

mpv_TXWiCV8dQ7.png


Này trong file autosub.lua em có thêm tiếng việt

Capture.PNG


Để tiếng Anh là nó load 1 loạt các thứ tiếng khác chuyển sang tiếng anh luôn

Link test của em:
 
Mấy thằng này hình như có nhược điểm là nếu để slang là en, eng là cứ tiếng nước nào chuyển đổi sang eng là nó load hết chứ nó không lọc theo đúng 1 kiểu en như trong hình ví dụ này của em nhỉ

View attachment 1693086

Này trong file autosub.lua em có thêm tiếng việt

View attachment 1693095

Để tiếng Anh là nó load 1 loạt các thứ tiếng khác chuyển sang tiếng anh luôn

Link test của em:
Có thể khiến nó ưu tiên tiếng Việt bằng cách đảo đoạn:

Code:
['Vietnamese', 'vi', 'vie'],
['English', 'en', 'eng'],

Còn cái đống from... to là do cái tùy chọn --ytdl-raw-options=write-auto-sub= của Youtube đó, lược bỏ bớt đi bằng cách sửa thành --ytdl-raw-options=sub-lang=en,write-sub=,write-auto-sub=, tốt nhất nên chuyển hết chỗ này vào file mpv.conf cho tiện quản lý và mpv.conf thì cho phép dùng " chứ dùng " trong External Application hiện tại rất khoai:

Thêm: ytdl-raw-options=sub-lang="en,vi",write-sub=,write-auto-sub= vào mpv.conf và sửa thành --ytdl [HREF] trong External Button.
 
Last edited:
Có thể khiến nó ưu tiên tiếng Việt bằng cách đảo đoạn:

Code:
['Vietnamese', 'vi', 'vie'],
['English', 'en', 'eng'],

Còn cái đống from... to là do cái tùy chọn --ytdl-raw-options=write-auto-sub= của Youtube đó, lược bỏ bớt đi bằng cách sửa thành --ytdl-raw-options=sub-lang=en,write-sub=,write-auto-sub=, tốt nhất nên chuyển hết chỗ này vào file mpv.conf cho tiện quản lý và mpv.conf thì cho phép dùng " chứ dùng " trong External Application hiện tại rất khoai:

Thêm: ytdl-raw-options=sub-lang="en,vi",write-sub=,write-auto-sub= vào mpv.conf và bỏ đoạn -- trong External Button.
Thanks thím em thấy nó lọc được chỉ còn tiếng Việt với Anh rồi. Mà thằng cơ chế nó lấy sub từ đâu thím nhỉ. Trong https://github.com/davidde/mpv-autosub phần setup mục số 2 nó có bảo sửa cái đường dẫn đến file subliminal.exe luôn rồi. Mà thí dụ em thấy trên ytb coi có sub thì nó load ngon còn xem phim ở trang khác như kiểu trang này https://phimbom.net/xem-phim/khi-hart-ra-tay-4d777.html thì lại không thấy nó load sub mặc dù em thấy bọn nó có up sub việt riêng nên chắc cũng lấy từ trên mạng. Vậy là do cái thằng subliminal nó không get đủ sub hả ta.
 
Thanks thím em thấy nó lọc được chỉ còn tiếng Việt với Anh rồi. Mà thằng cơ chế nó lấy sub từ đâu thím nhỉ. Trong https://github.com/davidde/mpv-autosub phần setup mục số 2 nó có bảo sửa cái đường dẫn đến file subliminal.exe luôn rồi. Mà thí dụ em thấy trên ytb coi có sub thì nó load ngon còn xem phim ở trang khác như kiểu trang này https://phimbom.net/xem-phim/khi-hart-ra-tay-4d777.html thì lại không thấy nó load sub mặc dù em thấy bọn nó có up sub việt riêng nên chắc cũng lấy từ trên mạng. Vậy là do cái thằng subliminal nó không get đủ sub hả ta.

Nguồn của nó thật là khá bự: https://subliminal.readthedocs.io/en/latest/api/providers.html
Code:
    Addic7ed
    LegendasTv
    NapiProjekt
    OpenSubtitles
    Podnapisi
    Shooter
    TheSubDB
    TVsubtitles

Tuy nhiên là dành cho Tây, cơ mà nếu tìm thấy nguồn sub Việt Nam thì có thể thêm vào nó sẽ phong phú hơn hoặc tạo Issue trên Github, căn bản là thằng này viết cho Tây nên chỉ Tây hưởng lợi là chính, dù gì đi chăng nữa cũng phải chấp nhận sự thật là nước Việt Nam còn quá bé nhỏ để có được nhiều sự trợ giúp, to như Trung Quốc họ còn tự làm lấy trang assrt.net để chứa sub (https://github.com/AssrtOSS/mpv-assrt).

https://github.com/Diaoul/subliminal

Thằng này nếu tìm cách compile nó thành file subliminal.exe thì có thể dùng mà không cần cài Python, giống Streamlink, tham khảo PyInstalller.

Ngoài ra để nó nhận sub tốt hơn thì phải thiết kế lại nút External Application cho nó gửi tiêu đề phim vào --title= (bởi nó tìm sub dựa trên metadata hoặc tiêu đề phim, mà xem trên Youtube thì có tiêu đề còn xem ngoài thì nó loạn xà ngầu lên), cũng không tốt lắm, bạn nên tìm cái thay thế ở đây hoặc phải mod lại cái autosub dùng mới bớt tù được: https://github.com/stax76/awesome-mpv#subtitle

Ý tưởng mod:
- Thêm tính năng search tay bằng phím tắt
 
Last edited:
Còn đây là cách sử dụng [PRE_SCRIPT] để lấy link của trang web hiện tại làm Referer, bạn cũng rành Userscript nên chắc mình chỉ qua thế này là hiểu:
Chú ý phần document.currentScript.output = chính là khi mình lấy giá trị và sử dụng cho [PRE_SCRIPT]

Tính năng này y như viết Userscript, ví dụ có thể dùng alert(document.title) để lấy tiêu đề web, cơ mà phải phải dùng Javascript split các kiểu để xóa bớt rác rưởi đi vì nếu chỉ dùng document.title thì tiêu đề web nó cũng lẫn vào nữa mà ở đây mình cần là cần tiêu đề phim. Ví dụ dùng document.title ở trang này thì bị lẫn nextVoz vào:


Ví dụ: Tích vào nếu dùng " trong Arguments:
Kết quả: https://gfycat.com/WeirdWholeAiredaleterrier
 
Last edited:
Ngoài ra để nó nhận sub tốt hơn thì phải thiết kế lại nút External Application cho nó gửi tiêu đề phim vào --title= (bởi nó tìm sub dựa trên metadata hoặc tiêu đề phim, mà xem trên Youtube thì có tiêu đề còn xem ngoài thì nó loạn xà ngầu lên), cũng không tốt lắm, bạn nên tìm cái thay thế ở đây hoặc phải mod lại cái autosub dùng mới bớt tù được: https://github.com/stax76/awesome-mpv#subtitle

Ý tưởng mod:
- Thêm tính năng search tay bằng phím tắt
mấy ông việt nam cứ việt hoá tiêu đề phim thì ai mà tìm cho được nên nếu viết script để lấy tên phim là phải làm per site luôn
 
@toi la gay :sosad: @erogemaster225
Đúng là nếu lấy title mà nhiều web xài việt hóa tựa đề phim thì chắc thua có nhiều khi 1 phim mà có 2 tên việt hóa khác nhau nữa.

Trường hợp làm cho per site em có thử cho cả title và media-title để trả về thành tiếng Anh luôn nhưng kết quả là thằng autosub nó cũng ko thấy sub trả về
Thí dụ như site này https://phimbom.net/xem-phim/khi-hart-ra-tay-4d777.html nó có class real-name nên em ăn gian lấy luôn :LOL: ngồi mò mò mượn code của thím để sửa lại 1 tí

cho title
--title="[PRE_SCRIPT]" --no-ytdl [HREF]
document.title = document.querySelector('h2.real-name') ? document.querySelector('h2.real-name').textContent : document.title; document.currentScript.output = document.title.replace(/"/g, "")

hoặc cho media-title
--media-title="[PRE_SCRIPT]" --no-ytdl [HREF]
document.title = document.querySelector('h2.real-name') ? document.querySelector('h2.real-name').textContent : document.title; document.currentScript.output = document.title.replace(/"/g, "")

Không lấy được sub nhưng mà nếu xài media-title thay cho title thì lúc mình nhìn history hay playlist nó sẽ đẹp hơn thay vì nó hiện URL link

Untitled.png


Trường hợp khác là có nguyên cái link đổ ra title y chang như phim mà nó cũng không lấy được :D thí dụ link này https://d5ln38p3754yc.cloudfront.ne...n.2023.1080p.WEBRip.x264-RARBG.mp4?1676995650 em xài hẳn mpv có yt-dlp luôn mà kết quả cũng không ra sub

mpv_NrzyR551NY.jpg


Chắc chỉ có nước chạy bằng cơm cho mấy vụ này là down sub về rồi cứ thả kéo vào quá :)
 
Chắc chỉ có nước chạy bằng cơm cho mấy vụ này là down sub về rồi cứ thả kéo vào quá :)

Mình nghĩ vấn đề chính là phải mod lại thằng autosub ấy, plugin này đã lâu rồi chưa update và mình đọc qua thì code check của nó chỉ kiểm tra mp.get_property('path') nghĩa là chỉ kiểm tra tên file, mà xem online thì không có tên file. Đây là toàn bộ đoạn code mà nó sử dụng để tìm tên sub:

Code:
-- Download function: download the best subtitles in most preferred language
function download_subs(language)
    language = language or languages[1]
    if #language == 0 then
        log('No Language found\n')
        return false
    end
            
    log('Searching ' .. language[1] .. ' subtitles ...', 30)

    -- Build the `subliminal` command, starting with the executable:
    local table = { args = { subliminal } }
    local a = table.args

    for _, login in ipairs(logins) do
        a[#a + 1] = login[1]
        a[#a + 1] = login[2]
        a[#a + 1] = login[3]
    end
    if bools.debug then
        -- To see `--debug` output start MPV from the terminal!
        a[#a + 1] = '--debug'
    end

    a[#a + 1] = 'download'
    if bools.force then
        a[#a + 1] = '-f'
    end
    if bools.utf8 then
        a[#a + 1] = '-e'
        a[#a + 1] = 'utf-8'
    end

    a[#a + 1] = '-l'
    a[#a + 1] = language[2]
    a[#a + 1] = '-d'
    a[#a + 1] = directory
    a[#a + 1] = filename --> Subliminal command ends with the movie filename.

    local result = utils.subprocess(table)

    if string.find(result.stdout, 'Downloaded 1 subtitle') then
        -- When multiple external files are present,
        -- always activate the most recently downloaded:
        mp.set_property('slang', language[2])
        -- Subtitles are downloaded successfully, so rescan to activate them:
        mp.commandv('rescan_external_files')
        log(language[1] .. ' subtitles ready!')
        return true
    else
        log('No ' .. language[1] .. ' subtitles found\n')
        return false
    end
end

-- Manually download second language subs by pressing 'n':
function download_subs2()
    download_subs(languages[2])
end

-- Control function: only download if necessary
function control_downloads()
    -- Make MPV accept external subtitle files with language specifier:
    mp.set_property('sub-auto', 'fuzzy')
    -- Set subtitle language preference:
    mp.set_property('slang', languages[1][2])
    mp.msg.warn('Reactivate external subtitle files:')
    mp.commandv('rescan_external_files')
    directory, filename = utils.split_path(mp.get_property('path'))

    if not autosub_allowed() then
        return
    end

    sub_tracks = {}
    for _, track in ipairs(mp.get_property_native('track-list')) do
        if track['type'] == 'sub' then
            sub_tracks[#sub_tracks + 1] = track
        end
    end
    if bools.debug then -- Log subtitle properties to terminal:
        for _, track in ipairs(sub_tracks) do
            mp.msg.warn('Subtitle track', track['id'], ':\n{')
            for k, v in pairs(track) do
                if type(v) == 'string' then v = '"' .. v .. '"' end
                mp.msg.warn('  "' .. k .. '":', v)
            end
            mp.msg.warn('}\n')
        end
    end

    for _, language in ipairs(languages) do
        if should_download_subs_in(language) then
            if download_subs(language) then return end -- Download successful!
        else return end -- No need to download!
    end
    log('No subtitles were found')
end

Nếu chỉnh cho nó kiểm tra mp.get_property("media-title", "") thì chắc là được đó.
 
Firemonkey dùng chính API userscript của FF nên chạy nhanh vãi đạn, nhẹ hều :sexy_girl:

Về hiệu năng thì hơn xa tụi kia, chỉ có điều vài script mà Tampermonkey chạy được dùng API Menu của nó thì Firemonkey sẽ không chạy được (như script Popup Blocker của Adguard), vài Userstyles phải chỉnh lại thêm @include vào mới chạy vì khác với cái addon như Stylus, Stylish..., thằng Firemonkey nó không tự thêm * vào những style trống, ví dụ, nhìn chung lập Issue trên Github chắc sẽ được sửa thôi cơ mà cái Github hơi khó dùng vì ông dev hiện tại gom tất cả addon vào một Github: https://greasyfork.org/en/scripts/396868-disable-all-css-animations/code
 
Back
Top