• 群晖NAS:DSM7.1激活Advanced Media Extensions【自留记录】


    群晖NAS:DSM7.1激活Advanced Media Extensions【自留记录】

    本文仅半白群晖可用,不需要安装其他套件或者ssh修改什么
    本文仅半白群晖可用
    本文仅半白群晖可用

    使用DS Video 网页播放视频时候,提示:【不支持当前所选音轨的文件格式,
    因此无法播放视频。请尝试播放其它音轨,确认其是否支持】

    如图:

    在这里插入图片描述
    网上很多大神的方案,基本上卒。很多走不下去,直接报错,有的不生效。

    解决方案是:

    1、安装套件:Advanced Media Extensions【官方必须的】

    在这里插入图片描述

    2、上传ame.py文件到nas本地
    (如果不成功,看下面的py代码,注释掉了 md5 不匹配部分)

    点击到云盘下载

    保存以下代码保存为ame.py文件

    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()
        print(hashlib.md5(full).digest().hex())
        # 这里的 md5 值很多人对不上,我是直接获取替换字符串,没有直接注释来的方便
        # if hashlib.md5(full).digest().hex() != 'fcc1084f4eadcf5855e6e8494fb79e23':
        #     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}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    3、在控制面板的任务计划中,新建一个计划任务使用用户自定义脚本,用户账户使用root

    在这里插入图片描述

    任务设置中的用户自定义脚本输入:python后面跟刚才我们保存的文件位置。

    在这里插入图片描述

    python /volume1/async.data.center/aem.py
    
    • 1

    注意:替换自己的文件地址,建议在 ds file 里面点开文件的属性,查看

    在这里插入图片描述
    运行:
    在这里插入图片描述

    或者

    链接 SSH方式:
    获取root权限。输入密码(此时密码不可见,输入完回车进入)

    sudo -i
    
    • 1

    执行命令:

    python /volume1/async.data.center/aem.py
    
    • 1

    4、看下解锁状态

    在这里插入图片描述

    备注:
    1、如果未解锁,且多次执行也不行,试试替换py代码里面自己本机的md5 值。ssh执行打印出来即可获取到
    2、没有显示 aac 格式解码包,不影响使用(亲测有效)

    5、重启 DS Video 播放之前放不出来的视频即可

    在这里插入图片描述

    完结,看效果

    在这里插入图片描述

    其他解决方案:
    
    1、下载套件:可以使用特定版本 ffmpeg + Jellyfin 解决。(不能升级,强迫症难受)
    2、https://zhuanlan.zhihu.com/p/619795133(我没成功,有兴趣可以试试)
    
    • 1
    • 2
    • 3
    • 4
    
    参考大神们文档:
    https://www.bilibili.com/read/cv22556816/
    https://tieba.baidu.com/p/8474781494
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    SpringSecurity---PasswordEncoder
    双通道音频功率放大电路,外接元件少, 通道分离性好,3V 的低压下可正常使用——D2025
    华为路由器多WAN口设置负载均衡
    如何利用 Selenium 对已打开的浏览器进行爬虫
    目标检测(4)—— 经典算法和常用指标
    入门人工智能 —— 学习 python 使用 IDE :vscode 完成编程 (2)
    非常小的一个东西,Spring依赖注入Bean类型的8种情况
    IDEA设置和相关快捷键记录汇总
    培训机构不会告诉的真相:为什么不招聘培训出来的前端
    华为OD机试 - ABR 车路协同场景 - (Java 2023 B卷 100分)
  • 原文地址:https://blog.csdn.net/weixin_44461275/article/details/132608340