본문 바로가기
Tips

Skybox vs Pigasus 그리고 Pigasus smb 연결 오류 해결

by lovey25 2021. 5. 22.
반응형

2021-09-19 update log: libclv 라이브러리 파일 추가


Skybox vs. Pigasus

Oculus Quest 2에서 영화를 볼 때 꼭 필요한 앱인 미디어 플레이어에 대해서 얘기해 보려 합니다. VR 미디어 플레이어가 다양하기는 한데 정책적인 문제인지 Quest 2에서 사용할 수 있는 옵션이 많지 않습니다. 그래서 동영상 플레이어의 양대산맥이라고 할 수 있는 Skybox와 Pigasus 두 가지를 모두 사용해보고 느낀 점 그리고 Pigasus에 정착하게 되면서 격은 몇 가지 이슈사항들 공유합니다.

일반적인 상황이라면 Quest 2에서는 Skybox와 Pigasus 말고는 선택의 여지가 없습니다. 그렇다 보니 흔하디 흔한 미디어 플레이어를 돈 주고 사서 쓸 수밖에 없는데요. Skybox는 12,000원 Pigasus는 7,200원입니다. Skybox가 좀 더 비싸긴 하지만 그만큼 더 완성도가 있다고 해야 하나 더 이쁘다고 해야 하나 암튼 비싼 만큼 값어치도 해서 그런지 인기도 더 많습니다.

저도 처음엔 Skybox를 구매해서 사용했었는데요. Skybox는 치명적인 약점이 하나 있습니다. 바로 사진은 취급하지 않는다는 겁니다. 오로지 동영상 감상용입니다. 저는 자주는 아니지만 가끔 사진도 보고 싶을 때가 있어서 뒤도 돌아보지 않고 Skybox는 바로 환불 요청을 했고 다행히 Pigasus는 사진도 볼 수 있다고 해서 갈아탔습니다.

Skybox를 안 써봤으면 모르겠지만 눈높이가 약간 높아진 상태라서 그런지 Pigasus의 첫인상은 후지다였습니다. 

뭐 제 입장에서는 선택의 여지가 없으니... 그리고 다행히 가격이 좀 더 저렴하니까 참고 쓰자 결정했습니다.

Pigasus, SMB 영상 재생 문제

일단 기능상에는 빠지는 부분은 없습니다. VR영상 다양한 포맷들 다 지원하고 로컬 컨탠츠뿐만 아니라 SMB, DLNA 등 네트워크 컨탠츠도 즐길 수 있습니다. 게다가 이건 사진 파일도 같이 지원하니까 제 기준에서는 최고라고 할 수 있죠. 그런데 역시 싼 거라 그런 건지 시작부터 문제가 발생했습니다.

VR기기 로컬 미디어만 사용하기는 영 불편하죠. 영화 보고 싶을 때마다 Quest 2를 PC에 연결해서 파일 옮기고 그럴 수는 없기 때문에 PC나 NAS에 연결해서 감상하는 게 보통의 방법일 겁니다. 일단 사진 때문에 Pigasus로 넘어왔는데 다행히 SMB 서버의 사진 파일은 아무 문제없이 잘 볼 수 있었습니다. 문제는 SMB 서버에 있는 동영상이었습니다.

네트워크상에 SMB 서버 자동으로 검색이 되어서 연결하고 파일을 찾는데 까지는 일사천리였는데 아무리 눌러봐도 동영상은 재생이 되지 않았습니다. 이게 어이가 없는 것이 Skybox에서는 아무런 문제가 없던 파일들이라는 거죠. 사실 Pigasus안에서는 만져볼 옵션도 많지 않기 때문에 어찌해볼 도리가 없었습니다.

그래서 폭풍 검색 들어갔고 딱 한 개의 유사 증상을 호소하는 글을 찾을 수 있었습니다.

 

Pigasus doesnt play videos on SMB share with Quest 2

I set up a shared folder on my PC. In Pigasus I see the PC in the SMB folder, I can log in, I see the video files. But when I try to play a video,...

www.reddit.com

저랑 완전히 동일한 증상입니다. 다행히 댓글에 해결이 되었다는 글도 보이네요. 해볼 수 있는 것들 하나씩 따라 해 봤습니다.

제안된 설루션들 각개격파

SMB 버전 확인

If using SMB1, try changing to SMB2 and vice versa and see if that makes a difference. Though I recommend using SMB2 if possible.

첫 번째로 SMB 버전을 바꿔보라고 하네요. 저는 라즈베리파이에 SMB 깔아서 쓰고 있어서 뭐 바꿔보고 말고 할 것도 없을 것 같습니다. SMB2를 권장한다고 하는데 제가 SMB1은 아닌 것 같아서 요건 그냥 패스했습니다.

NetBios over TCP 비활성화

What port is your SMB server currently set up to use? SMB uses either port 139 (which runs on top of the NetBios transport layer) or 445 (which uses TCP). I honestly can't remember what the default port libVLC uses for SMB authentication. But if it's a port issue this might be the cause. Try disabling "NetBios over TCP". I'll have an option to allow you to specify SMB port in a future update of Pigasus.

Netbios 관련 옵션을 꺼보라는 설루션이네요. SMB 설정 파일인 /etc/samba/smb.cong 파일의 "[Global]"섹션에서 다음 옵션 추가하였습니다.

disable netbos = yes

그런데 요걸로는 해결이 안 되네요.

IP주소로 직접 접속하기

Try using the ip address of your server instead of the host name. You can do this via optional IP address panel in the login screen in Pigasus.

host name을 이용하지 말고 서버의 IP수소를 입력해서 접속하라는 조언입니다. 여기까지 오면서 인터넷에서 대충 주워들은 내용을 종합하자면, Pigasus에서 smb의 동영상에 접근할 때와 영상을 플레이할 때의 인증은 전혀 다른 경로에서 이루어진다고 합니다. 그래서 Pigasus에서 정상적으로 서버에 접근하여 파일을 확인했다고 하더라도 그 동영상 파일에 대한 정보를 Pigasus로 다시 쏴주는 건 다른 경로로 이루어지는데 여기서 어딘가로 누수가 생겨서 그럴 수 있기 때문에 접속 주소를 명시해 보라는 거 같았습니다.

Pigasus에서 SMB 메뉴로 접근하면 "Add SMB Share"라는 메뉴가 있는데 여기서 접속 주소와 인증정보를 입력할 수 있습니다. 

그런데 전 이 방법까지도 안되더군요.

 

전 이쯤에서 Pigasus와 Skybox를 같이 사용해야 하는 건가라는 고민을 시작했습니다만 여기서 포기하기는 뭔가 억울합니다. 그래서 제작사 홈페이지에서 질문을 남겼습니다.

짧은 영어실력이지만 대략 증상과 제 답답함을 담아 하소연하는 심정으로 보냈습니다. 사실 큰 기대는 안 했는데 질문을 보낸 지 몇 시간 만에 이메일로 답장이 왔습니다.

Pigasus' internal SMB logic takes care of SMB authentication for file browsing and image loading, while the video decoder library that Pigasus uses (i.e. libvlc) then handles the SMB authentication of the video and audio playback portion after the app sends the SMB path to the video decoder. That's why file browsing and image loading works here. It's possible here that there might be something in the authentication string that is tripping up on the video decoder libraries end.

Is there anything unusual about your username? Like, is your username an email address or has the special "@" character in it. Do you use a domain and do you specify your username with the domain in it (e.g. mydomain\username)? If so, that might be what is causing the playback issues. I found out a little while back that the libvlc video decoder library doesn't like email addresses for usernames. It can't parse it properly (though, I've only come across this issue with some Win10 users). That's something I need to investigate further and try to fix on the video decoder end at some stage. Normally, if using a domain, you can drop the domain part from the username. If using an email address, logging in using the local username should work too.

Otherwise, it might be something in your SMB setup that the libvlc video decoder library is not agreeing with/account for. Give the following a try to see if it helps:

- Try using the IP address instead of the host name to connect to your share if you haven't already. You can do this by putting in the ip address in the "ip address or host name" field in the login screen.
- Try explicitly connecting via port 445 to your SMB in case it's a default port issue. This is a TCP port that SMB connections would typically use. Pigasus allows you to manually enter a port number via the login screen.
- Additionally, you can try port 139 too. SMB usually uses either port 139 or 445.
- If using SMB1 consider changing to SMB2 if possible or vice versa.

One good way to check whether it's an issue in the authentication string given to the video decoder or a setup related issue that the video decoder is not handling is to temporarily make the SMB share an open share. If it plays fine on an open share then it's definitely something to do with the authentication string (be it username or password). Otherwise, if it still fails to play on an open share it's possibly something in the SMB share setup that the libvlc video decoder library doesn't like. If that is the case, usually one of the above suggested troubleshooting steps usually should solve such issues.

그리고 내용은 제가 그전에 시도한 방법들과 일맥상통하는 것 같습니다. 여기서 몇 가지 제가 해보지 않은 방법들이 보여서 추가로 시도해 봤습니다.

아이디에 특수문자 사용 지양하기

비디오와 오디오 디코더가 @와 같은 특수문자를 싫어한다고 하네요. 혹시 SMB 서버에 접속하는 아이디에 특수문자가 있다면 바꿔보라고 합니다. 근데 이 정도의 결함이라면 돈 주고 팔면 안 되는 거 아닌가요?! 뭐 암튼 전 특수문자가 없어서 그냥 패스합니다.

포트번호를 명시해서 접속하기

앞에서 IP주소를 명시하라고 한 것과 유사하게 SMB에서 사용하는 포트번호까지 지정해서 접속하라고 하네요. 그런데 이메일에서 알려준 포트번호 139, 445 모두 소용없었습니다.

임시로 SMB를 공개서버로 만들어서 인증 문제 확인하기

SMB와 비디오 디코더 간의 인증 문제인지 확인하는 가장 확실한 방법은 서버의 보안을 풀고서도 동일한 증상이 재현되는지 확인해보라고 하네요. 이쯤 되면 이제 Pigasus의 개발에 일조하는 느낌입니다. ^^; 마지막으로 서버의 보안도 풀고 시도해 봤는데 결과는 마찬가지였습니다. 서버의 파일은 볼 수 있지만 재생은 할 수 없는...

 

다시 이메일로 답장을 보냈습니다. "네가 하라는 거 다 했는데 안됨"이라고요. 그리고 서버와 통신을 하는 과정에서 문제라면 서버의 로그도 보여주면 도움이 될 수 있겠다 싶어서 SMB 로그를 찾아서 보내줬습니다.

제가 동영상을 재생할 때마다 위와 같은 에러가 발생하고 있었습니다. 그런데 패킷을 169.254.255.255로 보내려고 하고 있습니다. 이 IP는 DHCP에서 할당하지 않는 대역으로 알고 있는데 뭔가 심각한 문제가 있는 것 같은데 다행히 이번에도 4시간 만에 답장이 바로 왔습니다.

한마디로 Pigasus는 동영상 플레이에 오픈 라이브러리인 libvlc라는 걸 사용하는데 최신 빌드에 문제가 있을 수도 있으니 구버전을 사용해 보라는 시라는 겁니다.

이메일에서 안내해준 대로 Pigasus Reddit에서 Libvlc를 검색해서 커스텀 libvlc를 다운로드하였습니다. 

 

Custom libVLC build for Pigasus

~~dropbox.com/s/t8wo3b6ew4nt2x4/libvlc.so?dl=1~~ ~~Compiled for v3.3.1 using the latest code base.~~ EDIT: Please continue to use the following...

www.reddit.com

그리고 드디어 이 방법으로 문제를 해결할 수 있었습니다.

(libvlc 파일 추가했습니다. 티스토리 용량문제로 분할 업로드 했어요.)

libvlc.vol1.egg
10.00MB
libvlc.vol2.egg
6.63MB

Custom LibVLC 적용 방법

다운로드한 libvlc를 적용하는 방법은 간단했습니다. Quest 2를 컴퓨터에 연결하고 외장하드로 인식된 드라이버로 들어가서 Pigasus 폴더를 찾습니다.

경로는 "Quest 2 > 내부 저장소 > Pigasus"입니다. 그리고 Reddit에서 찾은 커스텀 libvlc를 이 폴더에 집어넣어 줍니다.

이렇게 하면 이제 커스텀 라이브러리를 사용할 수 있고 smb서버에 있는 영상도 아무런 문제 없이 재생할 수 있었습니다.

Pigasus 브라우저에서 동영상 섬네일까지 아주 잘 나오는 걸 볼 수 있습니다. ^^ 이제 Pigasus UI만 좀 이쁘게 개선되면 바랄 게 없겠습니다.

 

끝!

반응형

댓글