SMPlayer가 하위 디렉터리(예: ./Subs/*.srt 등)에서 외부 자막을 확인하고 로드하도록 할 수 있습니까?

SMPlayer가 하위 디렉터리(예: ./Subs/*.srt 등)에서 외부 자막을 확인하고 로드하도록 할 수 있습니까?

나는 보통 대부분의 경우 잘 작동하는 VLC를 사용하지만 mpv 및 mpv 기반 플레이어를 확인하라는 제안에 따라 SMPlayer가 내 요구 사항에도 적합한지 알아보려고 노력해 왔습니다. 그러나 하위 폴더에 있는 외부 자막 파일을 감지하는 데 문제가 있습니다.

$ cd some-show-s01/
$ tree
.
├── Some.Show.S01E01.mp4
├── Some.Show.S01E02.mp4
├── Some.Show.S01E03.mp4
└── Subs
    ├── Some.Show.S01E01.English-1.srt
    ├── Some.Show.S01E01.English-2.srt
    ├── Some.Show.S01E02.English-1.srt
    ├── Some.Show.S01E02.English-2.srt
    ├── Some.Show.S01E03.English-1.srt
    └── Some.Show.S01E03.English-2.srt

또한 비디오 파일과 정확히 일치하는 이름(예: )을 사용하여 에피소드당 하나의 하위 항목만 시도했고 ./Subs/Some.Show.S01E01.srt, "Subs" 대신 "Subtitles"라는 하위 폴더 아래에 두 개의 변형을 시도했습니다. VLC는 네 가지 경우 모두에 대해 외부 서브우퍼를 자동으로 선택합니다.

SMPlayer에서도 이 작업을 수행할 수 있는 방법이 있나요? 그렇지 않다면 이 레이아웃을 지원하는 VLC 외에 다른 Linux 비디오 플레이어가 있습니까?

저는 Fedora 35/36(데스크톱 + 노트북)을 혼합하여 사용하고 있으며 필요한 경우 소스에서 쉽게 컴파일할 수 있습니다(다른 배포판의 종속 패키지 이름을 변환하는 것이 때로는 어렵기는 하지만). 저는 SMPlayer v22.7.0(개정 10091)을 사용하고 있습니다.

# dnf list installed smplayer mpv
Installed Packages
mpv.x86_64        0.34.1-2.fc35   @rpmfusion-free-updates
smplayer.x86_64   22.7.0-1.fc35   @rpmfusion-free-updates

편집하다:

mpv 자체에서 비디오를 재생하고 다음을 사용하여 자막을 로드할 수 있습니다.

$ cd some-show-s01/
$ mpv --sub-file-paths='Subs' --sub-auto='all' ./Some.Show.S01E02.mp4

그러나 SMPlayer 설정을 변경하면이 토론, 기본 설정->고급->MPlayer/mpv 옵션에서 --sub-file-paths='Subs' --sub-auto='all'옵션 필드에 추가하고 적용을 클릭하면 다음과 같은 오류 메시지가 나타납니다.

/usr/bin/mplayer -noquiet -slave -identify -nofs -sub-fuzziness 1 -nodr -double -nomouseinput -input nodefault-bounds:conf=/dev/null -nokeepaspect -wid 92274705 -monitorpixelaspect 1 -osdlevel 0 -subfont -osd-scale 3 -progbar-align 80 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -noflip-hebrew -ass-styles /home/myuser/.config/smplayer/styles.ass - subcp ISO-8859-1 -alang japanese,jap,jp,english,eng,en -slang english,eng,en -subpos 100 -volume 100 -ss 27 -vf-add snapshot=/home/myuser/Pictures/smplayer_screenshots/ 렌즈 -noslices -af-add scaletempo -softvol -softvol-max 200 --sub-file-paths='Subs' --sub-auto='all' /home/myuser/Videos/podcasts/some-show-s01/ 일부.쇼.S01E02.mp4

명령줄의 알 수 없는 옵션: --sub-file-paths='Subs'

명령줄의 옵션 구문 분석 중 오류 발생: --sub-file-paths='Subs'

MPlayer 1.5-11 (C) 2000-2022 MPlayer 팀

ID_EXIT=없음

편집하다:

해결되었습니다. 내 문제는 두 가지입니다. 첫째, SMPlayer가 폴더에서 자막 파일을 로드하는 데 사용하는 기본 비디오 플레이어에 알리기 위해 몇 가지 매개변수를 추가해야 합니다. 둘째, 매개변수를 지정했지만 mpv내 SMPlayer는 기본적으로 MPlayer로 설정되어 있으므로 호출하는 비디오 플레이어를 변경해야 합니다. 또는 MPlayer에서 동일한 작업을 수행하는 데 필요한 매개변수가 무엇인지 조사할 수 있습니다(이 작업을 수행하지 않았으므로 이것이 가능한지 확인할 수 없습니다).

답변1

설명하다

지원해 주셔서 감사합니다 Sir_not_sirReddit의 Linux질문 하위상황을 검토하고 최종적으로 문제를 해결할 수 있는 프롬프트를 찾고 있습니다. 추가 조사와 시행착오가 필요했지만 마침내 작동하게 되었습니다.

그 사람이 나한테 지적했지http://old-forum.smplayer.info/viewtopic.php?f=2&t=8743mpvSMPlayer는 고급 옵션에서 매개변수와 제안을 전달할 수 있다고 언급되었습니다 --sub-paths=/tmp/subs --sub-auto=all|fuzzy. 이전에 이 게시물을 본 적이 있지만 /tmp/subs비디오 파일과 관련된 경로가 아닌 정적 경로에만 적용된다고 가정했습니다. 하지만 그 책을 다시 읽은 후 좀 더 검색을 하게 되었고, 한 가지를 발견했습니다.아치 위키 페이지이것은 이것이 --sub-paths"더 이상 사용되지 않습니다. --sub-file-paths를 사용하십시오."를 나타냅니다. 이것이 바로 --sub-file-paths제가 찾던 것입니다.

--하위 파일 경로=

비디오와 일치하는 자막을 검색하려면 추가 디렉토리를 지정하십시오. 여러 디렉터리는 ":"(Windows에서는 ";")로 구분할 수 있습니다. 경로는 상대 경로이거나 절대 경로일 수 있습니다. 상대 경로는 비디오 파일 디렉터리를 기준으로 해석됩니다. 파일이 URL인 경우 절대 경로와 하위 구성 하위 디렉터리만 검사됩니다.

/path/to/video/video.avi를 재생하고 --sub-file-paths=sub:subtitles를 지정한다고 가정하면 mpv는 다음 디렉터리에서 자막 파일을 검색합니다.

  • /경로/대상/비디오/

  • /경로/대상/비디오/하위/

  • /경로/대상/비디오/자막/

  • 하위 구성 하위 디렉터리(일반적으로 ~/.config/mpv/sub/)

재현을 위한 전체 단계는 다음과 같습니다.

  1. SMPlayer가 이미 설치되어 있습니다 mpv. (내 문제는 아니지만 여전히 중요합니다). mpv여기에 사용된 옵션이 어떤 버전에 추가되었는지 잘 모르겠습니다 . 저는 v0.34.1을 가지고 있으므로 이전 배포판을 사용하고 있다면 mpv v0.34.1 이상으로 업그레이드할 수 있는지 확인해 보세요.
  2. SMPlayer에서: 옵션 -> 기본 설정 -> 일반 -> 일반 탭에서 "mpv"로 "멀티미디어 엔진"을 선택하고 -> 적용 버튼을 선택하세요.
  3. SMPlayer에서: 옵션 -> 기본 설정 -> 고급 -> "Mplayer/mpv" 탭 -> 옵션 필드 아래에 추가 --sub-file-paths=Subs --sub-auto=all(또는 Subs 폴더라고 부르고 싶은 항목) -> 적용 버튼을 클릭하세요.
  4. 비디오 플레이어를 다시 시작하십시오.

관련 정보