在某些非专业的播放器,比如 PS4 或者 某些品牌车机上,因为只有Dolby授权但缺少DTS授权,导致DTS无法解码,无法实现5.1输出,在其他帖子中看到有人提到了aften.exe这个程序可以实现,但是实现的并不完美,所以写个帖子来聊聊具体实现方案
需要准备的工具
foobar2000
https://www.foobar2000.org/download
--------------------------------------------------------------------
foobar2000 的 DTS 解码器,安装完foobar后会自动关联component文件,双击即可导入此插件
https://www.foobar2000.org/components/view/foo_input_dts
foobar2000 的 AC3 解码器,用于试听转换完毕后的ac3文件,双击即可导入此插件
https://www.foobar2000.org/components/view/foo_ac3
--------------------------------------------------------------------
aften.exe -- AC3编码器
https://www.videohelp.com/software/Aften
下载 aften.exe command line 版本,下载完成后将 aften.exe 丢入foobar2000的安装路径,通常为
C:\Program Files (x86)\foobar2000
--------------------------------------------------------------------
就以本人的 PS4 Pro为例,PS4 Pro 本身可以播放蓝光碟,也支持蓝光碟的 DTS-HD音轨输出,但每次看个演唱会都要放碟实在是太麻烦,所以准备用外置硬盘来存放这些演唱会,游戏之余还可以听个响。
结果缺大大出乎我的意料,PS4对本地播放视频文件不支持 DTS 解码,也不支持 DTS 源码直通。
PS4 Pro官方给出的媒体播放支持看看就行,以本人实测的推荐值为准:
文件格式推荐 MKV / 其次MP4
视频编码 : H264 ;是的,受限于羸弱的Jaguar CPU,不支持H265
H264的压制参数 High Profile , Level 5.2 (官网写的是 4.2 ,实测5.2也没问题,隔行/逐行都行,1920x1080).
音频 : MP3 / AAC / AC3 (AAC也可以实现5.1输出,仅限HDMI,使用光纤连接的话只能用AC3)
字幕 : SRT / ASS / PGS 等一概不支持,所以看电影就别想了,也就看看无需字幕的演唱会就得了
CUE文件分段:不支持,不过建议保留,部分高阶播放器支持分段快速跳转
AAC的压制比较简单,Foobar + DTS 解码器 + QuickTime/iTunes + QAAC 即可,参数Foobar都内置了,不在本文讨论范围内,AAC Q109 5.1声道 的码率通常在 750Kbps,实测音质是超过AC3的,不过需要HDMI连接功放,使用6CH Linear PCM输出,使用Spdif光纤输出的话,受限于光纤较老的标准,只有1.5Mbps带宽,只能听到2声道声音,兼容性不如AC3
不要问我为什么不下载别人做好的,各种广告植入和不透明的压制过程,另外并不一定能找到合适自己的资源。
下面以 [李克勤的 演奏厅1] 蓝光原盘 为例,介绍一下如何压制成PS4 Pro 可用的外置硬盘的视频
首先使用WIN10/11自带ISO挂载功能挂载对应的原盘文件,把 BDMV/index.bdmv 播放引导文件拖入 MKV TOOLNIX ,选取自己需要的播放列表,本例中为 00001.mpls
选取视频轨,一个简体中文的PGS字幕(文件很小,虽然PS4不支持但也建议保留);一个CUE分段文件; 在下方输入合适的路径后开始视频部分的 Remux, 至于图中看到有个 AC3音轨,实测他是 384Kbps 立体声的伴奏音轨,所以丢弃不要。
得到 [李克勤 - 李克勤演奏厅1].mkv 文件,其中包含了原盘中的 视频/字幕/CUE分段 信息
然后取消这些选择, 只选中DTS-HD的音轨,将其剥壳成普通DTS音轨(勾选仅保留核心---Foobar的DTS插件仅支持DTS,所以DTS-HD多出来的那部分无损就算你保留了也是无效的,不如在Remux时候直接剥离),文件扩展名保存成 mka 格式
得到仅有DTS音轨的MKA文件
然后开始转码,视频部分实测 5000kbps 可以在2.5米开外观看时看不出明显瑕疵,当然如果你外置硬盘容量够大,直接使用原盘中的视频轨也行;如果要压制视频,则在xmedia recode里面选择 H264 RAW转码方式, 参数可以参考如下
值得注意的是,演唱会大都基于 隔行扫描 制作,如果输出选择逐行扫描,请务必挂入 Filter下面的 Deinterlace 反交错滤镜,否则回放时运动画面会出现明显的拉丝现象;隔行转逐行后还有一个问题就是回放帧率会减半,所以建议和原视频保持一致的扫描方式。
转码后得到同名的 H264 结尾的视频流备用 ,本例中为 [李克勤 - 李克勤演奏厅1].h264
下面就是重头戏 -- 音频部分,音频我通常不在视频转码软件中处理,Foobar2000可以提供更清晰的处理流程
首先尝试用 Foobar2000 播放刚才Remux来的音频文件,确认音频文件可以顺利播放,VU meter里面可以看到六声道电平,证明DTS解码器工作正常
确认可以正常解码播放后,右键点击文件,选择 Convert / ... 来自定义编码程序
Encoder选择 Custom 自定义,下方填入 aften.exe ,输出扩展名填入 ac3, 编码参数 -v 0 -threads 0 -q 640 -readtoeof 1 - %d
解释
-v 0 不输出控制台log,输出了也没用,徒增foobar负担
-threads 0 使用所有CPU线程,加快编码速度
-q 640 使用标准的 AC3 5.1声道的 640kbps 码率
-readtoeof 1 打开流处理选项,因为Foobar给aften的是一个 PCM 码流,不是wav文件,所以按照流来处理
- %d 输出文件和原始文件同名 (只是扩展名输出为.ac3)
下方 Display 是 foobar里面怎么显示这个编码选项,随便填就可以了
保存得到一个 名为 AC3 的编码格式,如上图中左侧所示
由于本例中解码出来为 DTS 24/96,Foobar解码后得到的是96KHz采样率的PCM码流,而 aften.exe 仅支持 48KHz 或更低的采样率文件(这也是AC3编码格式的限制),所以转码时我们需要调用 Foobar内置的 DSP - Resampler (RetroArch) ,并将码流重采样为 48KHz,然耨再送入 aften.exe 进行AC3编码
音频文件就是走了这么一个流程
DTS 24/96 源文件 --> Foobar DTS解码插件 -->解码为6声道96KHz PCM码流 --> Resampler重采样为48K --> aften.exe 压制成 5.1 AC3
这样转码后得到AC3格式的音频文件 [李克勤 - 李克勤演奏厅1].ac3
于是我们手头就有了
[李克勤 - 李克勤演奏厅1].mkv --- 来自蓝光原盘remux,我们只需要其中的字幕和cue分段
[李克勤 - 李克勤演奏厅1].h264 --- 压缩后的视频
[李克勤 - 李克勤演奏厅1].ac3 --- 压缩为 AC3 后的 5.1 音频
下面就来重新 Mux 这些文件,将三个文件都拖入MKV Toolnix,勾选我们想要的轨道
得到文件 [李克勤 - 李克勤演奏厅1].PS4.1080i.x264.AC3.5.1.mkv,文件体积从原来的 8G 变为 1.5G,且拥有了PS4支持的AC3 5.1音轨,并且在2.5米距离以上基本看不出画质下降,视频实际播放帧率也和原盘一样为59.94fps
用 Potplayer 尝试播放,确认无误,有字幕和cue分段
PS4 Pro只支持 FAT/exFAT 格式,硬盘格式化成 exFAT 格式(方便放大于等于4GB文件),新建一个 Video文件夹,把这个视频丢进去,插入机器就可以顺利播放,不再显示 “不支持的音频格式” 提示
需要准备的工具
foobar2000
https://www.foobar2000.org/download
--------------------------------------------------------------------
foobar2000 的 DTS 解码器,安装完foobar后会自动关联component文件,双击即可导入此插件
https://www.foobar2000.org/components/view/foo_input_dts
foobar2000 的 AC3 解码器,用于试听转换完毕后的ac3文件,双击即可导入此插件
https://www.foobar2000.org/components/view/foo_ac3
--------------------------------------------------------------------
aften.exe -- AC3编码器
https://www.videohelp.com/software/Aften
下载 aften.exe command line 版本,下载完成后将 aften.exe 丢入foobar2000的安装路径,通常为
C:\Program Files (x86)\foobar2000
--------------------------------------------------------------------
就以本人的 PS4 Pro为例,PS4 Pro 本身可以播放蓝光碟,也支持蓝光碟的 DTS-HD音轨输出,但每次看个演唱会都要放碟实在是太麻烦,所以准备用外置硬盘来存放这些演唱会,游戏之余还可以听个响。
结果缺大大出乎我的意料,PS4对本地播放视频文件不支持 DTS 解码,也不支持 DTS 源码直通。
PS4 Pro官方给出的媒体播放支持看看就行,以本人实测的推荐值为准:
文件格式推荐 MKV / 其次MP4
视频编码 : H264 ;是的,受限于羸弱的Jaguar CPU,不支持H265
H264的压制参数 High Profile , Level 5.2 (官网写的是 4.2 ,实测5.2也没问题,隔行/逐行都行,1920x1080).
音频 : MP3 / AAC / AC3 (AAC也可以实现5.1输出,仅限HDMI,使用光纤连接的话只能用AC3)
字幕 : SRT / ASS / PGS 等一概不支持,所以看电影就别想了,也就看看无需字幕的演唱会就得了
CUE文件分段:不支持,不过建议保留,部分高阶播放器支持分段快速跳转
AAC的压制比较简单,Foobar + DTS 解码器 + QuickTime/iTunes + QAAC 即可,参数Foobar都内置了,不在本文讨论范围内,AAC Q109 5.1声道 的码率通常在 750Kbps,实测音质是超过AC3的,不过需要HDMI连接功放,使用6CH Linear PCM输出,使用Spdif光纤输出的话,受限于光纤较老的标准,只有1.5Mbps带宽,只能听到2声道声音,兼容性不如AC3
不要问我为什么不下载别人做好的,各种广告植入和不透明的压制过程,另外并不一定能找到合适自己的资源。
下面以 [李克勤的 演奏厅1] 蓝光原盘 为例,介绍一下如何压制成PS4 Pro 可用的外置硬盘的视频
首先使用WIN10/11自带ISO挂载功能挂载对应的原盘文件,把 BDMV/index.bdmv 播放引导文件拖入 MKV TOOLNIX ,选取自己需要的播放列表,本例中为 00001.mpls
选取视频轨,一个简体中文的PGS字幕(文件很小,虽然PS4不支持但也建议保留);一个CUE分段文件; 在下方输入合适的路径后开始视频部分的 Remux, 至于图中看到有个 AC3音轨,实测他是 384Kbps 立体声的伴奏音轨,所以丢弃不要。
得到 [李克勤 - 李克勤演奏厅1].mkv 文件,其中包含了原盘中的 视频/字幕/CUE分段 信息
然后取消这些选择, 只选中DTS-HD的音轨,将其剥壳成普通DTS音轨(勾选仅保留核心---Foobar的DTS插件仅支持DTS,所以DTS-HD多出来的那部分无损就算你保留了也是无效的,不如在Remux时候直接剥离),文件扩展名保存成 mka 格式
得到仅有DTS音轨的MKA文件
然后开始转码,视频部分实测 5000kbps 可以在2.5米开外观看时看不出明显瑕疵,当然如果你外置硬盘容量够大,直接使用原盘中的视频轨也行;如果要压制视频,则在xmedia recode里面选择 H264 RAW转码方式, 参数可以参考如下
值得注意的是,演唱会大都基于 隔行扫描 制作,如果输出选择逐行扫描,请务必挂入 Filter下面的 Deinterlace 反交错滤镜,否则回放时运动画面会出现明显的拉丝现象;隔行转逐行后还有一个问题就是回放帧率会减半,所以建议和原视频保持一致的扫描方式。
转码后得到同名的 H264 结尾的视频流备用 ,本例中为 [李克勤 - 李克勤演奏厅1].h264
下面就是重头戏 -- 音频部分,音频我通常不在视频转码软件中处理,Foobar2000可以提供更清晰的处理流程
首先尝试用 Foobar2000 播放刚才Remux来的音频文件,确认音频文件可以顺利播放,VU meter里面可以看到六声道电平,证明DTS解码器工作正常
确认可以正常解码播放后,右键点击文件,选择 Convert / ... 来自定义编码程序
Encoder选择 Custom 自定义,下方填入 aften.exe ,输出扩展名填入 ac3, 编码参数 -v 0 -threads 0 -q 640 -readtoeof 1 - %d
解释
-v 0 不输出控制台log,输出了也没用,徒增foobar负担
-threads 0 使用所有CPU线程,加快编码速度
-q 640 使用标准的 AC3 5.1声道的 640kbps 码率
-readtoeof 1 打开流处理选项,因为Foobar给aften的是一个 PCM 码流,不是wav文件,所以按照流来处理
- %d 输出文件和原始文件同名 (只是扩展名输出为.ac3)
下方 Display 是 foobar里面怎么显示这个编码选项,随便填就可以了
保存得到一个 名为 AC3 的编码格式,如上图中左侧所示
由于本例中解码出来为 DTS 24/96,Foobar解码后得到的是96KHz采样率的PCM码流,而 aften.exe 仅支持 48KHz 或更低的采样率文件(这也是AC3编码格式的限制),所以转码时我们需要调用 Foobar内置的 DSP - Resampler (RetroArch) ,并将码流重采样为 48KHz,然耨再送入 aften.exe 进行AC3编码
音频文件就是走了这么一个流程
DTS 24/96 源文件 --> Foobar DTS解码插件 -->解码为6声道96KHz PCM码流 --> Resampler重采样为48K --> aften.exe 压制成 5.1 AC3
这样转码后得到AC3格式的音频文件 [李克勤 - 李克勤演奏厅1].ac3
于是我们手头就有了
[李克勤 - 李克勤演奏厅1].mkv --- 来自蓝光原盘remux,我们只需要其中的字幕和cue分段
[李克勤 - 李克勤演奏厅1].h264 --- 压缩后的视频
[李克勤 - 李克勤演奏厅1].ac3 --- 压缩为 AC3 后的 5.1 音频
下面就来重新 Mux 这些文件,将三个文件都拖入MKV Toolnix,勾选我们想要的轨道
得到文件 [李克勤 - 李克勤演奏厅1].PS4.1080i.x264.AC3.5.1.mkv,文件体积从原来的 8G 变为 1.5G,且拥有了PS4支持的AC3 5.1音轨,并且在2.5米距离以上基本看不出画质下降,视频实际播放帧率也和原盘一样为59.94fps
用 Potplayer 尝试播放,确认无误,有字幕和cue分段
PS4 Pro只支持 FAT/exFAT 格式,硬盘格式化成 exFAT 格式(方便放大于等于4GB文件),新建一个 Video文件夹,把这个视频丢进去,插入机器就可以顺利播放,不再显示 “不支持的音频格式” 提示