BDedit - A tool to view and edit the BDMV structure of the Blu-ray Disc.

Main features of BDedit:

 Full view, edit and save of index.bdmv
   Insert, delete, edit AppInfoBDMV, Titles, First Playback and Top Menu
Insert, delete, load, save ExtensionData
Version 1.00, 2.00 and 3.00 supported
  Full view, edit and save of MovieObject.bdmv
   Insert, delete, edit MovieObjectss
Insert, delete, edit Commands
Run and trace Commands
Insert, delete, load, save ExtensionData
Version 1.00, 2.00 and 3.00 supported
  Full view, edit and save of sound.bdmv
   Insert, delete, load, save, play sound entries (.wav format)
Insert, delete, load, save ExtensionData
Version 1.00, 2.00 and 3.00 supported
  Full view, edit and save of all .mpls file
   Edit all fields of AppInfoPlayList
Edit all fields of PlayList (PlayItem, STN)
Insert, delete, edit STN streams and stream properties
Apply STN properties changes to the corresponding clip file
Edit all fields of SubPath and SubPlayItem
Edit all fields of PlayListMark
Load/Save chapter info (time, frame or PTS format)
Insert, delete, load, save ExtensionData
Version 1.00, 2.00 and 3.00 supported
  Full view of all .clpi file
   View all fields of ProgramInfo
View and edit fields of ClipInfo
Insert, edit, delete ATC delta entries
View all fields of SequenceInfo
Edit fields of STC sequences
View all fields of CPI
Insert, delete, load, save ExtensionData
Version 1.00, 2.00 and 3.00 supported
  Full view, edit and save META/DL files
   View BD title from xml files
Create META/DL folder, xml files
Copy, rename, resize jpg and jfif images
Delete xml and image files
View jpeg and jfif thumbnails
  Extension Data editor
   View, edit, load, save Extension Data
Show the following standard entry content as data and as logical structure:
- PIP metadata
- HDMV LPCM downmix coefficient
- STN table SS
- SubPath entries extension
- Active video window
- Extent Start Point
- ProgramInfo SS
- UHD disc info
- HDR metadata for UHD BD
  Full view of all .bdjo file
   View all fields of AppCacheInfo
View all fields of TableOfAccessiblePlayList
View all fields of KeyInterestTable
View all fields of TerminalInfo
View all fields of FileAccessInfo
View all fields of ApplicationManagementTable
  Demux and save all stream from the .m2ts files
   Demux and save the elementary streams
Demux and save the PES streams
Demux and save PG streams in HD SUP format
Demux and save IG streams in .mnu format
Demux and load IG stream to Menu viewer/editor
  Menu viewer/editor and emulator
   View/Edit the whole IG composition (BOGs, Buttons, Effects)
View all the bitmap objects and palettes
Load/Save bitmap object (.png format)
Save palette (Scenarist Designer .pxml or Adobe .act (colors only) format)
Load palette (Adobe .act)
Run and trace button commands
Play the whole menu as you can see on a BD player
(interactivity, animation, cropping and palette effects, sounds, custom background)
Customizable color borders for the objects and frames
Drag the buttons on the screen
Load/Save the IG stream in .mnu format
  Mux the menu to an .m2ts file
  Run and trace commands
   The built-in emulator can run and trace movieobject
or button commands
You can view/edit the register (PSRs, GPRs) values
  Region code checking remover
   A simple tool which can change the checking program code
to verify your player Region Code
  Convert BD-ROM 2.00 structure to 3.00 (UHD)
   Converts the whole structure to 3.00, adds the neccessary extensions,
Changes the version numbers in index.bdmv, movieobject.bdmv, sound.bdmv, *.mpls, *.clpi, *.bdjo

- Quick overview -


 Ins:Load a new sound entry after the selected line
The wav format is strictly 16 bit, 48 kHz, RAW PCM.
 Shift-Del:Delete a sound entry 

This window is invisible if sound.bdmv doesn't exist (in AUXDATA folder).
You can create a new sound.bdmv on the Option page with 'Create sound.bdmv' button


First playback:
First playback is a special title (title number=0xffff).
Object type: HDMV or BD-J (if no file in BDJO folder you cannot choose BD-J)
HDMV means this title is related to a movieobject from the MovieObject.bdmv
BD-J means this title is related to a BDJO file
Title playback type: Movie or Interactive (menu)
Movie object id: an object from the Movie objects
BDJO filename: a filename (without extension) from the BDJO folder

Top menu:
Top Menu is a special title (title number=0).
This title starts when you press the Menu button on your player

Title: title number (1-999)
object t.: as above.
title search:
permitted: Title Search (UO) into this title is permitted.
prohibited1, prohibited2: Title Search (UO) into this title is prohibited
playback t.: as above
Oid/file: as above
Double click on a title jumps to the corresponding movieobject/BDJO.

discard: The Movie Object is discarded when Menu Call (UO) is executed.
suspend: The Movie Object is suspended and maintains its instance when Menu Call (UO) is executed.
commands: number of navigation commands in the Movie Object
If you don't see the ExtensionData info resize the main window until it appears at the bottom right corner.

Operand types:
GPR: General Purpose Register (The player has 4096 GPRs in total)
PSR: Player Status Register (The player has 128 PSRs in total)
Imm.: Immediate value, a 32 bit unsigned integer
You can see the register values and the purpose of the PSRs on the Status page
and change the values in the register box at the bottom
 Ins:Insert a new program line after the selected line 
 Del:Delete the selected program line 
 Shift-N:Change the selected program line to a NOP command 
Double click on a GoTo command jumps to the target line.
Double click on a Play command jumps to the PLAYLIST page and loads the corresponding .mpls file.


Use right click (Pop up menu) on PlayItems and SubPlayItems to change mode (Edit/Read-only).
Use Insert and Shift-Del on PlayItems and SubPlayItems to insert and remove lines.
Double click on a PlayItem or a SubPlayItem jumps to the CLIPINF page and load the corresponding .clpi file.
If you change the IN time value of a PlayItem the program can update the OUT time value (or the length),
the SubPlayItem(s) In time and OUT time values and the PlayListMark mark time values


Save PID: Demux the selected stream. You can choose to save the elementary stream (default) or the PES stream.
If the stream is Presentation Graphics (subtitle), it can save .sup format (See Options).
If the stream is Interactive Graphics (menu), it can save .mnu format (See Options).

-> Menu: Select an IG stream to activate this button and use it to load the IGS to the Menu tab

Play: You can play the selected m2ts with your system's default player.

Find: You can find which PlayItem or SubPlayItem use this clip.
Press once and the program collects all the references of the clips (not only the actual).
There is a check function also which gives an error message if a referred m2ts file doesn't exist.

For example you want to remove the FBI warning before the main movie.
Play the m2ts files, to find the unwanted clip (the warning, PG, etc.).
If you found click to Find.
In the 'Referenced by' box you can see which PlayList (mpls) and which PlayItem (p) or SubPlayItem (s) call this clip.
Double click on a reference jumps to the PLAYLIST page and loads the corresponding mpls file.
You can use the Find button here.
It will give you a list, which movie object's command plays this PlayList.
Switch to the BDMV tab, select the listed object and command and press Shift-N.
It will change the command to NOP (do nothing). Follow these steps until you delete
all occurrences.
Unfortunately sometimes the program cannot found any command which plays this PlayList directly.

You can edit the ClipInfo fields and the ATC delta entries.
Right click to change mode (Edit/Read only), Insert makes a new entry Shift-Delete deletes an existing one.
4. Menu

(Click on the tabs (BOGs, Effects, Objects, Page view) to view all subscreen)

BOGs window

Button Overlap Groups (BOGs):
default valid button: The button from the group which is visible at the start
number of button: The number of buttons in this group (see the table below)
Double click on default valid button: changes the value of it
($ffff->first button id->second button id->...->$ffff->...)
Single click on default valid button: set the button table height to one row
Single click on number of buttons: set the button table height to fit all button
Right click on the table (pop up menu): change Edit or Read only mode
Ins: Add a new BOG
Shift-Del: Deletes the selected BOG

value: button_numeric_select_value
a.act.: auto_action_flag
X: button_horizontal_position
Y: button_vertical_position
upper: upper_button_id_ref
n.start: normal_start_object_id_ref
n.end: normal_end_object_id_ref
n.repeat: normal_repeat_flag
s.sound: selected_state_sound_id_ref (from sound.bdmv)
s.start: selected_start_object_id_ref
a.start: activated_start_object_id_ref

Click on an object id to see the object.
Double click on an object id to animate.
Click on a sound id to play the sound.
Right click (pop up menu): Changes Edit/Read only mode

Double click on SetButtonPage or GoTo command to follow
Ins: Insert NOP command
Shift-Del: Delete the selected line(s)
Ctrl-C: Copy the selected line(s)
Ctrl-X: Cut the selected line(s)
Ctrl-V: Paste the previously copied/cutted lines after the selected line
Shift-N: Change the selected line to NOP

Move the cursor to the palette and you can see the palette entry properties.
On the right you can see the transparency values.
White represents the full opacity, empty circle means full transparency
The color 255 shall to be black (#000) and full transparent.

Objects window

Object referenced format: PAGE:BUTTONx or PAGEy
PAGE: the page id (decimal)
BUTTON: the button id (hexadecimal)
x: [n,s,a] = [normal state, selected state, activated state]
y: [i,o] = [In effect, Out effect]

Page view window

On page dropdown you can use Ins, Del, Ctrl-C, Ctrl-V to insert, delete, copy and paste a page.
Press the Start button to play the menu.
Navigation buttons: U: up, D: down, L: left, R: right, Sel: Enter
You can navigate in the menu with mouse too.
You can change the button positions by dragging the button using the right mouse button.
While dragging hold the
Ctrl: to horizontal only,
Alt: to vertical only,
Alt+Ctrl: to grid only,
Shift: double speed moving.

Guide for Blu-Ray Menu Editing on Doom9



7. Options

Region code:

Country code:
ISO 3166-1 (Two-character coded according to ISO 646)

Audio capability:
DRA capabilityDRA Extension sub-stream 00b : Incapable
01b : Stereo capable
10b : Surround capable
DRA Core substream 00b : Incapable
01b : Stereo capable
10b : Surround capable
MLP audio 00b : Incapable
01b : Stereo capable
10b : Surround capable
Dolby Digital audio 01b : Stereo capable
10b : Surround capable
Extension substream 00b : Incapable
01b : Stereo capable
10b : Surround capable
Core substream01b : Stereo capable
10b : Surround capable
Dependent substream 00b : Incapable
01b : Stereo capable
10b : Surround capable
Independent substream
(Dolby Digital)
01b : Stereo capable
10b : Surround capable
LPCM capability192kHz 00b : Incapable
01b : Stereo capable
10b : Surround capable
48kHz and 96kHz01b : Stereo capable
10b : Surround capable

8. Status

PSRs: List the functions of the PSR registers and their values
GPRs: List the non-zero valued GPR register values.
Reset Regs: Reset the registers to their initial values.
Get new version: If inactive then you are using the latest version of BDedit.
If active you can update to the latest version.
If invisible then BDedit cannot connect to the net to check the actual version info.
Clear: Clear the status window.
Near this button you can find your serial number.
(Doube click on it to select)

9. About

Extension Data

Version history

Change log:
Changes for 0.58 08/01/2024
  • Insert and delete ExtensionData entries
  • Improved ExtensionData functions
  • Bug fixes
Changes for 0.57 01/06/2024
  • Show and edit Stream Model and User Interface Model in IG menu
  • Bug fixes
Changes for 0.56 03/21/2023
  • The open and save dialog for objects and palettes handle multiple selection
  • Load function checks the filenames for oXXXX and pYY strings
    (where XXXX the hexadecimal object id, and YY the hexadecimal palette id)
    if all selected file has object id and replace object is checked then it uses the ids
    from the filenames instead of the selection of the objects grid
  • Version change modify sound.bdmv too
  • Bug fixes
Changes for 0.55 03/10/2023
  • New Open dialog with META images, titles and BD-ROM version number
  • Create and save META xml
  • Edit Disc_info UHD Extension (use 'Space' to toggle)
  • Bug fixes
Changes for 0.54 01/02/2023
  • Convert a BD 2.00 structure to BD 3.00
  • Change all STN in a PlayList with 'Apply to All' button
  • Bug fixes
Changes for 0.53 08/15/2022
  • Insert necessary extension data on STN changes in UHD BD
  • Bug fixes
Changes for 0.52 03/15/2022
  • Create and Delete In and Out Effect
  • Create reverse effect from In or Out Effect
  • Insert, Delete, Modify Effect windows
  • Insert, Delete, Modify Effect sequences
  • Insert, Delete, Modify Effect Composition Objects
  • Help to modify the effect sequences based on the first and last sequence (Moving 1 or 2 objects)
Changes for 0.51 02/13/2022
  • Highlight active grid header
  • Copy/paste Page on Menu tab using Clipboard (Ctrl-C, Ctrl-V)
  • Copy/paste BOG on Menu tab using Clipboard (Ctrl-C, Ctrl-V)
  • Copy/paste Commands using Clipboard (Ctrl-C, Ctrl-V)
  • Keyboard shortcuts for mode change (Ctrl-E, Ctrl-R, Ctrl-T for Edit, Read-only and Toggle)
  • Unified keyboard shortcuts for insert and delete records:
    Insert after: Ins
    Insert before: Shift-Ins
    Delete: Shift-Ins
  • Page preview on Menu tab
  • A lot of bug fix
Changes for 0.50 05/13/2020
  • More HDR metadata from playlist extension
  • Bug fixes
Changes for 0.49 04/22/2020
  • Bug fixes only
Changes for 0.48 04/04/2020
  • Speed up file load from network folder
  • Handle JFIF images in META/DL folder
  • Lot of bug fixes
Changes for 0.47 03/03/2020
  • Chapter format contains PlayListMark type
  • Bug fixes
Changes for 0.44 10/23/2019
  • Support for UHD BD
  • Support for HDR metadata extension
  • Support for Dolby Vision substream
  • Show bdmt_xxx.xml info and jpeg files in META/DL folder
  • Lot of bug fix
Changes for 0.40 12/22/2012
  • New controls (button, checkbox, radio, dropdown, edit)
  • Load palette from file to Menu/Objects (Adobe .act format)
  • Lot of bug fix
Changes for 0.39 11/01/2010
  • ExtensionData structure views, rewritten data edit/view
  • Bug fixes (including Acces violation at start)
Changes for 0.38 09/17/2010
  • connection_condition and ref_to_STC fields in PlayItem
Changes for 0.37 09/16/2010
  • Multi instance running (separated TEMP files)
  • Bug fixes
Changes for 0.36 09/15/2010
  • 3D extension commands (SetOutputMode, SetStreamSS)
  • ExtensionData 3D extensions
  • Player settings options
  • Insert/delete PlayItems
  • Bug fixes
Changes for 0.35 07/30/2010
  • Handle some 3D extension
  • Bug fixes
Changes for 0.34 05/08/2010
  • Drag and Drop support
Changes for 0.33 05/05/2010
  • Insert/delete ATC delta entries in ClipInfo
  • Find function in CLIPINF checks all m2ts file referenced by mpls files
  • Bug fixes
Changes for 0.32 04/24/2010
  • 'Apply to clpi' function to copy the stream attributes of the playlist to the clipinfo.
  • Image on About window
Changes for v0.31 04/18/2010
  • Insert/delete Pages
  • Insert/delete BOGs (maintain buttons)
  • Insert/delete Buttons (maintain ids, neighbours, commands)
  • Dragging button on graphic page (free, x/y only, grid only, 2x)
  • Load menu from .m2ts file
  • Load menu from command line parameter
  • Bug fixes
Changes for v0.30 04/15/2010
  • Insert/delete image objects
  • Insert/delete palettes
  • Cut, copy, paste of movieobject and button commands
  • Insert/delete button commands
  • Easy NOPing for button commands
  • EP fine and EP coarse table in CPI, CLIPINF
  • Lot of bug fix
Changes for v0.29 04/12/2010
  • Mux capaility for IGS menu
  • Palettes grid with references
  • Save palette at Adobe .act or Scenarist Designer .pxml format
  • Option to replace object and palette at loading image
  • Lot of bug fix
Changes for v0.28 04/08/2010
  • Object tab in Menu, Show/Load/Save bitmap objects (shows references)
  • Effect preview
  • Improved graphic performance
  • Load/Save IGS from/to .mnu file
  • Create new Menu
  • Create sound.bdmv
  • Option to use 8.3 filenames
  • Option to associate BDedit to .bdmv
  • Improved Find function on CLIPINF (shows references)
  • Bug fixes (including some ancient one)
Changes for v0.27 03/31/2010
  • Insert/Delete object updates the Title's object_id references
  • Save program in binary format (MovieObject commands)
  • Edit fields of PlayItems
  • IN time value change can update OUT time value,
    SubPlayItem IN/OUT time values and PlayListMark mark time values
  • Edit fields of SubPlayItem
  • Edit fields of Button commands
  • Reset registers can fill up the PSRs with 'real' values
    (instead of standard init values)
  • New Commands Table (invalid and forbidden opcodes with different colors)
  • Bug fixes
Changes for v0.26 03/29/2010
  • Save program list (MovieObject commands)
  • Easier version update
  • Internet access has rewritten to a separate thread
  • One Effect tab instead of InEffects and OutEffects
  • Bug fixes (including transparency and cropping issues)
Changes for v0.25 03/25/2010
  • View/Edit/Save sound.bdmv (Delete/Play sound,
    Save/Load sound to/from .wav file)
  • Delete, View, Load, Save ExtensionData() from/to sound.bdmv
  • Menu page view can play button sound on selected
    and activated states
  • Double click on s.sound or a.sound fields
    of Button table plays the selected sound
  • Display palette color and transparency values
Changes for v0.24 03/22/2010
  • There is a mandatory delay at the program start
    Every copy of BDedit has a serial number since v0.17
    You can register this serial with donation
    (min. 10 EUR) or lot of help.
    Registered users skip the 10 sec waiting procedure.
  • Handle default activated button: after a
    User Time Out period a button can activate
  • Bug fixes with IGS load and tracing commands
Changes for v0.23 03/21/2010
  • Rewritten button animation
    (animate on/off, all button states)
  • More double click follow
  • Improved tracing
  • Bug fixes
Changes for v0.22 03/09/2010
  • Rewritten graphic engine for menu displaying
  • Show InEffects and OutEffects including palette changing
    and cropping in realtime (option to disable)
  • Built-in background graphic and loadable background image
  • Two view modes: 1:1 or fit-to-window (keep aspect ratio)
  • Selectable bitmap preloading
  • New infos on CLIPINF tabsheet: ClipInfo, CPI, ExtensionData
  • Play button for an external player to play m2ts on CLIPINF
  • New tabsheet: BDJO
    Read xxxxx.bdjo
    (AppCacheInfo,TableOfAccessiblePlayLists, KeyInterestTable,
    TerminalInfo, FileAccessInfo, ApplicationManagementTable)
  • Minor bug fixes
Changes for v0.21 03/13/2010
  • Page View on Menu tabsheet with working menu structure
    - navigate with five button (up, down, left, right, select)
    or mouse (limited to basic buttons)
    - display animated 'selected' and 'activated' state of buttons
    ('normal' state not animated)
    - run button commands in an emulator (read/write PSR and GPR registers,
    enable/disable buttons, etc.)
    - trace button commands (run step by step) follow on BOGs
    - customizable colored infos on buttons (button id, object id)
    - customizable colored button and window frames
    - show command line on activation (Jump Title, Play Mk, etc.)
  • Follow SetButtonPage and GoTo command on BOGs tabsheet
    (double click on command line)
  • Follow Jump Title to the BDMV tabsheet from button commands
  • Fixed bug with palette in object view
  • Fixed bug with command editing
  • Fixed bug with command check
  • Fixed bug with SetStream and SetSecondaryStream command line display
  • Run and trace MovieObject commands
  • Beep on invalid command (on/off)
  • Easy NOPing (Shift-N)
  • Improved command line with PSR comments
  • Delete, View, Load, Save ExtensionData() from/to MovieObject.bdmv
  • View PSR and GPR values on Status tabsheet (displays nonzero only)
  • Reset register values
  • View/Edit PSR and GPR values on the Menu tabsheet
  • Double click on ProgramInfo opens the m2ts file
    with the system's default player (or load the IGS if you click on it)
  • Find tool to figure out which PlayList plays an m2ts file
    and wich movie object plays a PlayList
    (useful to remove FBI warning and other annoying things)
Changes for v0.20 03/06/2010
  • Improved menu display (display animated button, cache RLE bitmap)
  • Delete, View, Load, Save ExtensionData() from/to Playlists and index.bdmv
  • Insert/Delete/Edit STN table
  • Insert/Delete/Edit Subpath
  • Edit SubPlayItem
Changes for v0.19 02/06/2010
  • Show IG stream content on Menu tabsheet
    Pages, BOGs, Buttons, Commands, Button bitmap
    Objects, Palettes
    In and Out Effect windows
    In and Out Effect effects
Changes for v0.18 01/31/2010
  • New Option settings
  • Save stream with a selected PID in Clipinfo
    (elementary stream, PES, standard SUP)
  • Follow GoTo, Jump Title, Play PL, etc. in
    Navigation commands (Double click)
  • Load/Save ExtensionData() to/from index.bdmv
  • Check (m2ts) files in STREAM folder
  • Warn if mandatory folder is missing
  • Progress bar, elapsed and remaining time
  • Cancel button (Stops only at PES packet boundary)
  • 'About' tabsheet with program history
Changes for v0.17 04/03/2008
  • Load/Save Chapter info can handle multiple PlayItems
  • Hotkeys
  • Check new version
  • Get serial from net
  • Link to pel.hu
Changes for v0.16 03/19/2008
  • Read/write index.bdmv
    Edit FirstPlayback
    Edit TopMenu
    Insert/delete/edit Titles
    It can remove the extension data
  • Read/write MovieObject.bdmv
    Insert/delete/edit Movie Objects.
    Insert/delete/edit Commands (Maintain GoTo addresses)
    It can remove the region code checking
  • Read/write xxxxx.mpls
    Show/edit AppInfoPlayList
    Show PlayItems
    Show Multi angles
    Show/edit STN table with stream entries/attributes
    Show SubPath/SubPlayItems/SubClips
    Show/edit PlayListMark (Insert/delete/edit items)
    Load/Save Chapter info (three formats: PTS, frame, time)
Changes for v0.15 03/18/2008
  • Chapter export/import
  • New application icon
  • New pagecontrol
Changes for v0.14 03/07/2008
  • Show Multi angles
  • Show STN table with stream entries/attributes
  • Show SubPath/SubPlayItems/SubClips
  • Show PlayListMark
  • Add/delete titles
  • Add/delete objects
  • Add/delete commands (with maintain the GoTo addresses)
Changes for v0.13 02/27/2008
  • Show/Edit movieobject commands
  • Region code checking remover
Changes for v0.12 05/22/2007
  • Edit AppInfo
  • Read zzzzz.clpi
    Show ProgramInfo
Changes for v0.11 05/16/2007
  • Show PlayItems
  • Show ProgramInfo
First release v0.10 05/16/2007
  • Read index.bdmv
  • Read MovieObject.bdmv
  • Read xxxxx.mpls


If you've decided to make a donation for my project
click the donate button below for PayPal
Donate with minimum amount of 10 EUR or 15 USD
to get one year subscription for the latest versions
You will receive a download link to get the software.

Donate via PayPal:


BDedit - BD structure edit

Guide for Blu-Ray Menu Editing
Guide for adding a subtitle on a Blu-Ray Disc keeping the original menu
Combine Two Part Blu Rays...
Movie only, stream forcing (audio & Subtitles)