版主
- 大洋
- 15074
- 阅读权限
- 140
|
本帖最后由 nnezyj 于 18-7-19 00:43 编辑
视频由 世界哪有真情lu 大佬提供!
《派拉蒙UHD-BDJ菜单修改》视频下载地址:
链接:https://pan.baidu.com/s/1KbXdh9tDUqGx-UdQCd3Vog
密码:
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
引言:感谢 世界哪有真情lu、9011、i6henl、だ`無ぺ窷. 、老黑、花九胖 等大佬们编辑测试提供的图文内容!
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
前言
派拉蒙菜单修改新增按钮,操作过程涉及图片修改、class文件反编译、java代码修改重编译、jar打包、重签名。
如何确认原盘是否属于派拉蒙制作:使用 UltraEdit 、WinHex 、HxD 等可以进行十六进制编辑的软件,查看位于原盘 CERTIFICATE 文件夹下的 app.discroot.crt 文件。
看到文字内容部分:Paramount.7fff55551%0#..U....Paramount Home Entertainment
查看原盘 BDMV/JAR 目录下文件结构:
使用了美版大兵做图文测试记录:
Saving Private Ryan 1998 2160p UHD Blu-ray HEVC TrueHD 7 1-COASTER
Saving Private Ryan 1998 UHD BluRay 2160p HEVC TrueHD 7.1-9011@CHDBits
一、前期准备工作
因为使用 Scenarist BD-J 平台对派拉蒙BDJ菜单进行修改,建议阅读 [蓝光技术] BD-J的Scenarist工具重编译及重签名 一文,对涉及的基础操作有所了解。本文将不再对此类操作做赘述。
因为 Scenarist BD-J 是对 java 明文进行操作的,所以需要将要做修改的 jar 内的 .class 文件反编译为 Scenarist BD-J 可读取的 .java 文件。本文使用 JD-GUI 反编译工具,文章后续内容所涉及的操作都基于此软件的反编译代码。
二、查找需要的 class 文件
派拉蒙菜单,需要修改的主要有四大部分:1、图片提取部分;2、菜单显示部分;3、菜单按钮导航部分;4、音频、字幕轨道设置部分。
使用 JD-GUI 打开 00001.jar 文件,点击 title -> 以电影名称命名的class 文件。
根据上图内容,可以得到三个主要的类文件:
1、aa.class:mpls播放设置、音频轨道设置、字幕轨道设置类文件;
2、ip.class:菜单显示类文件;
3、gi.class:音频字幕设置菜单按钮导航控制类文件。
上图的菜单显示类文件内,包含了各项子菜单的类名指向,我们对菜单修改一般只涉及音频、字幕按钮的添加和替换。
Integer(101):正片弹出菜单。
Integer(102):音频字幕设置菜单。
Integer(100):主菜单。
Integer(1):导评字幕设置菜单。
根据上图内容,我们得到了:
1、gs.class:英语语言版本菜单图片提取类文件。
2、fp.class:音频字幕设置菜单类文件。
我们得到了本次修改所需要的四个类文件:aa.class、gi.class、gs.class、fp.class
三、代码说明
⑴. fp.class 音频字幕设置菜单。
非按钮类的菜单背景显示组件,参数说明:菜单基组、调用图片、x轴显示定位坐标、y轴显示定位坐标、图层层级。
按钮类的菜单按钮组件,参数说明:菜单基组、按钮组调用图片、x轴显示定位坐标、y轴显示定位坐标、图层透明度、图层层级。
按钮三状态:Normal、Selected、Activated
"group":菜单基组。
"buttons":按钮组:包含音频字幕设置菜单上所有的音频按钮和字幕按钮。可动作菜单按钮组件。
"audioIndicators":音频勾选标志组:音频按钮对应的勾选标志组。可动作菜单按钮组件。
"subtitleIndicators":字幕勾选标志组,字幕按钮对应的勾选标志组。可动作菜单按钮组件。
"glyphs":菜单图形组件组,包含菜单上所有的菜单组件。
"cursors":按钮导航光标组,用于与按钮组按钮联动显示。可动作菜单按钮组件。采用的二维数组形式,形成一个2行n[按钮数]列的数组,第一行元素用于背景图层显示,第二行元素用于文字图形内容图层显示,一列对应一个按钮。
⑵. gi.class 音频字幕设置菜单按钮导航控制。
音频字幕菜单按钮导航控制,与 fp.class 的 "buttons" 组相配合,使用 "buttons" 组元素 ID 编号指代对应按钮元素。
四个方法[函数]:a()、b()、c()、d(),依次对应 “下、上、左、右” 四个方向导航键。通过 switch 多分支条件选择语句来完成按钮导航动作设定。
super(paramax, paraman, paramfj, 25); // 数字参数:"buttons" 组按钮元素数目 [buttons.length]。
ID编号从 [0] 开始,一直到 [buttons.length - 1]。
case [ID编号]: 根据发生导航动作的按钮 ID ,进入相应 ID 编号分支入口并执行代码语句。
d([ID编号]); 语句,表示导航光标动作到对应ID编号的按钮上。
break; 语句,表示已完成 case 分支内的语句执行,跳出 switch 多分支条件选择语句,即结束完成一次导航动作。
this.*.**(); 句式 this.p.aS(); 语句,表示关闭音频字幕设置菜单,返回主菜单。
⑶. aa.class mpls 播放设置、音频轨道设置、字幕轨道设置。
--------------------------------------------------------------------
iy[] 音频轨道组元素
new iy(1, ay.a, gr.a, CodingType.DOLBY_AC3_AUDIO)
参数说明:
函数0: new iy 音轨元素函数
参数1: (1, 轨道编号
参数2: ay.a, 语言版本
参数3: gr.a, 轨道类型
参数4: CodingType.DOLBY_AC3_AUDIO) 音频类型
--------------------------------------------------------------------
jg[] 字幕轨道组元素
new jg(1, ay.a, gr.a, hn.a)
参数说明:
函数0: new jg 字幕元素函数
参数1: (1, 轨道编号
参数2: ay.a, 语言版本
参数3: gr.a, 轨道类型
参数4: hn.a), 字幕类型
--------------------------------------------------------------------
u[] mpls设置
new u(800, 1, bg.b, 0L, ay.a, c, d)
参数说明:
函数0: new u 元素函数
参数1: (800, mpls编号
参数2: 1, (byte)参数,播放顺序类型!
参数3: bg.b, 视频类型
参数4: 0L,
参数5: ay.a, 语言版本
参数6: c, 音频轨道
参数7: d), 字幕轨道
⑷. gs.class 图片提取。
图片块参数说明:提取图片指向、"图片块功能"、图片x轴定位坐标、图片y轴定位坐标、宽度、高度。
四、反编译java文件报错解决
一般只有两个反编译文件报错:图片提取类文件;mpls 播放设置、音频轨道设置、字幕轨道设置类文件。
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
修改前后菜单图比较
《派拉蒙-拯救大兵瑞恩-UHD-BDJ菜单修改图文说明》
链接: https://pan.baidu.com/s/1KGVq2aodHX-D3WrYmvHJyg
密码: |
评分
-
查看全部评分
|