Emby 音频格式不支持 — DTS / EAC3 强制转码和解决方法
问题现象
播放某部电影时:
- 有画面但没声音
- 画面放了一段时间突然出现音频丢失
- Emby 转码日志里报 "Audio codec DTS not supported by client"
- EAC3 音频的文件在 Android TV 上无声
为什么会这样
不同平台/客户端对音频编码的原生支持差异很大:
| 音频格式 | iOS | Apple TV | Android TV(现代) | Android TV(老款) | Web Client | Windows Theater |
|---|---|---|---|---|---|---|
| AAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AC3 / Dolby Digital | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ |
| EAC3 | ❌ | ⚠️ | ✅(大多) | ❌ | ❌ | ❌ |
| DTS | ❌ | ❌ | ⚠️ 需调设置 | ❌ | ❌ | ✅ |
| DTS-HD Master Audio | ❌ | ❌ | ❌ | ❌ | ❌ | ❌(需支持) |
| TrueHD Atmos | ❌ | ❌ | ❌ | ❌ | ❌ | 视硬件 |
| FLAC | ✅ | ✅ | ✅ | ❌ | ⚠️ | ✅ |
苹果生态(iOS / Apple TV)完全不支持 DTS 家族(DTS、DTS-HD、TrueHD),Emby 遇到这些格式必须转码成 AAC 或 AC3。这个是硬件层面的限制,没法绕过。
场景一:iOS / Apple TV 播放 DTS 音频无声
现象
电影是 DTS 或 DTS-HD 音轨,在 iOS / Apple TV 上播放,画面有但声音没出来。
原因
Emby Server 尝试转码 DTS → AAC,但可能:
- Server 没开硬件加速,软解 DTS 音频消耗 CPU 太多
- AAC 编码设置有问题
- 某些 iOS 版本或 Apple TV 的 Emby 客户端有 bug
解决办法
方案 A:开硬件加速转码
Premiumiere 解锁硬件加速后,DTS → AAC 的音频转码也会变得更可靠(虽然音频本身软解,但硬件转码加速视频后整体系统压力低了)。
方案 B:把 Emby Server 的音频 Boost 调高一点
Dashboard → Transcoding → Audio Boost。DTS-HD 转 AAC 可能本身就小声,Audio Boost 设到 2~3 补偿一下。
方案 C:媒体库统一转码(最彻底)
把所有 DTS / DTS-HD 的片源在源文件层面转成 AAC 或 AC3,这样播放时 Emby 不需要转码(Direct Play),也不会有音频丢失的问题:
# 批量把一个目录下所有视频的 DTS 音轨转成 AAC
ffmpeg -i input.mkv -map 0 -c:v copy -c:a aac -b:a 256k output.mkv
或者用 HandBrake 的批量功能,更方便。
方案 D:装 Apple TV 的 Kodi 客户端
Kodi for Apple TV 对 DTS 的支持比 Emby Apple TV 客户端好——它能直接把 DTS 音轨通过 HDMI ARC 输出到功放(Apple TV 本身不支持 DTS 解码,但支持透传)。这样的话功放自己解 DTS,Emby Server 不需要转码音频。
场景二:Android TV EAC3 音频无声
现象
Android TV 盒子上播放带 EAC3(Enhanced AC3)音轨的视频没声音。Emby 转码日志里可能报 Audio codec EAC3 not supported。
解决办法
在 Android TV 的 Emby 客户端里手动开启 EAC3 转码:
- Emby Android TV → Settings → App Settings → Playback
- 找到 Force Transcoding for formats(强制转码格式)
- 勾上 EAC3
勾上后 Emby 遇到 EAC3 音轨时会自动转码成盒子支持的格式(通常是 AC3 或 AAC)。
注意:强制转码会增加 Server 负载,建议开硬件加速。
场景三:Web Client 播放 AC3/DTS 无声
浏览器(Chrome/Safari)的 HTML5 播放器对音频格式支持非常有限:
- Safari:支持 AAC、ALAC,不支持 AC3、DTS
- Chrome:支持 AAC、Opus,不支持 AC3、DTS
- Firefox:支持 AAC、Opus,AC3/DTS 有限支持
解决办法
Web Client 本身就是"用不了原生客户端时的备选"。如果经常在 Web Client 上看:
- 媒体库统一转码成 AAC(最彻底)
- 或者接受 Emby 转码(Web Client 转码比原生客户端更频繁,因为浏览器原生支持有限)
场景四:Windows Theater 也出问题
Windows Theater 在 DTS 音轨上理论上支持更好(Windows 有系统级 DTS 支持),但某些老版本可能不行。
排查
- Windows 编解码包:Windows 10/11 默认不带 DTS 解码器。装个 K-Lite Codec Pack 或 LAV Filters
- Emby Server 端 Transcoding 设置:Dashboard → Transcoding → Advanced → 检查音频编解码器设置
- 直接用 VLC 打开那个文件:如果 VLC 能正常播放,说明是 Emby 的问题;VLC 也不能播,说明文件音轨本身有问题
媒体库音频统一方案(推荐长期做)
最彻底的解决办法是在文件层面就解决问题——把所有 DTS / DTS-HD / TrueHD / EAC3 音轨统一转成 AAC 或 AC3:
为什么这样好
- Emby 遇到这些文件时直接 Direct Play / Direct Stream,零转码
- 所有平台客户端都能原生播放,不需要考虑兼容性
- Server CPU 负载大幅降低(不需要转码)
- 画质不受影响(视频不转码,只转音频)
推荐操作
- 用 HandBrake 或 ffmpeg 批量处理
- 只转音频,视频 copy(不重编码,保证画质不变)
- 批量跑完后重新扫描媒体库(元数据匹配会保留)
- 定期处理新加入的片源
保留原始文件
处理前把原始文件备份一下(至少拷一份到备份硬盘),转码确认没问题后再删原始文件。
总结矩阵
| 格式 | 影响最大的平台 | Emby 应对 | 长期方案 |
|---|---|---|---|
| DTS | iOS / Apple TV / Web Client | 强制转码 AAC | 媒体库转 AAC |
| DTS-HD / TrueHD | 同上 | 强制转码 AAC | 媒体库转 AAC |
| EAC3 | Android TV 老款 / Web Client | 客户端强制转码 | 媒体库转 AC3 |
| FLAC | 无(基本都支持) | 直出或 Direct Stream | 不用动 |
| MP3 | 全部支持 | 直出 | 不用动 |
| AAC | 全部支持 | 直出 | 媒体库目标格式 |
| AC3 | 大部分支持 | 直出或 Direct Stream | 媒体库目标格式(备选) |