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

news2024/11/18 7:28:29

群晖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}")

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

在这里插入图片描述

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

在这里插入图片描述

phthon /volume1/async.data.center/aem.py

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

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

或者

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

sudo -i

执行命令:

phthon /volume1/async.data.center/aem.py

4、看下解锁状态

在这里插入图片描述

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

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

在这里插入图片描述

完结,看效果

在这里插入图片描述

其他解决方案:

1、下载套件:可以使用特定版本 ffmpeg + Jellyfin 解决。(不能升级,强迫症难受)
2、https://zhuanlan.zhihu.com/p/619795133(我没成功,有兴趣可以试试)

参考大神们文档:
https://www.bilibili.com/read/cv22556816/
https://tieba.baidu.com/p/8474781494

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/956460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编程题四大算法思想(二)——回溯法:N皇后问题、子集和问题、地图填色问题、迷宫问题

文章目录 回溯法迷宫游戏 N皇后问题基本概念解空间4后问题的解空间 可行解和最优解回溯法回溯法术语回溯法的关键问题回溯法的基本思想4后问题的约束条件n后问题生成问题状态的基本方法 子集和问题一个朴素的求解方法回溯回溯法的剪枝技术 地图填色问题 回溯法 迷宫游戏 深度优…

Android RecyclerView 之 吸顶效果

前言 上一篇文章已经实现了列表跟宫格布局的动态切换,这篇文章主要来说通过 CoordinatorLayout 和 AppbarLayout 的配合,以及 NestedScrollView 来实现吸顶效果 。效果如下。 一、CoordinatorLayout 是什么? CoordinatorLayout 是 Androi…

pnpm快速创建 Vue.js 项目(npm类似)

目录 pnpm 创建一个 Vue.js 项目 前提准备: 运行创建命令: 选择项目配置:(按需选择) cd 项目名:(进入项目终端) 安装项目依赖: 运行项目: pnpm 创建一…

文献速读|5分的生信+免疫组化:单细胞测序转录组联合bulk转录组肿瘤预后模型

今天给大家分享一篇IF5.8的纯生信单细胞联合Bulk转录组构建预后模型的文章,于2023年3月19日发表在Cancer Immunology Immunotherapy上:Integrative analyses of bulk and single-cell RNA-seq identified cancer-associated fibroblasts-related signatu…

Docker安装详细步骤

Docker安装详细步骤 1、安装环境准备 主机:192.168.40.5 zch01 设置主机名 # hostnamectl set-hostname zch01 && bash 配置hosts文件 [root ~]# vi /etc/hosts 添加如下内容: 192.168.40.5 zch01 关闭防火墙 [rootzch01 ~]# systemct…

W5500-EVB-PICO通过SNTP获取网络时间(十一)

前言 上一章我们用W5500_EVB_PICO 开发板做Ping数据测试IP检测连通性,那么本章我们进行W5500_EVB_PICO SNTP的测试。 什么是NTP? NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计…

如何高效进行测试用例评审

1.用例评审的目的 为了减少测试人员执行阶段做无效工作,执行无效case,提交无效缺陷(可以友情提醒研发同学,讲到自己负责的相关模块时,注意下是否存在异议点)为了避免三方(产品、研发、测试&…

多项式求逆

已知 F F F,求 G G G 考虑倍增 F ( x ) ∗ H ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * H(x) \equiv 1 \pmod{x^{n/2}} F(x)∗H(x)≡1(modxn/2) F ( x ) ∗ G ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * G(x) \equiv 1 \pmod{x^{n/2}} F(x)∗G(x)≡1(modxn/2) 假设 H H…

噪声的产生机理和来源

引言:噪声广泛存在于自然界,上节揭示了噪声的本质,噪声按照噪声携带能量的强弱分为功率型噪声和信号型噪声,功率型噪声持续时间短,能量强,对设备的寿命具有很大的影响,而信号型噪声顾名思义来源…

不想出门?那就把“自然”搬进家里吧!

为自然主题房间寻找灵感: 简单创意 以自然为主题的房间将自然灵感的色调(棕色、灰色、米色、白色、蓝色和绿色)与皮革、木材、黄麻和藤条等纹理相结合。就像真实的户外一样,它也懂得平衡的力量。户外: 每一片树丛&…

云备份——第三方库简单介绍并使用(上)

目录 一,Jsoncpp库序列化和反序列化 二,bundle文件压缩库 2.1 文件压缩 2.2 文件解压 一,Jsoncpp库序列化和反序列化 首先我们需要先了解一下json是什么,json是一种数据交换格式,采用完全独立于编程语言的文本格式来…

开学有哪些电容笔值得买?平价电容笔排行榜

苹果的原装Pencil,无疑是一款性能出色的电容笔,但它的价格也很高,如果不小心弄丢了或者弄坏了,那就太让人心痛。再说了,一支价值不菲的电容笔,要是不是用于专业绘画,实在是大材小用。不过&#…

01. 二进制原理

道家阴阳启发了莱布尼茨提出二进制! 1. 为什么是二进制? 1.1 二进制与硬盘(磁盘) 硬盘也叫磁盘,它内部是排列整齐的一个个小磁体。 磁盘上面有“电刷”,磁盘可以转动,“电刷”也可以上下移动…

Python 带参数的装饰器

首先我们定义一个可以打印日志的装饰器: def log(func):def wrapper(*args, **kwargs):print(call %s(): % func.__name__)return func(*args, **kw)return wrapper它接受一个函数作为输入,再返回一个函数。我们使用一下这个装饰器 log def now():prin…

【esp32】解决以太网+mqtt堆栈溢出问题 报错 no mem for receive buffer

本文主要记录了 esp32 + 以太网 +mqtt 功能时遇到的堆栈溢出的情况,千里之堤毁于蚁穴,开发过程的不细心导致多付出了一天多的时间,记录于此,共勉 📋 个人简介 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎📝 个人主页:欢迎访问我的 Ethernet_Comm 博…

一文看懂DETR(二)

训练流程 1.输入图像经过CNN的backbone获得32倍下采样的深度特征; 2.将图片给拉直形成token,并添加位置编码送入encoder中; 3.将encoder的输出以及Object Query作为decoder的输入得到解码特征; 4.将解码后的特征传入FFN得到预测特…

Rethinking the Role of Demonstrations: What Makes In-Context LearningWork?

背景 这篇论文主要验证了prompt demos对模型的作用是什么,主要几个方面的影响: 1.prompt demo的input和label的映射关系对结果影响非常小,模型没有从mapping关系中学到太多信息。这是比较反直觉的 2.模型从input输入的数据空间和label输出的…

VR全景与家居行业碰撞在一起,会迸发怎样的火花?

元宇宙的热度一直在持续,由于前几年疫情反复,很多人只能居家办公,这也让很多线下实体行业非常难做,元宇宙的兴起可以带动线下行业把生意做起来,那么家居行业、元宇宙、VR全景这些元素碰撞在一起,会迸发出怎…

从Instagram到TikTok:利用社交媒体平台实现业务成功

自 2000年代初成立和随后兴起以来,社交媒体一直被大大小小的品牌用作高度针对性的营销工具,自 Facebook推出近二十年以来,这些网站继续彻底改变企业处理广告的方式。 在这篇博文中,我们将讨论订阅企业应该如何从整体上对待社交媒…

秋云qiun chart 使用echart配置格式化柱形图数据

dataLabel数据文字格式化 <!-- seriesTemplate是config-echarts.js中对应图表类型定义好的series模板 &#xff0c;如果每个series的formatter都不一样&#xff0c;则format需要定义在chartData.series中&#xff0c;不能使用seriesTemplate --> <!-- formatter…