Skip to main content

DSM 7.1.1 42962 Update 6 AME 코덱 및 트랜스코딩

DSM 7.1.1 42962 Update 6에서
Advanced Media Extensions (HECV Only) 및 Video Station 트랜스코딩 (부정확함)을 활성화하는 방법을 기재한다.

AME를 설치함으로, Synology Photo에서 HEIC, HEVC를 지원하게 된다.


설치과정

먼저, 패키지 센터에서 Advanced Media Extensions를 제거하고 설치한다.

 

image.png

또한, 패키지 센터에서 설정에 진입하여, 패키지 소스에 다음 내용을 추가한다.

이름 : synocommunity
위치 : http://packages.synocommunity.com

 

image.png

추가된 커뮤니티 탭에서 FFmpeg를 검색하여 4, 5, 6을 모두 설치한다.

 

이후 SSH에 접속하여 sudo -i를 입력해 root로 로그인한다.

다음 명령어를 통해 vi 편집기에 진입한다.

vi ame.py

키보드 A키를 눌러 편집 모드에 진입하고, 아래 내용을 붙여 넣는다.
내용의 출처는 synocodecpack patch이다.

import hashlib

import os



r = ['669066909066906690', 'B801000000', '30']

s = [(0x1F28, 0), (0x48F5, 1), (0x4921, 1), (0x4953, 1), (0x4975, 1), (0x9AC8, 2)]



prefix = '/var/packages/CodecPack/target/usr'

so = prefix + '/lib/libsynoame-license.so'



print("Patching")

with open(so, 'r+b') as fh:

    full = fh.read()

    if hashlib.md5(full).digest().hex() not in ['fcc1084f4eadcf5855e6e8494fb79e23', '923fd0d58e79b7dc0f6c377547545930']:

        print("MD5 mismatch")

        exit(1)

    for x in s:

        fh.seek(x[0] + 0x8000, 0)

        fh.write(bytes.fromhex(r[x[1]]))



lic = '/usr/syno/etc/license/data/ame/offline_license.json'

os.makedirs(os.path.dirname(lic), exist_ok=True)

with open(lic, 'w') as licf:

    licf.write('[{"appType": 14, "appName": "ame", "follow": ["device"], "server_time": 1666000000, "registered_at": 1651000000, "expireTime": 0, "status": "valid", "firstActTime": 1651000001, "extension_gid": null, "licenseCode": "0", "duration": 1576800000, "attribute": {"codec": "hevc", "type": "free"}, "licenseContent": 1}, {"appType": 14, "appName": "ame", "follow": ["device"], "server_time": 1666000000, "registered_at": 1651000000, "expireTime": 0, "status": "valid", "firstActTime": 1651000001, "extension_gid": null, "licenseCode": "0", "duration": 1576800000, "attribute": {"codec": "aac", "type": "free"}, "licenseContent": 1}]')





print("Checking whether patch is successful...")

ret = os.system(prefix + "/bin/synoame-bin-check-license")

if ret == 0:

    print("Successful, updating codecs...")

    os.system(prefix + "/bin/synoame-bin-auto-install-needed-codec")

    print("Done")

else:

    print(f"Patch is unsuccessful, retcode = {ret}")

저장은 ESC키를 누르고, :wq!를 입력하면 된다.

이후 다음 명령어를 입력하여 실행한다.

python ame.py

image.png

성공하면 이런 식으로 출력된다.

 

image.png

이후 패키지 센터의 Advanced Media Extensions를 실행하면, HEVC가 활성화되어 있을 것이다.

AAC는 AME의 특정 버전 업데이트 이후로 빠지게 되었다.

 

이후 다음 명령어를 입력하여 Video Station에서의 트랜스코딩을 활성화한다.
출처는 Wrapper_VideoStation이다.

bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")"

image.png

I (대문자 아이)를 입력하여 설치를 진행한다.

image.png

성공하면 이런 식으로 출력된다.

만약
ERROR: YOU HAVEN'T THE LICENCE ACTIVATED in Advanced Media Extension package. Please, try to transcode something in VideoStation for activate It and try again with the Installer.
위와 같은 에러가 나타난다면, 다음 방법을 통해 임시 방편으로 해결할 수 있다.

root 권한으로 다음 명령어를 입력한다.

vi /usr/syno/etc/codec/activation.conf

image.png

키보드 A키를 누르고 false 부분을 true로 변경한 뒤 저장한다.

그런 다음, 명령어를 다시 입력하고 I를 입력할 경우, 정상적으로 설치가 될 것이다.

bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")"

 

설치가 완료 됐다면, DSM을 재시작하고, Video Station에서 오프라인 트랜스코딩이 되는지 확인해 본다.

또한 Synology Photo에서 


주의사항

AME에서 AAC 코덱이 빠지게 되었기에, AAC는 여전히 트랜스코딩이 되지 않을 것이다.

또한 트랜스코딩을 인위적인 방법으로 지원하게 한 것이기 때문에, 어떠한 오류가 생길 수도 있다.

또한 Synology Photo의 HEIC 및 HEVC의 정상적인 지원을 위해서는,
반드시 Synology Photo 혹은 File Station을 이용하여 파일을 업로드하거나 이동해야 한다.

Windows의 SMB 혹은 WebDAV으로 파일 탐색기에서 파일의 경로를 이동할 시, Synology Photo에서 읽어 들이지 못한다.