废话少说,版本先对一下:
DSM:7.1.1-42962 Update 5
Video Station:3.0.5-2503
Advanced Media Extentions:3.0.1-2004
ffmpeg:4.4.3-48
都是最新的,对不对?
方法如下:
在套件中心把这三个套件全部删除:Video Station、ffmpeg、Advanced Media Extensions。
删Video Station时,记住跳出来的这个复选框,不要打钩,否则会把已经建好的影片和电视剧索引都给删了,重建要花挺长时间。
这一步的目的是将以前为了播放DTS、AC3对这三个套件做的任何改动,通过重装还原。
为啥?
很简单,你还记得之前改过哪些地方吗?
重装好这三个套件以后, 打开PuTTY,按自己NAS的内网IP地址,进入(Login)。
①输入管理员用户名,按提示输入密码,进入“管理员用户名”@“你的NAS”。
②再输入sudo -i,按提示输入密码,进入root@“你的NAS”。
现在可以开干了:
1、把VideoStation在bin目录下的原生ffmpeg,移动到ffmpeg.orig,这个就算做备份了。
mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig
2、去gist.githubusercontent.com下载新的ffmpeg脚本,填补移动后的空缺。
wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg
注意到没,这个目录/var/packages/VideoStation/target/bin/ffmpeg,也就是前面被备份那个,这步是用从gist.githubusercontent.com下载的脚本,替换掉原生的脚本,
如果这步做完,PuTTY界面出现这样的回应,算已经成功了。
Resolving gist.githubusercontent.com... 185.199.109.133, 185.199.108.133, 185.19 9.110.133, ...
Connecting to gist.githubusercontent.com|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8666 (8.5K) [text/plain]
Saving to: 'STDOUT'
- 100%[===================>] 8.46K --.-KB/s in 0s
2023-05-02 09:54:43 (65.2 MB/s) - written to stdout [8666/8666]
3、把这个新的ffmpeg脚本应用权限设好
chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg
chmod 750 /var/packages/VideoStation/target/bin/ffmpeg
chmod u+s /var/packages/VideoStation/target/bin/ffmpeg
4、再备份libsynovte.so为libsynovte.so.orig,请注意这个步骤是复制而不是移动,被复制的文件还有用处。
cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig
5、设置好libsynovte.so.orig的权限。
chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig
6、 把对DTS, AC3 and TrueHD的支持,加给libsynovte.so。
sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so
以前完成这步就可以了,现在不行!
因为新版的Video Station,被设定优先调用Advanced Media Extentions。
而Advanced Media Extentions又被去掉了DTS的解码功能,这样你点DTS电影看,就会一直转圈,根本不播放。所以我们还得多做两步。
7、把新Advanced Media Extentions里的ffmpeg41,复制成ffmpeg41.bak。
cp /var/packages/CodecPack/target/bin/ffmpeg41 /var/packages/CodecPack/target/bin/ffmpeg41.bak
8、再把/var/packages/VideoStation/target/bin/ffmpeg,复制到ffmpeg41
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg41
9、为稳妥起见,重启一下Video Station,DTS就能用了。
sudo synopkg restart VideoStation
10、大功告成!但有些头铁的朋友,不信邪,说7和8不做会怎样?想知道结果吗?输入这条。
cp /var/packages/CodecPack/target/bin/ffmpeg41.bak /var/packages/CodecPack/target/bin/ffmpeg41
是不是又回到转圈模式了?这个步骤验证了:新版Video Station优先调用的是Advanced Media Extentions里的ffmpeg41。
怎么办???
7、8、9重做一遍。
总结一下:
①按以上操作,不光DTS和AC3都可以解开,且内置字幕也都可以显示。但总会出现极少数压制不规范的,内置字幕不可显示。
很简单,重新下个可以显示的,这不是Video Station套件本身的问题。
②看到一篇文章,说应该把命令里的orig改成org,这纯粹是文科生的思维。
org是组织机构的缩写,文科生一看,我这个要解码成功得找组织呀。其实根据前面对命令的解释,这个org跟能不能解有个屁的关系。
③有朋友问,现在Jellyfin等都已经很完善了,可以刮海报可以解DTS和AC3,为啥还费尽心思用Video Station?
嗯,完成1-9以后,分别用网页Video Station、Jellyfin打开需要解码的电影,再转到群晖资源监控看看CPU占用。
是不是同样视频Jellyfin的CPU占用普遍偏高呢?给Jellyfin开硬解也没用!
CPU占用高其实是与Jellyfin卡和字幕不同步是有关联的。本来NAS就是一个多用户的服务平台,现在一个用户看Jellyfin,其他用户得苟着,用户体验能好吗?
④相对来说,H.264或HEVC视频编码+AAC音频编码是最不占用群晖CPU的组合,所以能找到这类电影文件,应优先使用,这应该也是群晖官方想要引导的。
这样,在内网和外网的播放表现相差就不会太大,也可以减轻NAS的压力。
好运!