Pliki napisów są w różnych formatach, od .srt do .sub do .ass i tak dalej. Czy istnieje sposób, aby powiedzieć mpv, aby szukał plików napisów wraz z plikami multimedialnymi i jeśli tak, aby automatycznie rozpocząć odtwarzanie pliku. Obecnie muszę zrobić coś takiego, co może być dość długie w zależności od nazwy pliku -
[$] mpv --list-options | grep sub-file
(null) requires an argument
--sub-file String list (default: ) [file]
Czekamy na odpowiedzi.
Aktualizacja 1 - Typowy film z rozszerzeniem .srt (lub indeksem dolnym)
[$] mpv Winter.Sleep.\(Kis.Uykusu\).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv
(null) requires an argument
Playing: Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv
(+) Video --vid=1 (*) (hevc)
(+) Audio --aid=1 (aac)
(+) Subs --sid=1 'Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.srt' (subrip) (external)
[vo/opengl] Could not create EGL context!
[sub] Using subtitle charset: UTF-8-BROKEN
AO: [alsa] 48000Hz stereo 2ch float
VO: [opengl] 1280x536 yuv420p
AV: 00:02:14 / 03:16:45 (1%) A-V: 0.000
Najciekawsza linia to: -
(+) Subs --sid=1 'Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.srt' (subrip) (external)
Teraz, jeśli plik byłby .ass lub .sub o tej samej nazwie, nie działałby. Próbowałem tego w wielu plikach multimedialnych, które mają te rozszerzenia i za każdym razem mpv ładuje wideo i audio oraz protokoły, ale nie zewnętrzne pliki napisów.
Aktualizacja 2 - Część skryptu .ass jest wymieniona jako błąd w bts mpv - https://github.com/mpv-player/mpv/issues/2846
Aktualizacja 3 - Próbowałem debugować za pomocą upstream, złożony https://github.com/mpv-player/mpv/issues/3091 .
Wydaje się jednak, że to nie mpv jest odpowiedzialne, ale ffmpeg (i libavformat), który ma dekodować napisy. Dlatego też dodałem do niego ffmpeg.
źródło
srt
. Możesz zgłosić problem.0.17
użycia0.14
.0.14
Opakowanie posiada 4 łatki przed Upstream, ale przeważnie wyglądają dość trywialne.Odpowiedzi:
Jak widać w
man mpv
:exact
wydaje się być właściwym wyborem, ale ponieważ jest to domyślny i nie ładuje plików[video name minus extension].srt
,fuzzy
jest kolejnym najlepszym wyborem i działa w moim systemie.Tak po prostu
echo "sub-auto=fuzzy" >> ~/.config/mpv/mpv.conf
.źródło
Używam prostej funkcji:
Jeśli chcesz sprawdzić obecność plików napisów z różnymi rozszerzeniami, możesz zastosować bardziej złożone podejście:
źródło
jeśli chcesz stworzyć coś takiego (kliknij dowolny plik związany z mpv i zagraj z napisami)
wewnątrz
/usr/share/applications/mpv.desktop
:następnie w
mpv2.sh
skrypcie:źródło