Log in

View Full Version : H.264 Patcher and BD-Tools


Pages : 1 [2]

Sharc
21st September 2017, 22:34
A spanish user ask me about a problem playing (with a BDplayer) a custom BD with a h264 stream like this:



Maybe the problem is the subs included: https://en.wikipedia.org/wiki/EIA-608

Is that stream allowed in BluRay specs?
Do you know a tool to modify the h264 deleting the EIA-608 subs?

Sample (https://mega.nz/#!tRMnnawL!u1Zirc0w15jwVl7pFAwoD3w-l7gZc1lCiPCp8yeIy1k)
I don't know about Blu-ray compliance.
You can remove the EIA-608 caption by re-encoding the stream.

tebasuna51
22nd September 2017, 07:17
You can remove the EIA-608 caption by re-encoding the stream.

Of course, I was searching a way without recode.

sneaker_ger
31st January 2018, 13:47
Thanks for those links in the thread for updating sar. I seem to be getting an error and wondering if you have any insight. Below is my command followed by the error. Any help you can provide would be awesome. The input file is an MKV made from BD3D2MK3D. Thanks.

h264Modify.exe F:\Movies\ULTRON.mkv -sar 1:2 F:\Movies\ULTRON-UPDATED.mkv

ERROR reading bitstream: read past NAL end

H.264 Stream Modifier - version 2.00 (build: Aug 24 2017)

ERROR: h264Modify.exe - cannot copy bitstream F:\Movies\ULTRON.mkv
h264Modify doesn't work directly on mkv container. You have to demux, modify, then mux again.

mkvextract tracks "F:\Movies\ULTRON.mkv" "0:F:\Movies\ULTRON.264"
h264Modify.exe F:\Movies\ULTRON.264 -sar 1:2 F:\Movies\ULTRON-UPDATED.264
mkvmerge -o "F:\Movies\ULTRON-UPDATED.mkv" --stereo-mode 0:1 "F:\Movies\ULTRON-UPDATED.264" --no-video "F:\Movies\ULTRON.mkv"
(You may have to set a few flags again (e.g. for 3D) and/or get trouble if the file is vfr. Then you have to manually set flags and copy timecodes from source. See mkvextract and mkvmerge docs in that case.)

outgoing
13th October 2018, 23:27
First of all, thank you very much for providing us with these great tools. My issue is pure novice. When I want to create the output from mpls to json it says can't create the file. This is the syntax I write. Any help is more than appreciated.


C:\>MPLS2JSON 00800.mpls 00800.json

Save failed: 00800.json

ocean
14th October 2018, 05:04
Welcome to the forum, command-line (CLI) run as administrator.

tebasuna51
14th October 2018, 10:07
As administrator or run in a folder owned by the user.

C:\ (the root folder and others) is protected to write for standard users.

outgoing
14th October 2018, 10:33
Thank you friends for the welcoming and help, the cause is the one you indicated, the lack of habit of working on cli commands. :thanks:

KonJuruing
2nd June 2019, 13:59
Hello videofan3d,
I use these BDTools 2.30 since several month, really great helpfull tools :-)
Now, I have some issues with subtitle depth.
Inside a playlist file there are different planes for different subtitles.
After reconvert from .json to .mpls ALL .pgs subtitle streams are set to plane#0.

short example:
(original .mpls file with different planes after conversion to .json)
"PG_stream": [
{
"PG_textST_offset_sequence_id_ref": 11,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 12,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 1,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 2,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 3,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 4,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 5,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 6,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 7,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 8,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 13,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 15,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 9,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 14,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 10,
"reserved01": 0,
"dialog_region_offset_valid_flag": 0,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
}
],
"IG_stream": []

After reconversion this .json file to .mpls the different planes are gone, just one plane#0.
After another conversion of this new .mpls once again to .json I see that the content has chainged:

"PG_stream": [
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
},
{
"PG_textST_offset_sequence_id_ref": 0,
"reserved01": 0,
"dialog_region_offset_valid_flag": 1,
"is_SS_PG": 0,
"is_top_AS_PG_textST": 0,
"is_bottom_AS_PG_textST": 0
}
],
"IG_stream": []

Maybe you can have a look at this ?

For editing .json file I use Free JSON Editor:
https://www.mediafreeware.com/free-json-editor.html

If you need more infos, just let me know :-)

:thanks:

videofan3d
3rd June 2019, 20:30
.. I have some issues with subtitle depth.
Inside a playlist file there are different planes for different subtitles.


Finally someone pointed to this issue!
Someone shows he/she still uses these little tools :)

Version 2.30 uploaded to this web has a bug in 3D subtitle depth extraction. You can check this using command
mpls2json -selftest 00000.mpls
when in case of BD3D it will not re-create identical .mpls.

Fixed version 2.31 uploaded.

KonJuruing
7th June 2019, 17:31
Hello vidofan3d,

thank you so much for fast fixing.
I just tested version 2.31 on a seamless branching mpls file:

AFTER USING NEW VERSION 2.31 ALL PLANES FOR 3D SUBTITLES ARE SAME LIKE ON ORIGINAL MPLS :)

Thank you once again for fixing.
Especially for me, your BDTools is the best software for editing blu-rays.
Before, I used bdedit...but yours are way better (for me) :)
:thanks::thanks::thanks:

frank
12th June 2019, 15:09
I want to set the SEI frame-packing info
h264Modify mkv3d_3d.264 -frame_packing SBS film_3d.264
but h264Modify doesn't show that info.

NAL position 0x000158A0 (88224)
nal_unit_type: 7 "Sequence parameter set"
profile_idc = 100 "High"
constraint_flags = 16 (0x10)
constraint_set0_flag = 0
constraint_set1_flag = 0
constraint_set2_flag = 0
constraint_set3_flag = 0
constraint_set4_flag = 1
constraint_set5_flag = 0
level_idc = 40
time_scale / 2 = 24000
num_units_in_tick = 1001
fixed_frame_scale = 0Nothing changed. I miss the frame-packing field.
3D encodings with ffmpeg / x264 and --frame-packing=3 also don't show the field. But it should be there.
The other infos can be changed.

videofan3d
17th June 2019, 20:07
I want to set the SEI frame-packing info
h264Modify mkv3d_3d.264 -frame_packing SBS film_3d.264
but h264Modify doesn't show that info.

NAL position 0x000158A0 (88224)
nal_unit_type: 7 "Sequence parameter set"
profile_idc = 100 "High"
constraint_flags = 16 (0x10)
constraint_set0_flag = 0
constraint_set1_flag = 0
constraint_set2_flag = 0
constraint_set3_flag = 0
constraint_set4_flag = 1
constraint_set5_flag = 0
level_idc = 40
time_scale / 2 = 24000
num_units_in_tick = 1001
fixed_frame_scale = 0Nothing changed. I miss the frame-packing field.
3D encodings with ffmpeg / x264 and --frame-packing=3 also don't show the field. But it should be there.
The other infos can be changed.

In fact, the frame_packing info is inserted as SEI message


nal_unit_type: 6 "SEI"
nal_ref_idc: 0
payload_type: 45 "frame_packing_arrangement"
payload_size: 7

frank
18th June 2019, 12:19
Ok, thanks, it works, I verified it with H.264 Analyzer.

But how did you display this info?
h264Modify version 2.0 without options
h264Modify.exe film_3d.264 only shows nal_unit_type 7 but not nal_unit_type 6. This info is missing.
Please, correct the issue.

Why is h264Modify so important?
Today we can encode much faster using HW encoders - Intel qsv, NVIDIA nvenc. But this tools can't inject the SEI frame_packing info. E.g. for 3D in MP4 (Google Cardboard VR) this metadata is important.

outgoing
27th August 2019, 23:31
Also, once done the conversion of a mpls to json, the information it gives is great, but if when you do the conversion again to .mpls no longer plays the movie, at least in my case, what good is it to change parameters if later the file is not valid. Sure I'm missing something, how to change some parameter in the json and convert it properly to mpls. Sorry, maybe these are obvious questions for some but not for me.

edited:
Sorry, editing with wordpad everything fine. Thanks!!

pel9
3rd November 2019, 11:35
I reversed some info about the Dolby Vision stream.
The next byte after the number_of_PiP_PG_textST_stream_entries_plus in the STN_table() is the number_of_DV_video_stream_entries*
The value could be 0 or 1.
If the value is 1 then at the end of STN_table() there is a stream_entry() and stream_attributes() structure.

The stream_entry() has a new stream_type (4) and the structure is:
length 8 bit (=9)
stream_type 8 bit (=4)
reserved 8 bit
ref_to_stream_PID_of_DVstream* 16 bit
reserved 40 bit

The stream_attributes() structure is similar to the main video stream

* These names are guessed by me

Also reversed some extension
http://bdedit.pel.hu/pic/HDRmetadata.png

Emulgator
9th November 2019, 23:50
Ah, welcome back and many thanks for your work !

TitanFan
2nd January 2020, 16:49
So, I'm looking at a playlist that references the same m2ts file multiple times with different in_time and out_time values. For example mplsdump on a playlist reports 45 clips, and each clip has an in_time and out_time value. When I convert the playlist to a json file, I can see the in_time and out_time values, but I'm not sure what the format is?

For example:

"Clip_Information_file_name": "00351",
"Clip_codec_identifier": "M2TS",
"ref_to_STC_id": 0,
"reserved01": 0,
"is_multi_angle": 0,
"connection_condition": 1,
"IN_time": 11042287,
"OUT_time": 16109850,

What is the in_time and out_time format? How can I convert this format to hh:mm:ss time format?

videoh
2nd January 2020, 16:54
What is the in_time and out_time format? How can I convert this format to hh:mm:ss time format? Divide by 45000 to get the total time in seconds. Then you can work out the hours, minutes, and seconds from that.

TitanFan
3rd January 2020, 04:37
Thanks - dividing by 45000 worked. I checked a BDedit playlist report and it has the same in_time/out_time as BDTools. For some reason these playlist times are always 10-15 seconds off when I check the video....I can play the playlist file and it selects the video parts correctly, so I'm not sure why these playlist reports are showing incorrect times. Good news is that the times are off by a consistent amount, so I can just subtract the 10-15 seconds off each time to correct the problem.

koka
21st April 2020, 22:35
Which "command" is true?
How in MPLS2JSON.exe:
{
"operation_code": 1212154624,
"operand_1": 10,
"operand_2": 65535,
"command": "Greater_or_Equal reg_10 65535"
}
or other::
{
"operation_code": 1212154624,
"operand_1": 10,
"operand_2": 65535,
"command": "Not_Equal reg_10 65535"
}

koka
21st April 2020, 23:00
structure is:
length 8 bit (=9)
stream_type 8 bit (=4)
reserved 8 bit
ref_to_stream_PID_of_DVstream* 16 bit
reserved 40 bit



"STN_table": {
"stream": [
{
"type": 1,
"pid": 4113,
"stream_coding_type": "H.265",
"video_format": "2160p",
"frame_rate": "23_976",
"reserved_uhd": 18,
"reserved01": 16384
},
...
{
"type": 4,
"pid": 5376,
"stream_coding_type": "H.265",
"video_format": "1080p",
"frame_rate": "23_976",
"reserved_uhd": 34,
"reserved01": 0
}
where:
ru=st.get("reserved_uhd", 0)
if ru:
if ru==0x12: uhd|=0b10010 #HDR10plus and HDR10
elif ru==0x80: uhd|=0b10000 #HDR10plus
elif ru==0x22: uhd|=0b00100 #DV

videofan3d
28th April 2020, 18:46
Which "command" is true?
How in MPLS2JSON.exe:
{
"operation_code": 1212154624,
"operand_1": 10,
"operand_2": 65535,
"command": "Greater_or_Equal reg_10 65535"
}
or other::
{
"operation_code": 1212154624,
"operand_1": 10,
"operand_2": 65535,
"command": "Not_Equal reg_10 65535"
}

Not_Equal seems to be correct.

(there is one-bit-shift bug in MPLS2JSON.exe)

koka
5th May 2020, 20:45
Reads through py2 or py3 index.bdmv, MovieObject.bdmv and part *.mpls of Blu-ray Disk into objects
Writes from objects to index.bdmv, MovieObject.bdmv
Reads and writes everything else through mpls2json.exe (https://github.com/abakum/tsmuxerCLI/blob/master/bdon.py)

karbre
2nd March 2023, 00:31
What is the unit of timestamps in a JSON generated by mpls2json? E.g. "IN_time": 30990600
It doesn't seem to be ms, ns or anything similar.

edit: found the answer, it's x/45000 seconds

r0lZ
26th March 2023, 14:04
h264Modify.exe film_3d.264 only shows nal_unit_type 7 but not nal_unit_type 6. This info is missing.
Please, correct the issue.

Why is h264Modify so important?
Today we can encode much faster using HW encoders - Intel qsv, NVIDIA nvenc. But this tools can't inject the SEI frame_packing info. E.g. for 3D in MP4 (Google Cardboard VR) this metadata is important.
I second this request.

I have the intention to write a GUI (integrated in BD3D2MK3D) to automatically demux the AVC stream from a MKV (2D or 3D), use your valuable h264Modify tool to either insert the correct frame-packing or to delete it, and remux the patched MKV.

Due to a serious bug in the BigScreen software, many hardware players are unable to display the 3D images correctly when that SEI message is present, as you can see here (https://forum.videohelp.com/threads/395498-BD3D2MK3D-Convert-3D-BDs-or-MKV-to-3D-SBS-TAB-or-FS-MKV-Support-thread/page14#post2684978). Hence the necessity for some users to remove it, even when it is correct. And of course, adding it in the too numerous 3D movies lacking it is obviously also important.

Of course, I would like to be able to show the current frame-packing mode in the GUI, or if it is not specified. It's important to avoid to demux, patch and remux the AVC stream without a good reason.

Can you add the information in the output (with also the current 3D mode please) ? Or an option to display only that information as soon as it is detected and exit immediately will be even better.

Thanks in advance.

[EDIT] If someone knows a free CLI tool able to display that information, please let me know.

r0lZ
28th March 2023, 12:21
My GUI is on the way, but I have just noticed this strange problem with this h264Modify command:

"h264Modify.exe" "in.avc" "out.avc" -frame-packing SBS:LR

(Or with any other frame-packing value, including DELETE).

This message is issued (probably in stderr):

H.264 Stream Modifier - version 2.00 (build: Aug 24 2017)

WARNING: h264Modify.exe - unknown option --frame-packing specified, ignoring...

However, --frame-packing (with -- instead of a single -) is never present in my code.

Note that if I use --frame-packing in the command, the warning becomes "unknown option ---frame-packing" ! (Again, the command works correctly.)

Unfortunately, due to this strange message, I have no simple way to verify if the command has worked correctly from my GUI. (Actually, the command has worked perfectly, despite the strange warning.)

Can you fix that little problem, please ? Thanks.

r0lZ
3rd April 2023, 09:31
I have finished the GUI, and I will release a new version of BD3D2MK3D soon.

But I have found another bug in h264 modify, and this one is very important. The frame-packing "Frame Alternation" is missing. It is available with the x264 option --frame-packing 5, but it is not possible to specify it in the command line of h264Modify. It's a pity, as it's probably the most necessary format after SBS and TAB. Videofan3D, can you add it ? Thanks !

outgoing
4th January 2024, 12:10
@videofan3d

In MPLS2JSON there is some kind of bug concerning the editing of dolby vision data in UHD mpls. Without making any modification in the original mpls of any UHD physical disc containing DV data if I convert this .mpls to .json and without changing any data I convert it back to mpls in this conversion process some data related to the DV feature is "lost" which makes that it cannot be activated in a player like Oppo. If I open the two mpls (original/converted without changing any data) in hex, you will see that there are a series of differences and these cause the "breaking" of the DV in a physical disc to be activated when it is played. Can you please check this.

Edited:
On the other hand, if I edit the .mpls in BDedit and make some changes, the resulting mpls has only changed the data that I have modified and keeps the DV data and it is possible to play the disc with DV in any player.

Edited1:
In .mpls belonging to 2D/3D Full Bluray disks, this is not a problem, it preserves the integrity of all data and only the data you have modified after the conversion is done.

From all this it is clear that your application was designed and works great for 2D/3D discs. On UHD discs with hdr10 it also works correctly in the tests I have done. It only works badly on all UHD discs that include Dolby Vision data. So when you go back to the edited .mpls some data is already lost or corrupted relative to DV.

videofan3d
7th February 2024, 23:10
From all this it is clear that your application was designed and works great for 2D/3D discs. On UHD discs with hdr10 it also works correctly in the tests I have done. It only works badly on all UHD discs that include Dolby Vision data. So when you go back to the edited .mpls some data is already lost or corrupted relative to DV.

It is possible - I prepared application based on BD2D/3D specification which I obtained (by chance) - and which is not freely available, unfortunately. In that time UHD extension was not specified, yet.

Provide me with few UHD Dolby Vision BD titles (meaning names) which suffer by this issue - I can try to look at it.

outgoing
7th February 2024, 23:26
You will see that any full UHD containing DV when editing the mpls specific to the main movie will corrupt the DV data. For example in my direct experience these titles i have worked with:
Belle (2021) UHD
Ghost in the Shell (1995) UHD
Kick-Ass 2 (2013) UHD
Sisu (2022) UHD

Thank you for continuing to develop these great editing tools.

von Suppé
8th February 2024, 11:06
@videofan3d

Any chance that you can add a "h265Modify.exe"? Being more & more busy with hevc streams, it would be great to be able to both read and edit metadata.

videofan3d
18th February 2024, 15:55
You will see that any full UHD containing DV when editing the mpls specific to the main movie will corrupt the DV data. For example in my direct experience these titles i have worked with:
Belle (2021) UHD
Ghost in the Shell (1995) UHD
Kick-Ass 2 (2013) UHD
Sisu (2022) UHD

Thank you for continuing to develop these great editing tools.

I found only Ghost in the Shell (1995) UHD but somehow I cannot reproduce the issue. Maybe I don't have the same release.

Could you send me couple of .mpls files which suffer with this reverse-construction problem?

outgoing
19th February 2024, 00:45
@videofan3d

Please check your pm.

DreckSoft
26th February 2024, 01:57
Thanks for those amazing tools!

I think I found a bug in h264Modify

I changed a file with MAIN@L4 to HIGH@L4.1 with -profile_idc High -level_idc 4.1

That did also change the resolution from 1920x1080 to 1920x1084

That results in an unplayable file. I edited it back to 1920x1080 with h264info and now it's fine.

Btw: In case you ever decide to cease development, PLEASE open source the tools. There are already way too many great (video) programs lost.

videofan3d
2nd March 2024, 14:23
You will see that any full UHD containing DV when editing the mpls specific to the main movie will corrupt the DV data. For example in my direct experience these titles i have worked with:
Belle (2021) UHD
Ghost in the Shell (1995) UHD
Kick-Ass 2 (2013) UHD
Sisu (2022) UHD


MPLS2JSON is written based on BD-ROM specification from 2011 which does not include UHD.
Problem is already in initial conversion to JSON: it skips extra DV track because it is not aware of them.

I'm modified it slightly based on provided .mpls sample:

MPLS2JSON.exe 2024-03-02 (https://drive.google.com/file/d/1j2irpu8JlKtvvckFZ-oNypCt9cFlALpX)

But I could only guess the meaning of those extra bytes.
Please try it and let me know your observation.

To anyone: if someone has BD-ROM Part 3 - Audio Visual Basic Specifications newer than from 2011 and is able and willing to share it, would be great.
I could then extend this utility correctly in broader scope for UHD.

videofan3d
2nd March 2024, 14:30
Thanks for those amazing tools!

I think I found a bug in h264Modify

I changed a file with MAIN@L4 to HIGH@L4.1 with -profile_idc High -level_idc 4.1

That did also change the resolution from 1920x1080 to 1920x1084

That results in an unplayable file. I edited it back to 1920x1080 with h264info and now it's fine.

Btw: In case you ever decide to cease development, PLEASE open source the tools. There are already way too many great (video) programs lost.


Could you please send me short video and exact command which you run to reproduce the problem?
Thanks

DreckSoft
3rd March 2024, 14:09
Does that help?
https://docplayer.net/48882577-White-paper-blu-ray-disc-read-only-format-ultra-hd-blu-ray-audio-visual-application-format-specifications-for-bd-rom-version-3.html

outgoing
3rd March 2024, 17:34
I'm modified it slightly based on provided .mpls sample:

MPLS2JSON.exe 2024-03-02 (https://drive.google.com/file/d/1j2irpu8JlKtvvckFZ-oNypCt9cFlALpX)

But I could only guess the meaning of those extra bytes.
Please try it and let me know your observation.

In the new patched version, in two UHD with DV that i have tested, the DV works perfectly, it is activated. Now in this patched version it keeps the DV field in the mpls, in the previous version all the relative DV data field were destroyed. I have to say that in the two UHD movies they were different and both had the same values for the DV data, i don't know if in all of them they will be standard data or in some of them they will be different.

Great work, let's see if others can also provide information on their editing with the new version. Big :thanks: for keeping these little gems up to date.

The field marked in red was destroyed in the previous version, with the new version it is now preserved and it seems that it was the core information to activate the DV in the player.

https://ibb.co/pZk5hNj

videofan3d
3rd March 2024, 21:56
Does that help?
https://docplayer.net/48882577-White-paper-blu-ray-disc-read-only-format-ultra-hd-blu-ray-audio-visual-application-format-specifications-for-bd-rom-version-3.html

This one is White Paper describing only general concept.

There exists huge document (several hundreds of pages) with detailed file format and structure description.
Unfortunately, this detailed document is not commonly available, you cannot download it from Bluray-Association (DBA) web-pages.
And this is what I need.

pel9
4th March 2024, 15:54
Does that help?
https://docplayer.net/48882577-White-paper-blu-ray-disc-read-only-format-ultra-hd-blu-ray-audio-visual-application-format-specifications-for-bd-rom-version-3.html

We need the full version (2000+ pages) of this document.