Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

리눅스에서 VLC가 원격 파일(Samba)을 재생하지 못할 때 해결 방법

리눅스 배포판을 사용하면서 원격 컴퓨터에 저장된 파일을 재생하고 싶은데, VLC가 이를 열지 못하는 문제를 겪어본 적이 있으신가요? 대부분의 경우 원격 컴퓨터는 윈도우 머신일 것이고, 따라서 Samba 공유가 필요합니다. 그런데 공유 자체는 정상적으로 작동하는데도 불구하고, VLC만은 원격 파일을 재생하지 못하는 상황이 발생합니다.

이때 나타나는 오류 메시지는 다음과 같습니다: "Your input can't be opened: VLC is unable to open the MRL '프로토콜 및 파일 경로'. Check the log for details." 필자의 경우 Samba를 사용했기 때문에 프로토콜은 smb://이고, 그 뒤에 미디어 파일의 전체 경로가 붙습니다. 이 문제는 예전에도 몇 번 목격한 바 있는데, 최근에는 openSUSE 기반 배포판인 GeckoLinux에서, 그리고 다시 openSUSE 본체와 여러 KDE/Plasma 시스템에서 반복적으로 발견했습니다. 그래서 이 문제를 해결하는 방법을 소개하는 간단한 튜토리얼을 작성하기로 했습니다.

문제를 둘러싼 추가 정보

이런 유형의 문제는 원인이 복잡하게 얽혀 있고 겉으로 드러나지 않는 경우가 많습니다. 필요한 코덱이 제대로 설치되어 있는가? 소프트웨어 충돌은 없는가? 필자의 openSUSE 최적화 가이드를 읽어보셨다면, 여러 저장소(repository)를 동시에 사용하면 문제가 생길 수 있다는 점을 이미 아실 겁니다.

이 시점에서 누락된 의존성 패키지 몇 개를 설치해볼 수도 있습니다. 파일을 열기 위한 코덱이 시스템에 없다고 생각할 수 있기 때문입니다. 하지만 그보다 먼저 로그를 확인해야 합니다. 로그를 살펴보면 현재 직면한 문제에 대한 더 자세한 단서를 얻을 수 있습니다. 이전에 VLC 숨겨진 기능과 로깅에 관한 글에서 다룬 적이 있습니다.

코덱과 관련해서 확인해볼 옵션도 몇 가지 있습니다. 예를 들어 SUSE 계열에서는 코덱이 별도 패키지(vlc-codecs)로 분리되어 있습니다. 배포판과 무관하게, Samba 전용으로는 vlc-plugin-samba 패키지가 있다면 설치해보는 것도 좋습니다.

자, 이제 로그에 집중해 봅시다. 도구(Tools) > 메시지(Messages)로 이동하여 상세 수준(verbosity)을 디버그(debug)로 올린 후, Samba 공유에서 파일을 열어보세요. 출력 결과에서 오류를 찾아보면 대략 다음과 같은 내용을 볼 수 있습니다:

...
smb error: open failed for 'roger@mediabox/Data/File.mp4' (Permission denied)
...

이는 어떤 이유로든 VLC 내부에서 해당 파일에 접근할 수 없다는 의미입니다. 먼저 배포판의 파일 관리자로 실제로 접근이 가능한지 확인해 보세요. 파일 관리자에서는 정상적으로 접근된다면, 문제는 파일을 보관하는 서버에 대해 VLC가 인증하는 방식에 있다는 것을 알 수 있습니다. 이제 Samba 공유 접근을 수정해 보겠습니다. 동일한 방법론이 다른 프로토콜에도 그대로 적용됩니다.

해결 방법

필요한 작업은 VLC에게 SMB 콘텐츠를 재생하도록 지시하고, Samba 공유에 접근하는 데 필요한 자격 증명(credentials)을 제공하는 것입니다. 문제는 여러 갈래로 얽혀 있습니다. 최근 SMB 프로토콜에서 여러 보안 취약점이 발견되면서, 이 분야에 신속한 대응과 함께 보안 강화가 이루어졌습니다. 그 결과, 익명 게스트 접근을 허용했더라도 배포판들이 Samba 공유에 대해 사용자 이름과 비밀번호를 요구하게 되었습니다.

게다가 VLC는 사용 중인 배포판에 완전히 통합되어 있지 않을 수 있으며, 애플리케이션 간 자격 증명 공유도 충분하지 않을 수 있습니다. 즉, 예를 들어 Dolphin 파일 관리자가 Samba 공유에 접근하도록 허용했다 하더라도, 이 정보는 미디어 플레이어가 함께 사용할 수 있는 전역 데이터베이스에 저장되지 않습니다. 따라서 별도로 설정해 주어야 합니다.

이를 위해 VLC > 환경 설정(Preferences) > 설정 표시(Show settings)에서 '모두(All)' 선택 > 입력/코덱(Input / Codecs) > 접근 모듈(Access Modules) > SMB로 이동합니다. 여기서 SMB 사용자 이름, 비밀번호, 그리고 필요하다면 도메인을 입력할 수 있습니다. 단, 이 설정은 한 번에 하나의 서버에만 적용된다는 점에 유의하세요.

필요한 정보를 모두 입력했다면 설정을 저장하고 환경 설정 창을 닫습니다. 이제 원격 콘텐츠 재생을 시도해 보세요. 아마 성공할 것입니다. 이 시점부터 윈도우 머신에 저장된 비디오를 스트리밍할 수 있을 것입니다. 물론 이 방법이 모든 배포판이나 데스크톱 환경에 동일하게 적용되는 것은 아니므로, 시스템을 구성할 때 이 점을 고려하시기 바랍니다.

결론

이상으로 또 하나의 빠르고 간결한 VLC 튜토리얼을 마칩니다. 이 작은 플레이어에는 리눅스 세계의 복잡함, 아름다움, 유연함까지 모두 담겨 있습니다. 문제가 발생하리라는 것을 알지만, 어딘가에서 어떻게든 해결할 수도 있습니다. 일종의 흑마법이죠.

리눅스에서 VLC로 원격 미디어 파일을 재생할 수 없다면, 몇 가지 사항을 순서대로 확인해야 합니다. 첫째, 항상 미디어 플레이어의 로그를 먼저 확인하여 문제 해결 범위를 좁히세요. 로그 정보를 바탕으로 권한(permission) 문제에 부딪힌 것은 아닌지 살펴봅니다. 이는 특히 Samba와 관련해 다양한 배포판과 데스크톱 환경에서 자주 발생합니다. 이것으로 해결되지 않는다면, 누락된 코덱이 있는지, 패키지 충돌 같은 문제는 없는지 확인하세요. 하지만 이 경우 대개는 Samba 자격 증명 문제일 가능성이 높으며, 플레이어의 환경 설정을 통해 손쉽게 수정할 수 있습니다. 다만 몇 가지 제약이 따릅니다. 완벽하지는 않지만, 할 수 있는 만큼 활용한다면 이 가이드가 도움이 되기를 바랍니다.

그럼, 즐거운 미디어 생활 되세요!