How to convert JSON structure gained by mkvmerge

Just starting out? Need help? Post your questions and find answers here.
User avatar
jacdelad
Addict
Addict
Posts: 2031
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

How to convert JSON structure gained by mkvmerge

Post by jacdelad »

Hi,
I'm lost. I've worked numeral times with JSON, but always created the JSON data for later reimport and such. Now, I get JSON data from mkvmerge and don't know how to import this into my program. I want to create a strcuture and import the data into it. I see some lists and maps probably, but I don't know where to begin. Can someone please help me, give me a push?

Code: Select all

{
  "attachments": [],
  "chapters": [
    {
      "num_entries": 5
    }
  ],
  "container": {
    "properties": {
      "container_type": 17,
      "date_local": "2017-06-18T14:33:39+02:00",
      "date_utc": "2017-06-18T12:33:39Z",
      "duration": 5765998000000,
      "is_providing_timestamps": true,
      "muxing_application": "libebml v1.3.4 + libmatroska v1.4.5",
      "segment_uid": "9006340b4a4596d5993624db9cbe3d01",
      "timestamp_scale": 1000000,
      "title": "MyFileName.mkv",
      "writing_application": "mkvmerge v12.0.0 ('Trust / Lust') 64bit"
    },
    "recognized": true,
    "supported": true,
    "type": "Matroska"
  },
  "errors": [],
  "file_name": "MyFile.mkv",
  "global_tags": [],
  "identification_format_version": 20,
  "track_tags": [],
  "tracks": [
    {
      "codec": "HEVC/H.265/MPEG-H",
      "id": 0,
      "properties": {
        "codec_id": "V_MPEGH/ISO/HEVC",
        "codec_private_data": "a very long number",
        "codec_private_length": 1095,
        "default_duration": 33366666,
        "default_track": true,
        "display_dimensions": "1920x1080",
        "display_unit": 0,
        "enabled_track": true,
        "forced_track": false,
        "language": "und",
        "minimum_timestamp": 5000000,
        "num_index_entries": 1887,
        "number": 1,
        "packetizer": "mpegh_p2_video",
        "pixel_dimensions": "1920x1080",
        "tag__statistics_tags": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
        "tag__statistics_writing_app": "mkvmerge v12.0.0 ('Trust / Lust') 64bit",
        "tag__statistics_writing_date_utc": "2017-06-18 12:33:39",
        "tag_bps": "3235764",
        "tag_duration": "01:36:05.993000000",
        "tag_number_of_bytes": "2332174724",
        "tag_number_of_frames": "172807",
        "uid": 1
      },
      "type": "video"
    },
    {
      "codec": "AC-3",
      "id": 1,
      "properties": {
        "audio_channels": 6,
        "audio_sampling_frequency": 48000,
        "codec_id": "A_AC3",
        "codec_private_length": 0,
        "default_duration": 32000000,
        "default_track": true,
        "enabled_track": true,
        "forced_track": true,
        "language": "ger",
        "minimum_timestamp": 0,
        "num_index_entries": 0,
        "number": 2,
        "tag__statistics_tags": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
        "tag__statistics_writing_app": "mkvmerge v12.0.0 ('Trust / Lust') 64bit",
        "tag__statistics_writing_date_utc": "2017-06-18 12:33:39",
        "tag_bps": "384000",
        "tag_duration": "01:36:05.984000000",
        "tag_number_of_bytes": "276767232",
        "tag_number_of_frames": "180187",
        "track_name": "Surround",
        "uid": 2
      },
      "type": "audio"
    },
    {
      "codec": "AC-3",
      "id": 2,
      "properties": {
        "audio_channels": 6,
        "audio_sampling_frequency": 48000,
        "codec_id": "A_AC3",
        "codec_private_length": 0,
        "default_duration": 32000000,
        "default_track": false,
        "enabled_track": true,
        "forced_track": false,
        "language": "eng",
        "minimum_timestamp": 0,
        "num_index_entries": 0,
        "number": 3,
        "tag__statistics_tags": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
        "tag__statistics_writing_app": "mkvmerge v12.0.0 ('Trust / Lust') 64bit",
        "tag__statistics_writing_date_utc": "2017-06-18 12:33:39",
        "tag_bps": "384000",
        "tag_duration": "01:36:05.984000000",
        "tag_number_of_bytes": "276767232",
        "tag_number_of_frames": "180187",
        "track_name": "Surround",
        "uid": 3
      },
      "type": "audio"
    },
    {
      "codec": "SubRip/SRT",
      "id": 3,
      "properties": {
        "codec_id": "S_TEXT/UTF8",
        "codec_private_length": 0,
        "default_track": true,
        "enabled_track": true,
        "encoding": "UTF-8",
        "forced_track": true,
        "language": "ger",
        "num_index_entries": 93,
        "number": 4,
        "tag__statistics_tags": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
        "tag__statistics_writing_app": "mkvmerge v12.0.0 ('Trust / Lust') 64bit",
        "tag__statistics_writing_date_utc": "2017-06-18 12:33:39",
        "tag_bps": "7",
        "tag_duration": "01:00:07.938000000",
        "tag_number_of_bytes": "3310",
        "tag_number_of_frames": "93",
        "text_subtitles": true,
        "track_name": "forced",
        "uid": 16942878903433541044
      },
      "type": "subtitles"
    }
  ],
  "warnings": []
}
Last edited by jacdelad on Fri Oct 18, 2024 11:45 am, edited 1 time in total.
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
User avatar
Kiffi
Addict
Addict
Posts: 1509
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: How to convert JSON structure gained by mkvmerge

Post by Kiffi »

freak wrote: Sat Jun 27, 2015 5:38 pmInspired by a recent question [..], I wrote a little code generator that automates the process of creating PB structures for JSON data.
Generate PB Structures for JSON data
Hygge
User avatar
jacdelad
Addict
Addict
Posts: 2031
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

Re: How to convert JSON structure gained by mkvmerge

Post by jacdelad »

Oh my WONDERFUL! Thanks Kiffi and freak, this is what I needed. This should be part of the help, in the JSON section!

But what happens if the output contains an element, that was not in my example?
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Fred
Administrator
Administrator
Posts: 18350
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: How to convert JSON structure gained by mkvmerge

Post by Fred »

It will be ignored
User avatar
jacdelad
Addict
Addict
Posts: 2031
Joined: Wed Feb 03, 2021 12:46 pm
Location: Riesa

Re: How to convert JSON structure gained by mkvmerge

Post by jacdelad »

Thanks, Fred. So I just need to add the fields I want to inspect. Good!
Good morning, that's a nice tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Post Reply