mpvは自動的に字幕を再生します

mpvは自動的に字幕を再生します

字幕ファイルは、.srt、.sub、.assなど、さまざまな形式で提供されます。 mpvに字幕ファイルとメディアファイルを検索し、そのファイルが見つかったら自動的に再生を開始するように指示する方法はありますか?現在、私はこのようなことをする必要がありますが、ファイル名によってはかなり長くなることがあります。

[$] mpv --list-options | grep sub-file                                                                                              
(null) requires an argument
 --sub-file                       String list (default: ) [file]

答えを楽しみにしています。

アップデート1 - .srt(または下付き文字)を含む一般的な映画

[$] 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

最も興味深いラインは次のとおりです。

(+) Subs  --sid=1 'Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.srt' (subrip) (external)

これで、ファイル名が同じ.assまたは.subの場合は機能しません。私はこれらの拡張子を持つ多くのメディアファイルでこれを試しましたが、mpvがビデオ、オーディオ、およびプロトコルをロードするたびに外部の字幕ファイルはロードされませんでした。

アップデート2 - .assスクリプトセクションがmpvのbtsにエラーとしてリストされています。https://github.com/mpv-player/mpv/issues/2846

Update 3 - アップストリームの助けを借りてデバッグを試み、コミットしました。https://github.com/mpv-player/mpv/issues/3091そのような理由で。

mpvではなく字幕デコードを担当するffmpeg(およびlibavformat)のようです。だからffmpegも追加されました。

ベストアンサー1

見たようにman mpv:

   --sub-auto=<no|exact|fuzzy|all>, --no-sub-auto
          Load additional subtitle files matching the video filename. The
          parameter specifies how external subtitle files are matched.
          exact is enabled by default.

          no     Don't automatically load external subtitle files.

          exact  Load the media filename with subtitle file extension
                 (default).

          fuzzy  Load all subs containing media filename.

          all    Load all subs in the current and --sub-paths directories.

exact適切な選択肢だと思いますが、これがデフォルトであり、似たようなファイルをロードしないので、これは[video name minus extension].srtfuzzyのシステムで動作します。

だからちょうどecho "sub-auto=fuzzy" >> ~/.config/mpv/mpv.conf

おすすめ記事