간만에 삽질기입니다.

요즘 블루레이 타이틀 보기 쉽지 않지요. 대부분은 이미 넷플릭스나 유튜브를 통해 영상을 감상하고 계실테니까요. 하지만 아직도 블루레이로만 나오는 타이틀이 존재하고 블루레이만의 특전 영상같은것이 존재하다보니 어쩔 수 없이 사는 경우도 있습니다.

 

그런데 블루레이 감상이 생각보다 쉽지가 않습니다. 만약 제대로 된 플레이어(그나마 제일 싼게 플레이스테이션3)가 있다면 쉽게 볼 수 있는데 만약 TV가 HDCP가 지원이 안 되면 그나마도 말짱 꽝입니다.

 

그게 DRM이 생각보다 강력하게 걸려있기 때문인데요. 문제는 이 DRM이 제대로 구매한 사람도 엿을 먹이고 있다는 것입니다. 덕분에 정품 사놓고 불법복제로 보는 경우도 생기고 있다는 것입니다. 

 

바로 오늘 제가 그 엿을 경험했습니다.

VLC는 원래 블루레이가 지원 되는 플레이어다

아주 제대로 엿 먹었습니다. 기껏 산 타이틀을 볼 수가 없다니???

블루레이 드라이브만으로는 이렇게 엿을 먹는 경우가 많다고 합니다. 

 

CyberLink사의 PowerDVD를 사서 설치하면 된다고 하는데 이건 어디까지나 윈도우용이라는 문제가 또 있습니다.

그리고 가격이 살인적입니다. 블루레이 드라이브를 사면 번들로 준다고 하지만 박스에 담긴것을 구매하는 경우가 아닌 그냥 중고나 벌크 제품을 샀다면 이런것도 없습니다. 저기 129000원이면 차라리 플레이스테이션3를 중고로 사는 것이 낫습니다.

 

그래서 보통은 블루레이를 리핑해서 본다고 하더군요.

정품사고 그걸 다시 리핑해서 보는 겁니다. 이 때 사용하는 프로그램이 MakeMKV란 프로그램인데 이걸로 한번 파일로 뜨면 MKV파일로 나오게 되고 편하게 볼 수 있게 됩니다.

 

https://www.makemkv.com/

 

MakeMKV - Make MKV from Blu-ray and DVD

Welcome to MakeMKV beta MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can be played everywhere. MakeMKV is a format converter, otherwise called "transcoder". It converts the video clips from

www.makemkv.com

그런데 이것도 찝찝합니다. 그대로 복제하는 것이기는 한데 HDD에 복사를 해야하기 때문에 어느정도 용량이 있어야 합니다. 저는 그냥 디스크 상태로 재생해서 보고 싶은데 HDD복사하는 시간이 또 필요하다면 너무 귀찮습니다.

 

그런데 이 MakeMKV가 저 같은 사람들을 위해 외부 라이브러리를 지원 하더군요.

 

방법은 다음과 같습니다.

 

우선 MakeMKV를 설치합니다. 리눅스용도 존재하고 우분투는 PPA까지 있습니다.

https://launchpad.net/~heyarje/+archive/ubuntu/makemkv-beta

 

makemkv-beta : hjmooses

For Debian Jessie/Stretch/Buster/Bullseye go https://ramses.hjramses.com/deb/install.html For problems with version 1.10.9 and 1.10.10 use downgrade version ! https://launchpad.net/~heyarje/+archive/ubuntu/makemkv-beta-downgrade MakeMKV is your one-click s

launchpad.net

sudo add-apt-repository ppa:heyarje/makemkv-beta
sudo apt-get update
sudo apt-get install makemkv-bin makemkv-oss

 

위 명령어로 makemkv를 설치합니다. 그리고 메뉴에 가면 MakeMKV가 있으니 우선 실행합니다.

2020년 7월 기준 아직 베타기간이기 때문에 베타키만 있으면 무료로 이용이 가능합니다.

MakeMKV의 모습 여기서 바로 리핑도 가능하지만 내가 하고 싶은건 그냥 재생이다!

Help-Register를 눌러서 키를 입력하면 됩니다. 키는

https://makemkv.com/forum/viewtopic.php?f=5&t=1053

 

MakeMKV is free while in beta - www.makemkv.com

Announcements and Information mike admin Posts: 3794 Joined: Wed Nov 26, 2008 2:26 am Contact: Post by mike admin » Thu Mar 04, 2010 4:46 am As stated on a main page all features of MakeMKV are free while program is in beta. You may purchase the full acti

makemkv.com

여기서 한달에 한번씩 바뀌고 있으니 정상작동이 안 된다 생각이 들면 이 페이지로 와서 다시 키를 입력하시면 됩니다.

 

우선 등록을 마치고 나면 이제 라이브러리를 인식 시킬 시간입니다.

libaacs 와 libbdplus라는 라이브러리가 본래 Blu-ray의 DRM을 지원하는 라이브러리입니다. 하지만 libaacs나 libbdplus는 역분석으로 만들어지는 방식이기에 아직 완벽히 DRM을 지원하지 못합니다. 그래서 MakeMKV의 라이브러리를 이용하는 것입니다.

 

간단하게 MakeMKV는 libmmbd라는 라이브러리를 제공하는데 이걸 libaacs와 libbdplus로 인식 시키면 됩니다.

만약 libaacs가 설치되어 있다면 지워줍니다.

 

sudo apt remove libaacs

 

그리고 우분투 64비트 기준

cd /usr/lib/x86_64-linux-gnu

sudo ln -s libmmbd.so.0 libaacs.so.0

sudo ln -s libmmbd.so.0 libbdplus.so.0

 

위 3줄로 MakeMKV의 라이브러리를 VLC에서 인식 시킬 수 있게 되었습니다.

 

한번 VLC에서 블루레이를 열어봅시다.

미디어- 디스크 열기

 

바이올렛 에버가든이란 애니메이션인데 한국어 더빙을 듣고 싶으면 블루레이말곤 답이 없다.

아무 문제없이 재생 되는 것을 확인 할 수 있습니다. HDCP도 깨진 상태이니 모니터 문제 없이 감상이 가능합니다. 만약 aacs나 bd+ 오류가 난다면 MakeMKV가 업데이트되기를 기다리시는 것을 추천합니다. 참고로 일반 블루레이 플레이어도 펌웨어 업데이트를 게을리 하면 AACS나 BD+오류를 만날 수 있습니다.

 

참고로 저는 리핑하고 삽질하느라 휴가를 다 보냈는데 생각보다 쉬운 방법이 있더군요. 그리고 12만원 굳었군요.(PowerDVD 값)

,

Python은 정말 프로그램 빠르게 만드는데는 최고라고 생각합니다.

물론 C로 만들면 실행속도도 빨라지고 최적화도 잘 되겠지만 신경쓸것도 많은데다가 개발속도가 그만큼 늦어집니다.

 

그래서 프로토타입은 Python으로 짜고 속도가 중요한 부분만 C로 짜는 경우도 많지요. (예 : Numpy)

 

그렇지만 Python은 Python인터프리터가 기본적으로 있어야 한다는 문제가 있습니다. 모든 PC에 Python이 깔려있다는 보장이 없기에 인터프리터를 따로 설치하거나 Virtualenv형태로 내장하거나 하는 방식으로 이용했습니다.

 

그런데 이러면 라이브러리들이 문제를 일으킵니다. 리눅스, macOS, Windows 각각 따로 라이브러리를 제공하는 경우(즉, C로 짜여져서 라이브러리 설치때 컴파일이 필요한 경우) 이 라이브러리들도 함께 배포해야합니다.

 

이러나 저러나 참 귀찮습니다.

 

그냥 한번에 딱 패키지화 해서 바로 쓸 수 있으면 좋을텐데요... 할때 나타난 녀석이 바로 Pyinstaller입니다.

https://pyinstaller.readthedocs.io/en/stable/

 

PyInstaller Manual — PyInstaller 3.6 documentation

© Copyright This document has been placed in the public domain. Revision 6d4cce1f.

pyinstaller.readthedocs.io

예전에는 Py2exe라는 녀석이 있었지만 이건 오로지 Windows전용으로만 만들 수 있는 물건이었고 당연히 저는 좋아하지 않았습니다. Pyinstaller는 일단 Python인터프리터가 깔리는 모든 OS를 지원하기 때문에 훨씬 더 각광을 받았고 지금은 많은 곳에서 쓰이고 있습니다.

 

설치도 pip의 존재로 인해 쉽습니다.

 

pip install pyinstaller

 

보통 Python환경을 만들어서 쓰시는 분들은 pip정도는 쓰고 있을테니 명령어 한번에 바로 사용이 가능하다는 점에서 점수를 주고 싶습니다.

 

사용방법도 쉽습니다. 

 

그냥 패키지화 할 py파일이 있는 곳에서

 

pyinstaller 어쩌고.py

 

이러면 dist폴더가 만들어지고 이 안에 필요한 라이브러리와 실행 파일이 만들어집니다. 다만 해당 명령이 실행된 OS에 따라 windows용이 만들어지고 Linux용이 만들어지고 그렇습니다. 즉, 리눅스용 패키지를 만들려면 리눅스에서 명령을 내려야 하고 Windows용을 만들려면 Windows에서 명령을 내려야 한다는 것이지요. 어쨌건 쉽습니다.

 

그런데...

 

오늘 Pyinstaller로 패키지화 하고나서 프로그램 실행이 안 되는 현상을 발견했습니다.

 

이상하더군요. 그냥 소스형태에서는 실행이 되는데 패키지화만 하면 실행이 안 되는 겁니다. 터미널에 떠있던 문구는 다음과 같았습니다.

 

ModuleNotFoundError: No module named 'pkg_resources.py2_warn'

 

py2_warn이란 패키지가 없다는 의미였습니다. 저는 이미 Python3를 쓰고 있었고 오로지 Python3만으로 작업 했는데 python2경고에 관한 내용이 있다는 것이 이상했습니다.

 

이 문제를 찾아보니 Pyinstaller 실행시 만들어지는 spec파일을 수정해서 다시 패키지화하면 된다고 하는데 다시 하려니 너무 귀찮았습니다.

 

더 찾아보니 Python3.7이 나온뒤에 함께 배포되는 최신 setup_tools와 Pyinstaller가 맞지 않아 생긴 문제라고 합니다.

 

https://stackoverflow.com/questions/61574984/no-module-named-pkg-resources-py2-warn-pyinstaller

 

no module named pkg_resources.py2_warn pyinstaller

I'm trying to make an executable file (.exe file for windows) for the code here. The main file to run is src/GUI.py. I found that pyinstaller is a better option to create the exe file. I tried bot...

stackoverflow.com

2020년 현재 setup_tools는 46버전입니다. 현재 이 버전은 github관련 코드를 가지고 있고 py2_warn 내용을 가지고 있습니다. 그냥 Python2는 지원기간이 끝났으니 사용을 권장하지 않는다는 내용인데 이게 도리어 문제를 일으키고 있는 것입니다.

 

그럼 방법은 아주 간단합니다. py2_warn이 없는 45버전 이하로 setup_tools를 깔고 Pyinstaller를 쓰는 겁니다. 어차피 다시 패키징할일은 거의 없을 것 같기에 잠시 버전을 내렸다가 다시 올리면 될 일이었습니다. 어차피 시간이 지나면 Pyinstaller에서도 해결해주겠지요.

 

터미널을 열고 (윈도우라면 cmd혹은 Powershell)

pip install --upgrade 'setuptools<45.0.0'

 

만약 리눅스라면 앞에 sudo를 붙여주세요.

 

이러면 44버전대의 마지막 버전을 설치해줄겁니다. 그리고 Pyinstaller를 실행하면 문제없이 패키지화된 실행파일이 실행 될 것입니다.

 

이런 문제가 해결될때까지 3.6버전에 눌러앉아 있는 것도 방법입니다.

,

구글드라이브 많이 사용하고 계실겁니다. 본인이 사용하지 않고 있더라도 안드로이드사용자라면 구글드라이브를 사용하고 있다고 봐야 하거든요.

 

그리고 기본 15GB는 좀 적지만 솔직히 용량대비 가격은 굉장히 착한편입니다. 그리고 제일 중요한건 구글이기에 데이터를 날려먹지는 않을 것이라는 믿음이 있다고 해야겠지요. (대신 구글이기에 내 데이터를 마음대로 보지는 않을까 하는 불안감이 있기는 합니다.)

 

어찌되었건 구글드라이브를 우분투에서 내 디스크처럼 사용하는 방법이 있습니다.

 

문제는 이것도 터미널 작업이 동반된다는 겁니다. 어쩔 수 없을 듯...

 

바로

https://github.com/astrada/google-drive-ocamlfuse

astrada/google-drive-ocamlfuse

FUSE filesystem over Google Drive. Contribute to astrada/google-drive-ocamlfuse development by creating an account on GitHub.

github.com

 

요 프로그램을 이용합니다. 구글드라이브를 fuse로 마운트하는 형태입니다. 일단 마운트가 되니 내 드라이브처럼 사용이 가능하고 웹에서 하나씩 다운로드를 받는 귀찮음도 없습니다.

 

사용방법도 간단합니다.

 

설치는 다음과 같습니다.

우선 터미널을 열고 

 

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update

sudo apt install google-drive-ocamlfuse

 

참 쉽죠?

 

이제 마운트 하는 법입니다. 우선 폴더 하나를 임의로 만듭니다.

저는 ~/GoogleDrive 라고 했습니다.

 

그리고 터미널에서

google-drive-ocamlfuse ~/GoogleDrive

 

이러면 브라우저 하나가 뜨면서 구글 로그인을 요구합니다. 그러면 로그인하고 권한을 허용해주세요. 이제 조금 기다리시면...

 

 

 

Access가 되었다고 뜹니다. 그럼 아까 만들었던 폴더를 파일브라우저(노틸러스, 투나, PCManFM 등등)을 써서 들어가봅시다. 바로 지금까지 구글드라이브에 올린 파일들이 떠있습니다. 이제 파일을 복사하거나 열거나 하면 됩니다. 쉽죠?

,