国语视界

 找回密码
 立即注册
查看: 10406|回复: 15

[中文菜单] 请教一下派拉蒙菜单问题

[复制链接]

49

主题

1608

帖子

3179

积分

版主

大洋
10474
阅读权限
140
发表于 20-3-12 02:16 | 显示全部楼层
本帖最后由 nnezyj 于 20-3-12 13:17 编辑

一、语言选择菜单页面,在其他 11110.jar 文件上。
  由于语言选择菜单,与 00001.jar 的主菜单有联动设计。语言选择菜单选择之后的参数等信息会传递给 00001.jar 内的应用程序。
  大概说下思路:首先,要找到播放函数,也就是播放视频时的代码段,然后逆推,找到调用关系。还有 Title 跳转函数,亦是如此。此外,还要找到原按钮动作之后的一些参数变化等等。
  因为,原盘设计是通过语言菜单的按钮动作,来完成跳转。而需要跳过,那么就要把按钮动作之后的参数都预先找到,然后修改代码,实现自动跳转……
  工作量有点大,要会阅读代码,能在没有有效提示的类名方法名中找到原盘代码工作原理,并编写相关的新功能语句,找到准确的插入代码位置,实现自动跳转。
  这对编程水平有较高的要求,我搞不定……


  通过 new BDLocator 的代码句式,找到建立 PlayList 对象的函数类,以及 new BDLocator((String) null, i, -1) 的 Title 代码。
  通过 implements ControllerListener 的代码,找到 Player 播放事件侦听器。
  通过 ControllerListener 的 controllerUpdate 函数,找到 controllerEvent 事件。其中 EndOfMediaEvent 下的处理函数,这里可以作为一个播放结束跳转点,将语言菜单视频替换成 logo 视频,然后播放结束,跳转 Title 。
  通过 "BDMV/JAR/11111/startup.properties" 、"playlist.sus" 等字符串,找到语言选择菜单相关类。顺着调用关系,找到与 BDLocator 的中间关联函数。
  ……



################################# 分隔符 ###################################


  我看了下你在第二个问题的图片,得到你需要跳过的理由:删减了按钮和轨道,所以语言选择菜单,就配合不上了!
  这里,提供另一个修改思路:【个人觉得更可行】
  语言菜单是一个 M2TS 视频文件,按钮直接存在于视频之上。
  从视频中截取一个 1920x1080 的全视频图片,使用 PS 等工具,将多余按钮P掉,仅保留需要的按钮。并调整好位置。
  使用大金自带的 Scenarist UHD/Utilities/Still Image Encoder/StillImageEnc.exe 工具,输出一个视频,以替换原有的语言菜单视频。
  【因为此工具只能输出 AVC ,非 HEVC ,所以 HDR 效果肯定没有……】

  使用超文本工具,打开 BDMV/JAR/11111/startup.properties 文件。
  修改 button.total 个数,删减多余 button.info 项目,修改相应坐标。

  playlist.sus=0 是语言菜单视频 MPLS 编号,新制作的语言菜单视频可以作为新的文件指向,无需替换原有。



【补充】
  可以尝试修改 ObjectMovie 指令。
  找到 FirstPlayback 关联的 ObjectMovie 指令,将最后的 JumpTitle titleNumber 语句中的 titleNumber 改为 0 ,即直接跳转到 TopMenu。

评分

参与人数 1大洋 +66 收起 理由
cnlang + 66 厉害了我的神!

查看全部评分

回复 支持 反对

使用道具 举报

49

主题

1608

帖子

3179

积分

版主

大洋
10474
阅读权限
140
发表于 20-3-12 02:18 | 显示全部楼层
问题三:
  这里只是代码内部的功能判定标志,对实际播放没有影响。
回复 支持 反对

使用道具 举报

49

主题

1608

帖子

3179

积分

版主

大洋
10474
阅读权限
140
发表于 20-3-12 13:19 | 显示全部楼层
本帖最后由 nnezyj 于 20-3-12 13:24 编辑
hugh217 发表于 20-3-12 10:29
大佬注意休息噢,还是身处国外,有时差。。。ms多想了。。


方法一:
  用支持 UHD 的 BDedit v0.44 版本及以上,找到 First Playback 调用的 ObjectMovie ,找到指令最后,应该就能看到 JumpTitle 语句

方法二:
  使用 BDR 分解 UHD 原盘,得到工程文件。
  使用 SUHD 新开一个工程,对比此工程文件,构建 Scenario Tree 部分,在 First Playback 下修改 JumpTitle 语句。
  这里需要构建完整的 Scenario Tree 部分,MUX 出来的 index.bdmv 、MovieObject.bdmv 替换原盘文件
回复 支持 反对

使用道具 举报

49

主题

1608

帖子

3179

积分

版主

大洋
10474
阅读权限
140
发表于 20-3-12 14:35 | 显示全部楼层
本帖最后由 nnezyj 于 20-3-12 14:38 编辑
hugh217 发表于 20-3-12 14:11
大佬可以发一份bdedit吗,搜到最高4.0


没有,这东西目前还需要向软件作者捐助获取!
http://bdedit.pel.hu/

不过有一个不是方法的方法!

使用 HxD 打开 index.bdmv 及 ObjectMovie.bdmv 文件,修改头部的 0300 为 0200。
然后使用目前免费使用的 BDedit 打开 index.bdmv,就可以修改 ObjectMovie 内的指令了,修改完毕保存。
再用 HxD 打开 index.bdmv 及 ObjectMovie.bdmv 文件,修改头部的 0200 回 0300。

点评

白老师666  发表于 20-3-12 18:39
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表