{"id":13907661,"url":"https://github.com/DicomJ/mpeg-mp4","last_synced_at":"2025-07-18T06:30:36.198Z","repository":{"id":41425153,"uuid":"150097480","full_name":"DicomJ/mpeg-mp4","owner":"DicomJ","description":"Bitstream processing library of MPEG-MP4 media file format (ISO/IEC 14496-14 - MPEG-4 Part 14: MP4 file format)","archived":false,"fork":false,"pushed_at":"2018-11-17T12:10:40.000Z","size":19,"stargazers_count":5,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-25T16:39:00.968Z","etag":null,"topics":["14496-14","avc","cplusplus","h246","h265","hevc","iec","iso","library","mp4","mpeg","parser"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DicomJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-24T12:14:20.000Z","updated_at":"2023-09-19T12:22:33.000Z","dependencies_parsed_at":"2022-08-30T05:31:51.543Z","dependency_job_id":null,"html_url":"https://github.com/DicomJ/mpeg-mp4","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DicomJ/mpeg-mp4","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DicomJ%2Fmpeg-mp4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DicomJ%2Fmpeg-mp4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DicomJ%2Fmpeg-mp4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DicomJ%2Fmpeg-mp4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DicomJ","download_url":"https://codeload.github.com/DicomJ/mpeg-mp4/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DicomJ%2Fmpeg-mp4/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265710530,"owners_count":23815373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["14496-14","avc","cplusplus","h246","h265","hevc","iec","iso","library","mp4","mpeg","parser"],"created_at":"2024-08-06T23:02:04.541Z","updated_at":"2025-07-18T06:30:35.962Z","avatar_url":"https://github.com/DicomJ.png","language":"C++","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# **MPEG-MP4** media file format bitstream processing library\n\nThis is an extension of MPEG-ISOBASE media file format bitstream processing library [https://github.com/DicomJ/mpeg-isobase](https://github.com/DicomJ/mpeg-isobase).\nPlease find more details there.\n\n## Building\n\nIf you would like to check out and build MPEG-MP4 library, the procedure is as follows (requires modern C++17 compiler):\n\n1. Check out MPEG-MP4\n\n    ```bash\n    git clone git@github.com:DicomJ/mpeg-mp4.git mpeg-mp4\n    ```\n\n1. Build MPEG-MP4\n\n    ```bash\n    mkdir mpeg-mp4/build\n    cd mpeg-mp4/build\n    cmake -DCMAKE_BUILD_TYPE=Release -DCXX_STD=c++17 -DCMAKE_INSTALL_PREFIX=$(pwd)/install $(pwd)/../../mpeg-mp4\n    make install\n    ```\n\n## Usage\n\n### Composing\n\n// TBD\n\n### Parsing just by calling the `Parser::parse` method\n\n1. Checkout an example:\n\n    ```bash\n    cat ../../mpeg-mp4/demo/dump.cc\n    ```\n\n    ```C++\n    bitstream::input::file::Stream stream(\"sample.mp4\");\n    mpeg::mp4::Parser parser(stream, bitstream::output::print::to_stdout);\n    parser.parse();\n    ```\n\n2. Build and run it:\n\n    ```bash\n    g++ \\\n        -o dump \\\n        -std=c++17 -Wno-multichar \\\n        -I install/include \\\n        -Wl,-rpath,$(pwd)/install/lib64 install/lib64/*.so \\\n        ../../mpeg-mp4/demo/dump.cc\n    time ./dump sample.txt\n    ```\n\n3. Check out the output\n\n    ```\n    +- FileTypeBox { // [28 bytes] @0\n    |      uint32     size                : 28\n    |      uint32     type                : ftyp\n    |      uint32     major_brand         : mp42\n    |      uint32     minor_version       : 0\n    |      uint32[3]  compatible_brands   : [mp42, isom, avc1]\n    |  }\n    +- FreeSpaceBox('free') { // [8 bytes] @28\n    |      uint32     size                : 132\n    |      uint32     type                : free\n    |  }\n    |  |  \u003cPayload\u003e[124 bytes]\n    +- MediaDataBox { // [8 bytes] @160\n    |      uint32     size                : 379880\n    |      uint32     type                : mdat\n    |  }\n    |  |  \u003cPayload\u003e[379872 bytes]\n    +- MovieBox { // [8 bytes] @380040\n    |      uint32     size                : 3459\n    |      uint32     type                : moov\n    |  }\n    |  +- MovieHeaderBox { // [108 bytes] @380048\n    |  |      uint32     size                : 108\n    |  |      uint32     type                : mvhd\n    |  |      uint8      version             : 0\n    |  |      uint24     flags               : 0\n    |  |      uint32     creation_time       : Sat Mar 20 21:29:11 2010\n    |  |      uint32     modification_time   : Sat Mar 20 21:29:12 2010\n    |  |      uint32     timescale           : 90000\n    |  |      uint32     duration            : 501120\n    |  |      int32      rate                : 1\n    |  |      int16      volume              : 1\n    |  |      uint16     reserved            : 0\n    |  |      uint32[2]  reserved            : [0, 0]\n    |  |      int32[9]   matrix              : [65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]\n    |  |      uint32[6]  pre_defined         : [0, 0, 0, 0, 0, 0]\n    |  |      uint32     next_track_ID       : 3\n    |  |  }\n    |  +- ObjectDescriptorBox { // [12 bytes] @380156\n    |  |      uint32     size                : 24\n    |  |      uint32     type                : iods\n    |  |      uint8      version             : 0\n    |  |      uint24     flags               : 0\n    |  |  }\n    |  |  |  \u003cPayload\u003e[12 bytes]\n    |  +- TrackBox { // [8 bytes] @380180\n    |  |      uint32     size                : 1546\n    |  |      uint32     type                : trak\n    |  |  }\n    |  |  +- TrackHeaderBox { // [92 bytes] @380188\n    |  |  |      uint32     size                : 92\n    |  |  |      uint32     type                : tkhd\n    |  |  |      uint8      version             : 0\n    |  |  |      uint24     flags               : 1\n    |  |  |      uint32     creation_time       : Sat Mar 20 21:29:11 2010\n    |  |  |      uint32     modification_time   : Sat Mar 20 21:29:12 2010\n    |  |  |      uint32     track_ID            : 1\n    |  |  |      uint32     reserved            : 0\n    |  |  |      uint32     duration            : 498000\n    |  |  |      uint32[2]  reserved            : [0, 0]\n    |  |  |      int16      layer               : 0\n    |  |  |      int16      alternate_group     : 0\n    |  |  |      int16      volume              : 0\n    |  |  |      uint16     reserved            : 0\n    |  |  |      int32[9]   matrix              : [65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]\n    |  |  |      uint32     width               : 560\n    |  |  |      uint32     height              : 320\n    |  |  |  }\n    |  |  +- MediaBox { // [8 bytes] @380280\n    |  |  |      uint32     size                : 1446\n    |  |  |      uint32     type                : mdia\n    |  |  |  }\n    |  |  |  +- MediaHeaderBox { // [32 bytes] @380288\n    |  |  |  |      uint32     size                : 32\n    |  |  |  |      uint32     type                : mdhd\n    |  |  |  |      uint8      version             : 0\n    |  |  |  |      uint24     flags               : 0\n    |  |  |  |      uint32     creation_time       : Sat Mar 20 21:29:11 2010\n    |  |  |  |      uint32     modification_time   : Sat Mar 20 21:29:12 2010\n    |  |  |  |      uint32     timescale           : 90000\n    |  |  |  |      uint32     duration            : 498000\n    |  |  |  |      uint1      pad                 : 0\n    |  |  |  |      uint5[3]   language            : und (Undetermined)\n    |  |  |  |      uint16     pre_defined         : 0\n    |  |  |  |  }\n    |  |  |  +- HandlerBox { // [21 bytes] @380320\n    |  |  |  |      uint32     size                : 33\n    |  |  |  |      uint32     type                : hdlr\n    |  |  |  |      uint8      version             : 0\n    |  |  |  |      uint24     flags               : 0\n    |  |  |  |      uint32     pre_defined         : 0\n    |  |  |  |      uint32     handler_type        : vide\n    |  |  |  |      uint32[3]  reserved            : [0, 0, 0]\n    |  |  |  |      string     name                : \"vide?\"\n    |  |  |  |  }\n    |  |  |  |  |  \u003cPayload\u003e[12 bytes]\n    |  |  |  +- MediaInformationBox { // [8 bytes] @380353\n    |  |  |  |      uint32     size                : 1373\n    |  |  |  |      uint32     type                : minf\n    |  |  |  |  }\n    |  |  |  |  +- VideoMediaHeaderBox { // [20 bytes] @380361\n    |  |  |  |  |      uint32     size                : 20\n    |  |  |  |  |      uint32     type                : vmhd\n    |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |      uint24     flags               : 1\n    |  |  |  |  |      uint16     graphicsmode        : 0\n    |  |  |  |  |      uint16[3]  opcolor             : [0, 0, 0]\n    |  |  |  |  |  }\n    |  |  |  |  +- DataInformationBox { // [8 bytes] @380381\n    |  |  |  |  |      uint32     size                : 36\n    |  |  |  |  |      uint32     type                : dinf\n    |  |  |  |  |  }\n    |  |  |  |  |  +- DataReferenceBox { // [16 bytes] @380389\n    |  |  |  |  |  |      uint32     size                : 28\n    |  |  |  |  |  |      uint32     type                : dref\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- DataEntryUrlBox { // [12 bytes] @380405\n    |  |  |  |  |  |  |      uint32     size                : 12\n    |  |  |  |  |  |  |      uint32     type                : url\n    |  |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |  |      uint24     flags               : 1\n    |  |  |  |  |  |  |      string     location            : \"\"\n    |  |  |  |  |  |  |  }\n    |  |  |  |  +- SampleTableBox { // [8 bytes] @380417\n    |  |  |  |  |      uint32     size                : 1309\n    |  |  |  |  |      uint32     type                : stbl\n    |  |  |  |  |  }\n    |  |  |  |  |  +- SampleDescriptionBox { // [16 bytes] @380425\n    |  |  |  |  |  |      uint32     size                : 171\n    |  |  |  |  |  |      uint32     type                : stsd\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- VisualSampleEntry { // [86 bytes] @380441\n    |  |  |  |  |  |  |      uint32     size                : 155\n    |  |  |  |  |  |  |      uint32     type                : avc1\n    |  |  |  |  |  |  |      uint8[6]   reserved            : [0, 0, 0, 0, 0, 0]\n    |  |  |  |  |  |  |      uint16     data_reference_index: 1\n    |  |  |  |  |  |  |      uint16     pre_defined         : 0\n    |  |  |  |  |  |  |      uint16     reserved            : 0\n    |  |  |  |  |  |  |      uint32[3]  pre_defined         : [0, 0, 0]\n    |  |  |  |  |  |  |      uint16     width               : 560\n    |  |  |  |  |  |  |      uint16     height              : 320\n    |  |  |  |  |  |  |      uint32     horizresolution     : 72\n    |  |  |  |  |  |  |      uint32     vertresolution      : 72\n    |  |  |  |  |  |  |      uint32     reserved            : 0\n    |  |  |  |  |  |  |      uint16     frame_count         : 1\n    |  |  |  |  |  |  |      string     compressorname      : \"JVT/AVC Coding\"\n    |  |  |  |  |  |  |      uint16     depth               : 24\n    |  |  |  |  |  |  |      int16      pre_defined         : -1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |  |  \u003cPayload\u003e[69 bytes]\n    |  |  |  |  |  +- TimeToSampleBox { // [16 bytes] @380596\n    |  |  |  |  |  |      uint32     size                : 24\n    |  |  |  |  |  |      uint32     type                : stts\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [8 bytes] @380612\n    |  |  |  |  |  |  |      uint32     sample_count        : 166\n    |  |  |  |  |  |  |      uint32     sample_delta        : 3000\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SampleSizeBox { // [20 bytes] @380620\n    |  |  |  |  |  |      uint32     size                : 684\n    |  |  |  |  |  |      uint32     type                : stsz\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     sample_size         : 0\n    |  |  |  |  |  |      uint32     sample_count        : 166\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [4 bytes] @380640\n    |  |  |  |  |  |  |      uint32     entry_size          : 22055\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [4 bytes] @380644\n    |  |  |  |  |  |  |      uint32     entry_size          : 2848\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #2 { // [4 bytes] @380648\n    |  |  |  |  |  |  |      uint32     entry_size          : 1468\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #3 { // [4 bytes] @380652\n    |  |  |  |  |  |  |      uint32     entry_size          : 1506\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #4 { // [4 bytes] @380656\n    |  |  |  |  |  |  |      uint32     entry_size          : 1473\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  |  ...\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  +- Entry #161 { // [4 bytes] @381284\n    |  |  |  |  |  |  |      uint32     entry_size          : 994\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #162 { // [4 bytes] @381288\n    |  |  |  |  |  |  |      uint32     entry_size          : 1030\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #163 { // [4 bytes] @381292\n    |  |  |  |  |  |  |      uint32     entry_size          : 742\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #164 { // [4 bytes] @381296\n    |  |  |  |  |  |  |      uint32     entry_size          : 619\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #165 { // [4 bytes] @381300\n    |  |  |  |  |  |  |      uint32     entry_size          : 629\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SampleToChunkBox { // [16 bytes] @381304\n    |  |  |  |  |  |      uint32     size                : 40\n    |  |  |  |  |  |      uint32     type                : stsc\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 2\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [12 bytes] @381320\n    |  |  |  |  |  |  |      uint32     first_chunk         : 1\n    |  |  |  |  |  |  |      uint32     samples_per_chunk   : 4\n    |  |  |  |  |  |  |      uint32     sample_description_index: 1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [12 bytes] @381332\n    |  |  |  |  |  |  |      uint32     first_chunk         : 42\n    |  |  |  |  |  |  |      uint32     samples_per_chunk   : 2\n    |  |  |  |  |  |  |      uint32     sample_description_index: 1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- ChunkOffsetBox { // [16 bytes] @381344\n    |  |  |  |  |  |      uint32     size                : 184\n    |  |  |  |  |  |      uint32     type                : stco\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 42\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [4 bytes] @381360\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 168\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [4 bytes] @381364\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 29670\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #2 { // [4 bytes] @381368\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 35828\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #3 { // [4 bytes] @381372\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 41992\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #4 { // [4 bytes] @381376\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 46948\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  |  ...\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  +- Entry #37 { // [4 bytes] @381508\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 350704\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #38 { // [4 bytes] @381512\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 359298\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #39 { // [4 bytes] @381516\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 365867\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #40 { // [4 bytes] @381520\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 373722\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #41 { // [4 bytes] @381524\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 378471\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SyncSampleBox { // [16 bytes] @381528\n    |  |  |  |  |  |      uint32     size                : 20\n    |  |  |  |  |  |      uint32     type                : stss\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [4 bytes] @381544\n    |  |  |  |  |  |  |      uint32     sample_number       : 1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SampleDependencyTypeBox { // [12 bytes] @381548\n    |  |  |  |  |  |      uint32     size                : 178\n    |  |  |  |  |  |      uint32     type                : sdtp\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [1 bytes] @381560\n    |  |  |  |  |  |  |      uint2      is_leading          : 0\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [1 bytes] @381561\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #2 { // [1 bytes] @381562\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #3 { // [1 bytes] @381563\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #4 { // [1 bytes] @381564\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  |  ...\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  +- Entry #161 { // [1 bytes] @381721\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #162 { // [1 bytes] @381722\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #163 { // [1 bytes] @381723\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #164 { // [1 bytes] @381724\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #165 { // [1 bytes] @381725\n    |  |  |  |  |  |  |      uint2      is_leading          : 1\n    |  |  |  |  |  |  |      uint2      sample_depends_on   : 0\n    |  |  |  |  |  |  |      uint2      sample_is_depended_on: 1\n    |  |  |  |  |  |  |      uint2      sample_has_redundancy: 0\n    |  |  |  |  |  |  |  }\n    |  +- TrackBox { // [8 bytes] @381726\n    |  |      uint32     size                : 1662\n    |  |      uint32     type                : trak\n    |  |  }\n    |  |  +- TrackHeaderBox { // [92 bytes] @381734\n    |  |  |      uint32     size                : 92\n    |  |  |      uint32     type                : tkhd\n    |  |  |      uint8      version             : 0\n    |  |  |      uint24     flags               : 3\n    |  |  |      uint32     creation_time       : Sat Mar 20 21:29:11 2010\n    |  |  |      uint32     modification_time   : Sat Mar 20 21:29:12 2010\n    |  |  |      uint32     track_ID            : 2\n    |  |  |      uint32     reserved            : 0\n    |  |  |      uint32     duration            : 501120\n    |  |  |      uint32[2]  reserved            : [0, 0]\n    |  |  |      int16      layer               : 0\n    |  |  |      int16      alternate_group     : 0\n    |  |  |      int16      volume              : 1\n    |  |  |      uint16     reserved            : 0\n    |  |  |      int32[9]   matrix              : [65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]\n    |  |  |      uint32     width               : 0\n    |  |  |      uint32     height              : 0\n    |  |  |  }\n    |  |  +- MediaBox { // [8 bytes] @381826\n    |  |  |      uint32     size                : 1540\n    |  |  |      uint32     type                : mdia\n    |  |  |  }\n    |  |  |  +- MediaHeaderBox { // [32 bytes] @381834\n    |  |  |  |      uint32     size                : 32\n    |  |  |  |      uint32     type                : mdhd\n    |  |  |  |      uint8      version             : 0\n    |  |  |  |      uint24     flags               : 0\n    |  |  |  |      uint32     creation_time       : Sat Mar 20 21:29:11 2010\n    |  |  |  |      uint32     modification_time   : Sat Mar 20 21:29:12 2010\n    |  |  |  |      uint32     timescale           : 48000\n    |  |  |  |      uint32     duration            : 267264\n    |  |  |  |      uint1      pad                 : 0\n    |  |  |  |      uint5[3]   language            : eng (English)\n    |  |  |  |      uint16     pre_defined         : 0\n    |  |  |  |  }\n    |  |  |  +- HandlerBox { // [21 bytes] @381866\n    |  |  |  |      uint32     size                : 33\n    |  |  |  |      uint32     type                : hdlr\n    |  |  |  |      uint8      version             : 0\n    |  |  |  |      uint24     flags               : 0\n    |  |  |  |      uint32     pre_defined         : 0\n    |  |  |  |      uint32     handler_type        : soun\n    |  |  |  |      uint32[3]  reserved            : [0, 0, 0]\n    |  |  |  |      string     name                : \"soun?\"\n    |  |  |  |  }\n    |  |  |  |  |  \u003cPayload\u003e[12 bytes]\n    |  |  |  +- MediaInformationBox { // [8 bytes] @381899\n    |  |  |  |      uint32     size                : 1467\n    |  |  |  |      uint32     type                : minf\n    |  |  |  |  }\n    |  |  |  |  +- SoundMediaHeaderBox { // [16 bytes] @381907\n    |  |  |  |  |      uint32     size                : 16\n    |  |  |  |  |      uint32     type                : smhd\n    |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |      int16      balance             : 0\n    |  |  |  |  |      uint16     reserved            : 0\n    |  |  |  |  |  }\n    |  |  |  |  +- DataInformationBox { // [8 bytes] @381923\n    |  |  |  |  |      uint32     size                : 36\n    |  |  |  |  |      uint32     type                : dinf\n    |  |  |  |  |  }\n    |  |  |  |  |  +- DataReferenceBox { // [16 bytes] @381931\n    |  |  |  |  |  |      uint32     size                : 28\n    |  |  |  |  |  |      uint32     type                : dref\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- DataEntryUrlBox { // [12 bytes] @381947\n    |  |  |  |  |  |  |      uint32     size                : 12\n    |  |  |  |  |  |  |      uint32     type                : url\n    |  |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |  |      uint24     flags               : 1\n    |  |  |  |  |  |  |      string     location            : \"\"\n    |  |  |  |  |  |  |  }\n    |  |  |  |  +- SampleTableBox { // [8 bytes] @381959\n    |  |  |  |  |      uint32     size                : 1407\n    |  |  |  |  |      uint32     type                : stbl\n    |  |  |  |  |  }\n    |  |  |  |  |  +- SampleDescriptionBox { // [16 bytes] @381967\n    |  |  |  |  |  |      uint32     size                : 103\n    |  |  |  |  |  |      uint32     type                : stsd\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- AudioSampleEntry { // [36 bytes] @381983\n    |  |  |  |  |  |  |      uint32     size                : 87\n    |  |  |  |  |  |  |      uint32     type                : mp4a\n    |  |  |  |  |  |  |      uint8[6]   reserved            : [0, 0, 0, 0, 0, 0]\n    |  |  |  |  |  |  |      uint16     data_reference_index: 1\n    |  |  |  |  |  |  |      uint32[2]  reserved            : [0, 0]\n    |  |  |  |  |  |  |      uint16     channelcount        : 1\n    |  |  |  |  |  |  |      uint16     samplesize          : 16\n    |  |  |  |  |  |  |      uint16     pre_defined         : 0\n    |  |  |  |  |  |  |      uint16     reserverd           : 0\n    |  |  |  |  |  |  |      uint32     samplerate          : 48000\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |  |  \u003cPayload\u003e[51 bytes]\n    |  |  |  |  |  +- TimeToSampleBox { // [16 bytes] @382070\n    |  |  |  |  |  |      uint32     size                : 24\n    |  |  |  |  |  |      uint32     type                : stts\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 1\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [8 bytes] @382086\n    |  |  |  |  |  |  |      uint32     sample_count        : 261\n    |  |  |  |  |  |  |      uint32     sample_delta        : 1024\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SampleSizeBox { // [20 bytes] @382094\n    |  |  |  |  |  |      uint32     size                : 1064\n    |  |  |  |  |  |      uint32     type                : stsz\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     sample_size         : 0\n    |  |  |  |  |  |      uint32     sample_count        : 261\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [4 bytes] @382114\n    |  |  |  |  |  |  |      uint32     entry_size          : 247\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [4 bytes] @382118\n    |  |  |  |  |  |  |      uint32     entry_size          : 219\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #2 { // [4 bytes] @382122\n    |  |  |  |  |  |  |      uint32     entry_size          : 225\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #3 { // [4 bytes] @382126\n    |  |  |  |  |  |  |      uint32     entry_size          : 229\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #4 { // [4 bytes] @382130\n    |  |  |  |  |  |  |      uint32     entry_size          : 233\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  |  ...\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  +- Entry #256 { // [4 bytes] @383138\n    |  |  |  |  |  |  |      uint32     entry_size          : 222\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #257 { // [4 bytes] @383142\n    |  |  |  |  |  |  |      uint32     entry_size          : 203\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #258 { // [4 bytes] @383146\n    |  |  |  |  |  |  |      uint32     entry_size          : 205\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #259 { // [4 bytes] @383150\n    |  |  |  |  |  |  |      uint32     entry_size          : 212\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #260 { // [4 bytes] @383154\n    |  |  |  |  |  |  |      uint32     entry_size          : 109\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- SampleToChunkBox { // [16 bytes] @383158\n    |  |  |  |  |  |      uint32     size                : 40\n    |  |  |  |  |  |      uint32     type                : stsc\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 2\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [12 bytes] @383174\n    |  |  |  |  |  |  |      uint32     first_chunk         : 1\n    |  |  |  |  |  |  |      uint32     samples_per_chunk   : 7\n    |  |  |  |  |  |  |      uint32     sample_description_index: 1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [12 bytes] @383186\n    |  |  |  |  |  |  |      uint32     first_chunk         : 38\n    |  |  |  |  |  |  |      uint32     samples_per_chunk   : 2\n    |  |  |  |  |  |  |      uint32     sample_description_index: 1\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  +- ChunkOffsetBox { // [16 bytes] @383198\n    |  |  |  |  |  |      uint32     size                : 168\n    |  |  |  |  |  |      uint32     type                : stco\n    |  |  |  |  |  |      uint8      version             : 0\n    |  |  |  |  |  |      uint24     flags               : 0\n    |  |  |  |  |  |      uint32     entry_count         : 38\n    |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #0 { // [4 bytes] @383214\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 28045\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #1 { // [4 bytes] @383218\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 34203\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #2 { // [4 bytes] @383222\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 40420\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #3 { // [4 bytes] @383226\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 45345\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #4 { // [4 bytes] @383230\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 49831\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  |  ...\n    |  |  |  |  |  |  |\n    |  |  |  |  |  |  +- Entry #33 { // [4 bytes] @383346\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 357564\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #34 { // [4 bytes] @383350\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 364185\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #35 { // [4 bytes] @383354\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 372249\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #36 { // [4 bytes] @383358\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 377067\n    |  |  |  |  |  |  |  }\n    |  |  |  |  |  |  +- Entry #37 { // [4 bytes] @383362\n    |  |  |  |  |  |  |      uint32     chunk_offset        : 379719\n    |  |  |  |  |  |  |  }\n    |  |  +- UserDataBox { // [8 bytes] @383366\n    |  |  |      uint32     size                : 22\n    |  |  |      uint32     type                : udta\n    |  |  |  }\n    |  |  |  +- \u003cundeclared\u003e::Box('name') { // [8 bytes] @383374\n    |  |  |  |      uint32     size                : 14\n    |  |  |  |      uint32     type                : name\n    |  |  |  |  }\n    |  |  |  |  |  \u003cPayload\u003e[6 bytes]\n    |  +- UserDataBox { // [8 bytes] @383388\n    |  |      uint32     size                : 111\n    |  |      uint32     type                : udta\n    |  |  }\n    |  |  +- MetaBox { // [12 bytes] @383396\n    |  |  |      uint32     size                : 103\n    |  |  |      uint32     type                : meta\n    |  |  |      uint8      version             : 0\n    |  |  |      uint24     flags               : 0\n    |  |  |  }\n    |  |  |  +- HandlerBox { // [21 bytes] @383408\n    |  |  |  |      uint32     size                : 33\n    |  |  |  |      uint32     type                : hdlr\n    |  |  |  |      uint8      version             : 0\n    |  |  |  |      uint24     flags               : 0\n    |  |  |  |      uint32     pre_defined         : 0\n    |  |  |  |      uint32     handler_type        : mdir\n    |  |  |  |      uint32[3]  reserved            : [0, 0, 0]\n    |  |  |  |      string     name                : \"mdir?\"\n    |  |  |  |  }\n    |  |  |  |  |  \u003cPayload\u003e[12 bytes]\n    |  |  |  +- \u003cundeclared\u003e::Box('ilst') { // [8 bytes] @383441\n    |  |  |  |      uint32     size                : 58\n    |  |  |  |      uint32     type                : ilst\n    |  |  |  |  }\n    |  |  |  |  |  \u003cPayload\u003e[50 bytes]\n    +- FreeSpaceBox('free') { // [8 bytes] @383499\n    |      uint32     size                : 132\n    |      uint32     type                : free\n    |  }\n    |  |  \u003cPayload\u003e[124 bytes]\n\n    real\t0m0.014s\n    user\t0m0.012s\n    sys\t0m0.000s\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDicomJ%2Fmpeg-mp4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDicomJ%2Fmpeg-mp4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDicomJ%2Fmpeg-mp4/lists"}