本文主要记录「蓝光原盘」在工程上必须拆开的几类形态,以及 libbluray、Kodi / mpv、厂商盒子与媒体库产品各自停在哪一层。目标是建立边界心智模型,不是宣布某一客户端已经支持原盘菜单或加密商业碟。

中文语境里「UHD 原盘」经常把 remux 单文件BDMV 目录 / ISO / 菜单机 混在一起。能解 4K HEVC 与能打开一张 ISO 并按 playlist 导航,是两件完全不同的事。

四类形态必须拆开

形态是什么典型依赖媒体库产品常见路径
UHD remux MKV单文件;HEVC + DV/HDR + 音轨 + PGS 等普通 demux + 硬解主线
单个 .m2ts从 BDMV 抽出的流当 MPEG-TS 播可当普通文件尝试
BDMV 目录 / 无加密 ISOBDMV/PLAYLIST + STREAM + 索引;ISO 为 UDFlibbluray多数库产品 不做
加密商业碟 + 完整菜单AACS/BD+、HDMV/BD-Jlibbluray + 密钥栈 + 可能 JRE合规产品通常 不做

后续凡写「支持原盘」,应标明是 ①~④ 中的哪一类。

菜单再拆两档:

类型含义Android 开源现实
HDMV传统非 Java 菜单Kodi / 厂商可做一部分
BD-JJava 菜单桌面勉强;Android 很少稳定承诺

libbluray 做什么、不做什么

事实
是否开源是(VideoLAN)
主体协议LGPL-2.1+(工程常见动态链接路径;非法律意见
定位Blu-ray 结构层:导航、playlist、读块、菜单事件
DRM官方声明 不含 DRM 规避;加密碟另看 libaacs / libbdplus 等

做: 打开 BDMV /(支持 UDF 时)ISO、解析 index/playlist、按逻辑读出可 demux 的数据、HDMV 菜单事件、可选 BD-J(依赖重)。

不做: 视频/音频像素解码、默认解开 AACS 商业加密、替代完整播放器 UI 或媒体库模型。

libbluray(结构 / 读块 / 菜单)
demux(FFmpeg 等)
decode(MediaCodec / FFmpeg / 厂商)
render + 可选 menu overlay

「能解 4K HEVC」≠「能播 BDMV/ISO」;缺的是结构层与产品入口。

市面方案怎么排

优先级方案典型使用者备注
1盘 → remux 单文件 → 客户端 DirectPlayJellyfin / Emby / Plex / 多数媒体库 App最主流
2本机/USB BDMV 或 ISO + libbluray + 选 playlistKodi、部分盒子、mpv开源可复现
3同上 + HDMV 菜单Kodi、部分厂商仍非全碟完美
4完整 BD-J桌面商业播放器、极少数盒子Android 开源缺席
5内置 AACS 解密播商业原盘灰色 / 厂商环境合规产品一般不做

Kodi / mpv(对照)

  • Kodilibbluray 输入流 + FFmpeg demux + 平台硬解;设置上常见「显示菜单 / 猜最长主电影 / 文件浏览选 playlist」。Android 上完整 BD-J 长期缺通用 JRE。
  • mpvbd:// / bluray://,meson 可选 libbluray;偏 title/playlist 播放,菜单弱于 Kodi。不少 Android 构建会故意关掉 dvd/bluray,不等于 上游不能做。

媒体库客户端为何默认 remux

BDMV / ISO
  → 服务端或 PC 工具 remux(如 MakeMKV 一类)
  → 库内 MKV
  → 客户端 Exo / mpv DirectPlay

常见原因:

  • 手机 / 平板无光驱;整盘随机读经 SMB/HTTP 很痛。
  • 菜单对刮削、续播、多端进度价值低。
  • 产品模型是 单文件 MediaFile + 会话,不是 disc title 树。

厂商盒子(Zidoo / Dune / 蒙太奇一类)在本机 USB / NAS 上的 ISO 体验往往更好,但属于闭源深度定制,不开放给第三方 App 复用 SDK。

产品边界怎么写才清楚

对自托管媒体库,对外表述建议固定成:

  1. 主线支持 remux / 普通容器单文件(含从碟抽出的 .m2ts 当文件播的尝试)。
  2. 不支持 BDMV 目录树、ISO 镜像 disc 模型、HDMV/BD-J 菜单机(除非单独立项并交付 libbluray + UI)。
  3. 不支持 默认分发 AACS 密钥或商业加密碟一键播放。
  4. 若未来要做,优先档位通常是:无菜单、本机路径、选最长 playlist / 显式 mpls,而不是一上来做完整蓝光机。

候选档位(仅讨论,非承诺):

档位范围主要工作
A文档与扫描拒绝明确扩展名 / 目录识别,避免「扫进库却播不了」
B本机 BDMV/ISO 无菜单runtime 带 libbluray + 选 title/playlist + 单文件会话映射
C+ HDMV 菜单 overlayUI 与事件环复杂度上升
D+ 加密 / BD-J合规与依赖面显著扩大,默认不建议

相关阅读

参考与边界

  • VideoLAN libbluray / libaacs 公开说明
  • Kodi / mpv 参考实现中的 bluray 输入路径
  • 厂商盒子能力来自公开体验与有限静态对照,不是完整反编译审计
  • AACS / 密钥分发仅标注产品常见边界,不构成法律意见