mkvtoolnix/doc/json-schema/mkvmerge-identification-output-schema-v4.json
Moritz Bunkus c8ba161c8e mkvmerge: add track's minimum timestamp to identification output for Matroska
Frontends like gMKVExtractGUI currently use mkvinfo for determining the
offset between tracks. This is an attempt to provide that information
with mkvmerge.
2016-04-02 16:17:36 +02:00

371 lines
10 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v4.json",
"title": "mkvmerge identification output",
"description": "The JSON output produced by mkvmerge's file identification mode",
"type": "object",
"properties": {
"attachments": {
"description": "an array describing the attachments found if any",
"type": "array",
"items": {
"type": "object",
"properties": {
"content_type": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"file_name": {
"type": "string"
},
"id": {
"type": "integer",
"minimum": 0
},
"size": {
"type": "integer",
"minimum": 0
},
"properties": {
"type": "object",
"properties": {
"uid": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"type": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"file_name",
"id",
"properties",
"size"
]
}
},
"chapters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num_entries": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"num_entries"
]
}
},
"container": {
"description": "information about the identified container",
"type": "object",
"properties": {
"properties": {
"description": "additional properties for the container varying by container format",
"type": "object",
"properties": {
"container_type": {
"description": "A unique number identifying the container type that's supposed to stay constant over all future releases of MKVToolNix",
"type": "integer",
"minLength": 1
},
"duration": {
"description": "The file's/segment's duration in nanoseconds",
"type": "integer",
"minimum": 0
},
"is_providing_timecodes": {
"description": "States whether or not the container has timestamps for the packets (e.g. Matroska, MP4) or not (e.g. SRT, MP3)",
"type": "boolean"
},
"segment_uid": {
"description": "A hexadecimal string of the segment's UID (only for Matroska files)",
"type": "string",
"minLength": 32,
"maxLength": 32
},
"next_segment_uid": {
"description": "A hexadecimal string of the next segment's UID (only for Matroska files)",
"type": "string",
"minLength": 32,
"maxLength": 32
},
"previous_segment_uid": {
"description": "A hexadecimal string of the previous segment's UID (only for Matroska files)",
"type": "string",
"minLength": 32,
"maxLength": 32
},
"other_file": {
"description": "An array of names of additional files processed as well",
"type": "array",
"items": {
"type": "string"
}
},
"playlist": {
"description": "States whether or not the identified file is a playlist (e.g. MPLS) referring to several other files",
"type": "boolean"
},
"playlist_chapters": {
"description": "The number of chapters in a playlist if it is a one",
"type": "integer",
"minimum": 0
},
"playlist_duration": {
"description": "The total duration in nanoseconds of all files referenced by the playlist if it is a one",
"type": "integer",
"minimum": 0
},
"playlist_file": {
"description": "An array of file names the playlist contains",
"type": "array",
"items": {
"type": "string"
}
},
"playlist_size": {
"description": "The total size in bytes of all files referenced by the playlist if it is a one",
"type": "integer",
"minimum": 0
},
"title": {
"type": "string"
}
},
"additionalProperties": false
},
"recognized": {
"description": "States whether or not mkvmerge knows about the format",
"type": "boolean"
},
"supported": {
"description": "States whether or not mkvmerge can read the format",
"type": "boolean"
},
"type": {
"description": "A human-readable description/name for the container format",
"type": "string",
"minLength": 1
}
},
"additionalProperties": false,
"required": [
"recognized",
"supported"
]
},
"errors": {
"type": "array",
"items": {
"type": "string"
}
},
"file_name": {
"description": "the identified file's name",
"type": "string",
"minLength": 1
},
"global_tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num_entries": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"num_entries"
]
}
},
"identification_format_version": {
"description": "The output format's version",
"type": "integer",
"minimum": 4,
"maximum": 4
},
"track_tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num_entries": {
"type": "integer"
},
"track_id": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"num_entries",
"track_id"
]
}
},
"tracks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"codec": {
"type": "string",
"minLength": 1
},
"id": {
"type": "integer",
"minLength": 0
},
"type": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"aac_is_sbr": {
"type": "string",
"enum": [
"true",
"false",
"unknown"
]
},
"audio_bits_per_sample": {
"type": "integer",
"minimum": 0
},
"audio_channels": {
"type": "integer",
"minimum": 0
},
"audio_sampling_frequency": {
"type": "integer",
"minimum": 0
},
"codec_id": {
"type": "string"
},
"codec_private_data": {
"type": "string"
},
"codec_private_length": {
"type": "integer",
"minimum": 0
},
"content_encoding_algorithms": {
"type": "string",
"minLength": 1
},
"default_duration": {
"type": "integer",
"minimum": 0
},
"default_track": {
"type": "boolean"
},
"display_dimensions": {
"type": "string",
"pattern": "^[0-9]+x[0-9]+$"
},
"enabled_track": {
"type": "boolean"
},
"forced_track": {
"type": "boolean"
},
"language": {
"type": "string"
},
"minimum_timestamp": {
"description": "The minimum timestamp in nanoseconds of all the frames of this track found within the first couple of seconds of the file",
"type": "integer",
"minimum": 0
},
"number": {
"type": "integer",
"minimum": 0
},
"packetizer": {
"type": "string",
"minLength": 1
},
"pixel_dimensions": {
"type": "string",
"pattern": "^[0-9]+x[0-9]+$"
},
"stereo_mode": {
"type": "integer",
"minimum": 0
},
"stream_id": {
"type": "string",
"pattern": "^[0-9a-f]{2}$"
},
"sub_stream_id": {
"type": "string",
"pattern": "^[0-9a-f]{2}$"
},
"tag_artist": {
"type": "string"
},
"tag_bitsps": {
"type": "string"
},
"tag_bps": {
"type": "string"
},
"tag_fps": {
"type": "string"
},
"tag_title": {
"type": "string"
},
"text_subtitles": {
"type": "boolean"
},
"track_name": {
"type": "string"
},
"ts_pid": {
"type": "integer",
"minimum": 0
},
"uid": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"codec",
"id",
"type"
]
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
}