让新版群晖 Video Station 正常播放带专利音轨

目前市面上有很多适用于 NAS 的媒体服务器,对群晖用户而言,第一方的 Video Station 虽然已经足够好用,但由于专利限制原因,要想播放视频文件中的 DTS 音轨往往需要另辟蹊径。

去年五月我曾介绍过如何通过安装第三方 ffmpeg 套件来实现专利音轨播放的方法,当时的技巧仅适用于 DSM 6.2.3 之前的系统。近期群晖悄然升级至 DSM 6.2.4 并加入了诸多 DSM 7.0 的系统功能特性,同时也让此前的播放专利音轨的小技巧完全失效。

所以本篇就针对 DSM 6.2.4 和 DSM 7.0,介绍在新系统中继续通过第三方 ffmpeg 播放 DTS 音轨的办法。

适用于 DSM 6.2.4 的操作方法

很多用户在群晖系统升级到 DSM 6.2.4 之后发现,如果曾经开启了 Moment 这个套件,那么系统升级后在套件中心就会自动安装一个名为 Advanced Media Extensions 的套件,其实这个套件就是为了可以在群晖中查看 HEVC 格式文件。由于未来 Synology Photos 将会将原先的 Photo Station 和 Moment 整合在一起,因此这个新套件从 DSM 6.2.4 开始变成了默认安装。

正是这个新套件导致我们无法通过以前的办法来调用第三方 ffmpeg,除了卸载 Moment 和 Advanced Media Extensions 套件之外,现在还可以通过下面一套操作方法来实现调用第三方 ffmpeg 套件来播放带专利音轨的视频:

注:以下操作在 DS218+、DSM 6.2.4、安装 Advanced Media Extensions 下的环境下测试通过

首先还是需要在DSM 中的「套件中心」中打开「设置」,在「套件来源」选项卡中新增一个社区套件源 synocommunity:http://packages.synocommunity.com

然后在「常规」选项卡中找到信任层级,选择「任何发行者」后点击确定,完成社群源 synocommunity 的添加。

接着在「套件中心 > 社群」中找到套件「ffmpeg」,然后点击安装。

随后通过终端或者 SSH 工具来登录群晖,这里使用 root 权限登录(不会操作的小伙伴可以到 这篇文章 中复习一下)并逐行输入下面的命令,相比此前的技巧,新的技巧会通过调用一个运行脚本来实现在新系统下的 ffmpeg 的调用:

mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig 
wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/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 
cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig 
chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig 
sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so

之后因为牵涉到还需要转换视频,在当前终端窗口下输入下面两条命令:

mv /var/packages/CodecPack/target/bin/ffmpeg33 /var/packages/CodecPack/target/bin/ffmpeg33.orig
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg33

命令输入完成之后,我们需要重启 Video Station 来使得当前的修改生效:登录群晖并打开套件中心,找到 Video Station 套件页面并选择「停用」,等操作完成之后在选择「启动」。

随后再打开 Video Station,选择一个带有诸如 DTS 、EAC3 之类专利音轨的视频文件,如果视频可以正常播放(不转圈)既表示操作已经成功,同时 Moments 套件的使用也完全不受影响。

适用于 DSM 7.0 的操作方法

虽然现阶段 DSM 7.0 依旧处于测试阶段,但目前已有不少用户已经升级并将其作为主系统使用,所以也遇到了 Video Station 播放视频中专利音轨的问题,当然由于目前 DSM 6.X 的套件和 DSM 7.0 并不兼容,因此这里需要手动安装已经适配好 DSM 7.0 的第三方套件来实现这些功能。

首先我们需要在 这里 查找适用于 DSM 7.0 的第三方套件,这里我找到的是 ffmpeg_x64-7.0_4.3.1-36.spk(笔者我的群晖基于 x86-64 架构),将其下载到本地。

然后打开套件中心,选择右上角的「手动安装」来安装该套件,在弹出的警告对话框中选择「同意」并继续安装。

完成之后我们需要打开「控制面板」,找到「终端机和 SNMP」项目,勾选「启动 SSH 功能」并输入端口号(建议不要使用默认的 22),之后点击「应用」。

之后我们打开终端或者 SSH 终端连接群晖,这里默认进入的是当前的用户名下的普通用户账号,然后输入sudo -i 并输入当前账户密码来获得 root 权限。

紧接着我们输入命令来替换掉系统默认的 ffmpeg,这里的命令其实和 DSM 6.2.4 上的操作命令基本上差不多,逐行输入并回车:

mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig

 

wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/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
cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig
chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig
sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so

不过最后视频转换部分会多两段:

mv /var/packages/CodecPack/target/bin/ffmpeg33 /var/packages/CodecPack/target/bin/ffmpeg33.orig
mv /var/packages/CodecPack/target/bin/ffmpeg41 /var/packages/CodecPack/target/bin/ffmpeg41.orig
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg33
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg41

之后关闭终端回到群晖中,这里需要让替换操作生效,这里打开套件中心并找到「Video Station」的页面,依旧先选择「停用」然后再「启用」。

最后我们直接 Video station 并点击一个视频播放,如果上面操作也没遗漏,应该可以看到视频也已经正常播放并且可以输出正常的专利格式音轨了。

如果未来 Video Station 版本更新,则可以根据以上的命令重新操作即可。

参考来源:

Synology VideoStation ffmpeg wrapper with DTS, EAC3 and TrueHD support (Installation instructions in 1st comment)

最后修改:2月前