1{ 2 "$schema": "http://json-schema.org/draft-04/schema#", 3 "id": "https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v11.json", 4 "title": "mkvmerge identification output", 5 "description": "The JSON output produced by mkvmerge's file identification mode", 6 "additionalProperties": false, 7 "type": "object", 8 "properties": { 9 "attachments": { 10 "description": "an array describing the attachments found if any", 11 "type": "array", 12 "items": { 13 "additionalProperties": false, 14 "type": "object", 15 "properties": { 16 "content_type": { 17 "type": "string", 18 "minLength": 1 19 }, 20 "description": { 21 "type": "string" 22 }, 23 "file_name": { 24 "type": "string" 25 }, 26 "id": { 27 "type": "integer", 28 "minimum": 0 29 }, 30 "size": { 31 "type": "integer", 32 "minimum": 0 33 }, 34 "properties": { 35 "additionalProperties": false, 36 "type": "object", 37 "properties": { 38 "uid": { 39 "type": "integer", 40 "minimum": 0 41 } 42 }, 43 "additionalProperties": false 44 }, 45 "type": { 46 "type": "string" 47 } 48 }, 49 "additionalProperties": false, 50 "required": [ 51 "file_name", 52 "id", 53 "properties", 54 "size" 55 ] 56 } 57 }, 58 "chapters": { 59 "type": "array", 60 "items": { 61 "additionalProperties": false, 62 "type": "object", 63 "properties": { 64 "num_entries": { 65 "type": "integer" 66 } 67 }, 68 "additionalProperties": false, 69 "required": [ 70 "num_entries" 71 ] 72 } 73 }, 74 "container": { 75 "additionalProperties": false, 76 "description": "information about the identified container", 77 "type": "object", 78 "properties": { 79 "properties": { 80 "additionalProperties": false, 81 "description": "additional properties for the container varying by container format", 82 "type": "object", 83 "properties": { 84 "container_type": { 85 "description": "A unique number identifying the container type that's supposed to stay constant over all future releases of MKVToolNix", 86 "type": "integer", 87 "minLength": 1 88 }, 89 "date_local": { 90 "description": "The muxing date in ISO 8601 format (in local time zone)", 91 "type": "string", 92 "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)$" 93 }, 94 "date_utc": { 95 "description": "The muxing date in ISO 8601 format (in UTC)", 96 "type": "string", 97 "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([+-][0-9]{2}:[0-9]{2}|Z)$" 98 }, 99 "duration": { 100 "description": "The file's/segment's duration in nanoseconds", 101 "type": "integer", 102 "minimum": 0 103 }, 104 "is_providing_timestamps": { 105 "description": "States whether or not the container has timestamps for the packets (e.g. Matroska, MP4) or not (e.g. SRT, MP3)", 106 "type": "boolean" 107 }, 108 "muxing_application": { 109 "description": "A Unicode string containing the name and possibly version of the low-level library or application that created the file", 110 "type": "string" 111 }, 112 "next_segment_uid": { 113 "description": "A hexadecimal string of the next segment's UID (only for Matroska files)", 114 "type": "string", 115 "minLength": 32, 116 "maxLength": 32 117 }, 118 "other_file": { 119 "description": "An array of names of additional files processed as well", 120 "type": "array", 121 "items": { 122 "type": "string" 123 } 124 }, 125 "playlist": { 126 "description": "States whether or not the identified file is a playlist (e.g. MPLS) referring to several other files", 127 "type": "boolean" 128 }, 129 "playlist_chapters": { 130 "description": "The number of chapters in a playlist if it is a one", 131 "type": "integer", 132 "minimum": 0 133 }, 134 "playlist_duration": { 135 "description": "The total duration in nanoseconds of all files referenced by the playlist if it is a one", 136 "type": "integer", 137 "minimum": 0 138 }, 139 "playlist_file": { 140 "description": "An array of file names the playlist contains", 141 "type": "array", 142 "items": { 143 "type": "string" 144 } 145 }, 146 "playlist_size": { 147 "description": "The total size in bytes of all files referenced by the playlist if it is a one", 148 "type": "integer", 149 "minimum": 0 150 }, 151 "previous_segment_uid": { 152 "description": "A hexadecimal string of the previous segment's UID (only for Matroska files)", 153 "type": "string", 154 "minLength": 32, 155 "maxLength": 32 156 }, 157 "programs": { 158 "description": "A container describing multiple programs multiplexed into the source file, e.g. multiple programs in one DVB transport stream", 159 "type": "array", 160 "items": { 161 "additionalProperties": false, 162 "description": "Properties describing a single program", 163 "type": "object", 164 "properties": { 165 "program_number": { 166 "description": "A unique number identifying a set of tracks that belong together; used e.g. in DVB for multiplexing multiple stations within a single transport stream", 167 "type": "integer", 168 "minimum": 0 169 }, 170 "service_name": { 171 "description": "The name of a service provided by this program, e.g. a TV channel name such as 'arte HD'", 172 "type": "string" 173 }, 174 "service_provider": { 175 "description": "The name of the provider of the service provided by this program, e.g. a TV station name such as 'ARD'", 176 "type": "string" 177 } 178 } 179 } 180 }, 181 "segment_uid": { 182 "description": "A hexadecimal string of the segment's UID (only for Matroska files)", 183 "type": "string", 184 "minLength": 32, 185 "maxLength": 32 186 }, 187 "title": { 188 "type": "string" 189 }, 190 "writing_application": { 191 "description": "A Unicode string containing the name and possibly version of the high-level application that created the file", 192 "type": "string" 193 } 194 }, 195 "additionalProperties": false 196 }, 197 "recognized": { 198 "description": "States whether or not mkvmerge knows about the format", 199 "type": "boolean" 200 }, 201 "supported": { 202 "description": "States whether or not mkvmerge can read the format", 203 "type": "boolean" 204 }, 205 "type": { 206 "description": "A human-readable description/name for the container format", 207 "type": "string", 208 "minLength": 1 209 } 210 }, 211 "additionalProperties": false, 212 "required": [ 213 "recognized", 214 "supported" 215 ] 216 }, 217 "errors": { 218 "type": "array", 219 "items": { 220 "type": "string" 221 } 222 }, 223 "file_name": { 224 "description": "the identified file's name", 225 "type": "string", 226 "minLength": 1 227 }, 228 "global_tags": { 229 "type": "array", 230 "items": { 231 "additionalProperties": false, 232 "type": "object", 233 "properties": { 234 "num_entries": { 235 "type": "integer" 236 } 237 }, 238 "additionalProperties": false, 239 "required": [ 240 "num_entries" 241 ] 242 } 243 }, 244 "identification_format_version": { 245 "description": "The output format's version", 246 "type": "integer", 247 "minimum": 11, 248 "maximum": 11 249 }, 250 "track_tags": { 251 "type": "array", 252 "items": { 253 "additionalProperties": false, 254 "type": "object", 255 "properties": { 256 "num_entries": { 257 "type": "integer" 258 }, 259 "track_id": { 260 "type": "integer" 261 } 262 }, 263 "additionalProperties": false, 264 "required": [ 265 "num_entries", 266 "track_id" 267 ] 268 } 269 }, 270 "tracks": { 271 "type": "array", 272 "items": { 273 "additionalProperties": false, 274 "type": "object", 275 "properties": { 276 "codec": { 277 "type": "string", 278 "minLength": 1 279 }, 280 "id": { 281 "type": "integer", 282 "minLength": 0 283 }, 284 "type": { 285 "type": "string" 286 }, 287 "properties": { 288 "additionalProperties": false, 289 "type": "object", 290 "properties": { 291 "aac_is_sbr": { 292 "type": "string", 293 "enum": [ 294 "true", 295 "false", 296 "unknown" 297 ] 298 }, 299 "audio_bits_per_sample": { 300 "type": "integer", 301 "minimum": 0 302 }, 303 "audio_channels": { 304 "type": "integer", 305 "minimum": 0 306 }, 307 "audio_sampling_frequency": { 308 "type": "integer", 309 "minimum": 0 310 }, 311 "codec_delay": { 312 "type": "integer" 313 }, 314 "codec_id": { 315 "type": "string" 316 }, 317 "codec_private_data": { 318 "type": "string" 319 }, 320 "codec_private_length": { 321 "type": "integer", 322 "minimum": 0 323 }, 324 "content_encoding_algorithms": { 325 "type": "string", 326 "minLength": 1 327 }, 328 "default_duration": { 329 "type": "integer", 330 "minimum": 0 331 }, 332 "default_track": { 333 "type": "boolean" 334 }, 335 "display_dimensions": { 336 "type": "string", 337 "pattern": "^[0-9]+x[0-9]+$" 338 }, 339 "display_unit": { 340 "type": "integer", 341 "minimum": 0 342 }, 343 "enabled_track": { 344 "type": "boolean" 345 }, 346 "encoding": { 347 "description": "The encoding/character set of a track containing text (e.g. subtitles) if it can be determined with confidence. For such tracks the encoding cannot be changed by the user.", 348 "type": "string" 349 }, 350 "forced_track": { 351 "type": "boolean" 352 }, 353 "language": { 354 "type": "string" 355 }, 356 "minimum_timestamp": { 357 "description": "The minimum timestamp in nanoseconds of all the frames of this track found within the first couple of seconds of the file", 358 "type": "integer", 359 "minimum": 0 360 }, 361 "multiplexed_tracks": { 362 "description": "An array of track IDs indicating which tracks were originally multiplexed within the same track in the source file", 363 "type": "array", 364 "items": { 365 "type": "integer", 366 "minimum": 0 367 } 368 }, 369 "number": { 370 "type": "integer", 371 "minimum": 0 372 }, 373 "packetizer": { 374 "type": "string", 375 "minLength": 1 376 }, 377 "pixel_dimensions": { 378 "type": "string", 379 "pattern": "^[0-9]+x[0-9]+$" 380 }, 381 "program_number": { 382 "description": "A unique number identifying a set of tracks that belong together; used e.g. in DVB for multiplexing multiple stations within a single transport stream", 383 "type": "integer", 384 "minimum": 0 385 }, 386 "stereo_mode": { 387 "type": "integer", 388 "minimum": 0 389 }, 390 "stream_id": { 391 "description": "A format-specific ID identifying a track, possibly in combination with a 'sub_stream_id' (e.g. the program ID in an MPEG transport stream)", 392 "type": "integer", 393 "minimum": 0 394 }, 395 "sub_stream_id": { 396 "description": "A format-specific ID identifying a track together with a 'stream_id'", 397 "type": "integer", 398 "minimum": 0 399 }, 400 "tag_artist": { 401 "type": "string" 402 }, 403 "tag_bitsps": { 404 "type": "string" 405 }, 406 "tag_bps": { 407 "type": "string" 408 }, 409 "tag_fps": { 410 "type": "string" 411 }, 412 "tag_title": { 413 "type": "string" 414 }, 415 "teletext_page": { 416 "type": "integer", 417 "minimum": 0 418 }, 419 "text_subtitles": { 420 "type": "boolean" 421 }, 422 "track_name": { 423 "type": "string" 424 }, 425 "uid": { 426 "type": "integer", 427 "minimum": 0 428 } 429 }, 430 "additionalProperties": false 431 } 432 }, 433 "additionalProperties": false, 434 "required": [ 435 "codec", 436 "id", 437 "type" 438 ] 439 } 440 }, 441 "warnings": { 442 "type": "array", 443 "items": { 444 "type": "string" 445 } 446 } 447 } 448} 449