• Ich kenne mich schon recht gut aus was Matroska angeht, aber parsen ist was anderes als technical Infos zu lesen oder irre ich mich da jetzt völlig?


    Alle Infos die du brauchst sind da. Vielleicht solltest du dir den Source Code von Bunkus' mkvtoolnix/mkvinfo ansehen.

    Einmal editiert, zuletzt von Groucho2004 (17. Februar 2017 um 16:36)

  • Ja ich weis das dort alle Infos zu finden sind, nur leider versteh ich nicht alles was da steht.

    Bisher habe ich nur ifo und mpls Dateien geparst. Dort war es irgendwie leichter verständlicher.

    Bei ifo zum Beispiel gibts ein TableStartByte und innerhalb dieses Tables gibt es OffSets, wodurch man zur gewünschten BytePosition in der Datei kommt.
    Ähnlich ist es bei mpls Dateien.

    Im anhang mal eine winzige mkv Datei mit ein paar Kapiteln
    und hier die Bytes

    Code
    4E6F746520746861742054696D65636F64655363616C65206D6179206265206F6D6974746564[COLOR='#FFA07A']1A45DFA3[/COLOR][COLOR='#FF0000']A3[/COLOR][COLOR='#FFA500']4286[/COLOR]810142F7810142F2810442F381084282886D6174726F736B614287810442858102185380670100000000002E84114D9B749E4DBB8C53AB84114D9B7453AC822D384DBB8C53AB841254C36753AC822D78EC01000000000000060000000000001043A7704EFE45B949E545BC88B0DA37E1082D82BB45BD810045DB810145DD8101B6409E73C488CE38E9122A1BCF8E9181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6CB73C488ADC820E75D84F6BE9181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2031437C83676572B640A673C4887D81E369A80125B89185528124F0809285E33CA4A7C0988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6CF73C488A3F6C059A6613F0A9185528124F0809285E33CA4A7C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2032437C83676572B640A873C488C7E6350DD9919CDA9185E33CA4A7C0928601A8A4432F80988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D073C4886D682ABFD662474A9185E33CA4A7C0928601A8A4432F80988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2033437C83676572B640AA73C488AFA65B08C69DE32F918601A8A4432F809286021A9C1495C0988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D173C48868B60A482DF68B0A918601A8A4432F809286021A9C1495C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2034437C83676572B640AA73C4880F26F97CB021217E9186021A9C1495C0928602870862CD55988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D173C488EE9BC0676DD2B1D39186021A9C1495C0928602870862CD55988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2035437C83676572B6409E73C4883611C7E29A43B6BA91810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6CB73C4884D3AD20DE59D8E3B91810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2031437C83676572B640A873C488B6A24A2524F416AF91855E285B5500928601020052F8C0988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D073C4887D8CD1FF5817596291855E285B5500928601020052F8C0988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2032437C83676572B640AA73C488E32038CF2BFB2B53918601020052F8C092860178FFE52707988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C48816B62CD0E33ABA7C918601020052F8C092860178FFE52707988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2033437C83676572B640AA73C488E46F347964A2447891860178FFE52707928601E904065BD5988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C488A819B3897247DC3B91860178FFE52707928601E904065BD5988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2034437C83676572B640AA73C488D2D6997CEF5430AA918601E904065BD59286028C8777ADDC988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C488F229024D44705DEB918601E904065BD59286028C8777ADDC988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2035437C83676572B6409773C4882B1C0549F6A1F6C991810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6CB73C4883BC8EDB24369D13491810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2031437C83676572B6409F73C48823915C209DC0EADA91854D7963D1AA9285D3F3A96DEA988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6CF73C488A5514D6C65350BA891854D7963D1AA9285D3F3A96DEA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2032437C83676572B640A173C4884AEFBA856E6F754A9185D3F3A96DEA928601746F787780988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D073C4880EB7B5827B04C9E39185D3F3A96DEA928601746F787780988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2033437C83676572B640A373C488DA4B1A270F2CBA2D918601746F787780928601CAF3562F95988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D173C48842F1C645A7F7BD36918601746F787780928601CAF3562F95988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2034437C83676572B640A373C488235F2DF00F2939CF918601CAF3562F9592860243DCA70E00988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D173C488E827B11E848DB1FC918601CAF3562F9592860243DCA70E00988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2035437C8367657245B941AD45BC882BA5C584E7B2BD4645BD810045DB810045DD8101B6CB73C4884083F98BD56638939181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2031437C83676572B6CF73C48887D27D4BAAD10FE69185528124F0809285E33CA4A7C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2032437C83676572B6D073C488A86B14FED8A5E8D89185E33CA4A7C0928601A8A4432F80988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2033437C83676572B6D173C488490A1345C17EB94C918601A8A4432F809286021A9C1495C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2034437C83676572B6D173C4880FEF62698FA4C6D09186021A9C1495C0928602870862CD55988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2035437C8367657245B941AF45BC88B5EC3A142B4E748845BD810045DB810045DD8101B6CB73C488D9215ADDC46A788691810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2031437C83676572B6D073C48840744B6F113604E791855E285B5500928601020052F8C0988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2032437C83676572B6D173C488AADD726D96D623D0918601020052F8C092860178FFE52707988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2033437C83676572B6D173C488450D3CFC1C0DBEAA91860178FFE52707928601E904065BD5988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2034437C83676572B6D173C48882DFE996CF5A1079918601E904065BD59286028C8777ADDC988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2035437C8367657245B941AD45BC884C3FD37500D4E9BB45BD810045DB810045DD8101B6CB73C488A6304E88CEBA4F4F91810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2031437C83676572B6CF73C4880EA366AE0F20DE5E91854D7963D1AA9285D3F3A96DEA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2032437C83676572B6D073C4887DB5682DCB498FBF9185D3F3A96DEA928601746F787780988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2033437C83676572B6D173C488D4957B08917ADF14918601746F787780928601CAF3562F95988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2034437C83676572B6D173C4886B3C4DAC8B964680918601CAF3562F9592860243DCA70E00988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2035437C83676572EC01000000000000C4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001549A966F82AD7B1830F42404D80A36C696265626D6C2076312E332E34202B206C69626D6174726F736B612076312E342E355741A36D6B766D657267652076392E382E302028274B75676C626C696473272920363462697444898442000000446188071065FB1799860073A49085E768C071C40C71A7B747ECDF9A68821654AE6B429AAE4131D7810173C588C0B1CFBEC5A2E4AD8381019C81006DE78101868F565F4D504547342F49534F2F41564363A240D301640029FFE1003327640029AC7B01E0089F9701C800009C68001D4C071300007270E0000E4E1D0397189800038FED00007270E81CB872C221145801009528EA805FCE5531CC305D2628D124868783A1C0D04E12142C0AC0DA02FCAD35E9E80EC077740B01F03D05F81E805B00B8015602CC046C1903C01542005481041C80AA0178020A0DC06C809702300B205C0E407C010FFF0B44290A43164215A201900CAE8340F81E86F03300B6017002AC05981D61A07802A8400A902087404700BC010506E036404B811805902E07203E0087FF85B023E38384027C6B2D536E8E6832363420756E746F7563686564E096B0820780BA82043854B0840000078054BA8400000438AEBCD7810273C5882AE6345801D54A958381028685415F41433323E3838401E8480022B59C83676572536E8741433320363430E189B584473B80009F8106AEC0D7810373C5885473710CC37973B48381028881008685415F41414363A28511B056E50023E3838401458555536E8741414320333230E189B584473B80009F8106AEC0D7810473C588AFC1FA4E51682F828381119C8100868A535F48444D562F50475322B59C83676572536E8D446173204EC3B67469677374656D8086624083503480AEB3D7810573C588898954B6B4650A858381118881009C8100868A535F48444D562F50475322B59C836765726D8086624083503480AEACD7810673C588041233435D9989A58381118881009C8100868A535F48444D562F5047536D8086624083503480AEBFD7810773C588187BB1D39D83E0818381118881009C8100868A535F48444D562F504753536E9068656172696E672D696D7061697265646D8086624083503480EC453F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F43B6754A0AE78100A34A04820000800B77FFC82440E1FC3CC03F1C955E1861861FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEAF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F7FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEAF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F7FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEB94F8E2448912244000000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF01F0000000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE03E0000000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00021300680CF510EDD9572307BE2607A76CD1EBBB93000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00025900CA0135E38078030D638017BFE3485FAA7002CC7E7ADD4FEB7108D6A2C5B55351E613B4A94451EB5A4FA1E614773297872C33EC64DED6D659FD4A4617F8BE2A4E416474AE476B12E87A03F6AA4A5B0EA527A54B8981109E06000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00025800C8CBF5CD6C08428CDDF673F48BC47AB5E6A4457F5EC5C6026356EBEF6589A5F4D48DE5C21F919909B8C7B3790E5E21C39186D595B16EBDA0DE48CA948843ED211F8E14F8135B31C7D4D9323FD23709107DA7A4EA4558F5000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC0EF88EC0100000000000ABD00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114D9B74AC4DBB8C53AB841549A96653AC8210034DBB8C53AB841654AE6B53AC8210804DBB8B53AB841043A77053AC8132EC01000000000000060000000000001254C36741067373BB63C08F63C988B0DA37E1082D82BB68CA813267C8A645A3855449544C45448791533032453030202D204B6F6D706C657474447A83676572448481017373C263C08F63C9882BA5C584E7B2BD4668CA813267C8AD45A3855449544C45448798533032453031202D205765636873656C2853776974636829447A83676572448481017373C263C08F63C988B5EC3A142B4E748868CA813267C8AD45A3855449544C45448798533032453032202D204B756368656E28436F62626C657229447A83676572448481017373BB63C08F63C9884C3FD37500D4E9BB68CA813267C8A645A3855449544C45448791533032453033202D20416D6172696C6C6F447A8367657244848101

    Basierend auf den Specs müsste ich mich hier durch arbeiten und das als "Code" umsetzen.

    Der Teil "Elements semantic" ist mir soweit klar, da es die Struktur ist (verschachteltes System).
    Den oberen Teil "EBML principle", insbesondere "Element ID coded with an UTF-8 like system " und "Data size, in octets, is also coded with an UTF-8 like system" sind mir nicht so recht klar.


    Bei der Beispiel Datei befinden sich vor dem "ersten" Top-Level Element (EBML mit der ID: 1A 45 DF A3) noch Daten, was ja anscheinend kein Problem ist(Datei spielt ordentlich ab).
    Das zweite Element (EBMLVersion mit der ID: 42 86) befindet sich, nach nur einem Byte, direkt dahinter.
    Was bedeutet also das eine Byte(A3) zwischen den Elementen?

    Wie und mit welchen Bytes fange ich an und wie arbeite ich mich dann durch die Daten-Struktur?


    Ich versuche abundzu den source code von Mosu zu lesen, leider kenne ich mit C-undCo nicht aus, ebenso wäre es sicher von Vorteil den Code sich mal selber zu kompileren und zu testen.
    Aber soweit ich verstehe bräuchte man da VisualStudio (oder so). Das habe ich nicht und es kostet mir auch zu viel.

  • Ich kann mich noch an solche Herausforderungen beim Parsen von AC3 erinnern: Da gab es Bitfelder mit unterschiedlicher Bedeutung und Länge, je nach dem wie ein paar vorherige Bits besetzt waren.

    Encodierung "wie UTF-8" würde ich so verstehen, dass die meisten Daten 8 bit Länge haben, aber bestimmte Bytes dienen als Einleitung für Daten mit 16 oder gar 24 bit Länge. Vielleicht findest du auch irgendwo nochmal die Beschreibung, wie das Grafikformat PCX nur bei Bedarf Lauflängencodierung (RLE) durchführt, das war ein ähnlicher Ansatz.

  • Es könnte in Arbeit ausarten ... :ani_lol:

    Das tut es doch immer.

    Ich habe mir mal ffmpeg runtergeladen, und wow, eine 39mb große datei die dann eine winzige aufgabe erfüllen soll. Das finde ich nicht so dolle.


    Naja vielleicht hat ja der ein oder andere Zeit und Lust hier mit zu denken.

    Bei meiner Beispiel Datei scheint beim kopieren der Bytes was schief gegangen zu sein.

    So wie es in den Specs steht beginnt eine Matroska Datei immer mit diesen 4 Byte [1A45DFA3]

    Code
    [COLOR='#FFA07A']1A45DFA3[/COLOR][COLOR='#FF0000']A3[/COLOR][COLOR='#FFA500']4286[/COLOR]810142F7810142F2810442F381084282886D6174726F736B614287810442858102185380670100000000002E84114D9B749E4DBB8C53AB84114D9B7453AC822D384DBB8C53AB841254C36753AC822D78EC01000000000000060000000000001043A7704EFE45B949E545BC88B0DA37E1082D82BB45BD810045DB810145DD8101B6409E73C488CE38E9122A1BCF8E9181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6CB73C488ADC820E75D84F6BE9181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2031437C83676572B640A673C4887D81E369A80125B89185528124F0809285E33CA4A7C0988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6CF73C488A3F6C059A6613F0A9185528124F0809285E33CA4A7C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2032437C83676572B640A873C488C7E6350DD9919CDA9185E33CA4A7C0928601A8A4432F80988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D073C4886D682ABFD662474A9185E33CA4A7C0928601A8A4432F80988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2033437C83676572B640AA73C488AFA65B08C69DE32F918601A8A4432F809286021A9C1495C0988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D173C48868B60A482DF68B0A918601A8A4432F809286021A9C1495C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2034437C83676572B640AA73C4880F26F97CB021217E9186021A9C1495C0928602870862CD55988101459881016E67909D27AFBC820B620EADAD3B492E4CE33980A08598533032453031202D205765636873656C2853776974636829437C83676572B6D173C488EE9BC0676DD2B1D39186021A9C1495C0928602870862CD55988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2035437C83676572B6409E73C4883611C7E29A43B6BA91810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6CB73C4884D3AD20DE59D8E3B91810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2031437C83676572B640A873C488B6A24A2524F416AF91855E285B5500928601020052F8C0988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D073C4887D8CD1FF5817596291855E285B5500928601020052F8C0988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2032437C83676572B640AA73C488E32038CF2BFB2B53918601020052F8C092860178FFE52707988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C48816B62CD0E33ABA7C918601020052F8C092860178FFE52707988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2033437C83676572B640AA73C488E46F347964A2447891860178FFE52707928601E904065BD5988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C488A819B3897247DC3B91860178FFE52707928601E904065BD5988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2034437C83676572B640AA73C488D2D6997CEF5430AA918601E904065BD59286028C8777ADDC988101459881016E67909CB953A3B3F580C98E9F2B05138D627480A08598533032453032202D204B756368656E28436F62626C657229437C83676572B6D173C488F229024D44705DEB918601E904065BD59286028C8777ADDC988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2035437C83676572B6409773C4882B1C0549F6A1F6C991810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6CB73C4883BC8EDB24369D13491810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2031437C83676572B6409F73C48823915C209DC0EADA91854D7963D1AA9285D3F3A96DEA988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6CF73C488A5514D6C65350BA891854D7963D1AA9285D3F3A96DEA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2032437C83676572B640A173C4884AEFBA856E6F754A9185D3F3A96DEA928601746F787780988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D073C4880EB7B5827B04C9E39185D3F3A96DEA928601746F787780988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2033437C83676572B640A373C488DA4B1A270F2CBA2D918601746F787780928601CAF3562F95988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D173C48842F1C645A7F7BD36918601746F787780928601CAF3562F95988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2034437C83676572B640A373C488235F2DF00F2939CF918601CAF3562F9592860243DCA70E00988101459881016E6790B78B392C49586DBEB9CE9F06600A3F5C80998591533032453033202D20416D6172696C6C6F437C83676572B6D173C488E827B11E848DB1FC918601CAF3562F9592860243DCA70E00988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2035437C8367657245B941AD45BC882BA5C584E7B2BD4645BD810045DB810045DD8101B6CB73C4884083F98BD56638939181009285528124F080988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2031437C83676572B6CF73C48887D27D4BAAD10FE69185528124F0809285E33CA4A7C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2032437C83676572B6D073C488A86B14FED8A5E8D89185E33CA4A7C0928601A8A4432F80988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2033437C83676572B6D173C488490A1345C17EB94C918601A8A4432F809286021A9C1495C0988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2034437C83676572B6D173C4880FEF62698FA4C6D09186021A9C1495C0928602870862CD55988100459881016E67909D27AFBC820B620EADAD3B492E4CE339809A8592533032453031202D204B61706974656C2035437C8367657245B941AF45BC88B5EC3A142B4E748845BD810045DB810045DD8101B6CB73C488D9215ADDC46A788691810092855E285B5500988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2031437C83676572B6D073C48840744B6F113604E791855E285B5500928601020052F8C0988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2032437C83676572B6D173C488AADD726D96D623D0918601020052F8C092860178FFE52707988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2033437C83676572B6D173C488450D3CFC1C0DBEAA91860178FFE52707928601E904065BD5988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2034437C83676572B6D173C48882DFE996CF5A1079918601E904065BD59286028C8777ADDC988100459881016E67909CB953A3B3F580C98E9F2B05138D6274809A8592533032453032202D204B61706974656C2035437C8367657245B941AD45BC884C3FD37500D4E9BB45BD810045DB810045DD8101B6CB73C488A6304E88CEBA4F4F91810092854D7963D1AA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2031437C83676572B6CF73C4880EA366AE0F20DE5E91854D7963D1AA9285D3F3A96DEA988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2032437C83676572B6D073C4887DB5682DCB498FBF9185D3F3A96DEA928601746F787780988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2033437C83676572B6D173C488D4957B08917ADF14918601746F787780928601CAF3562F95988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2034437C83676572B6D173C4886B3C4DAC8B964680918601CAF3562F9592860243DCA70E00988100459881016E6790B78B392C49586DBEB9CE9F06600A3F5C809A8592533032453033202D204B61706974656C2035437C83676572EC01000000000000C4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001549A966F82AD7B1830F42404D80A36C696265626D6C2076312E332E34202B206C69626D6174726F736B612076312E342E355741A36D6B766D657267652076392E382E302028274B75676C626C696473272920363462697444898442000000446188071065FB1799860073A49085E768C071C40C71A7B747ECDF9A68821654AE6B429AAE4131D7810173C588C0B1CFBEC5A2E4AD8381019C81006DE78101868F565F4D504547342F49534F2F41564363A240D301640029FFE1003327640029AC7B01E0089F9701C800009C68001D4C071300007270E0000E4E1D0397189800038FED00007270E81CB872C221145801009528EA805FCE5531CC305D2628D124868783A1C0D04E12142C0AC0DA02FCAD35E9E80EC077740B01F03D05F81E805B00B8015602CC046C1903C01542005481041C80AA0178020A0DC06C809702300B205C0E407C010FFF0B44290A43164215A201900CAE8340F81E86F03300B6017002AC05981D61A07802A8400A902087404700BC010506E036404B811805902E07203E0087FF85B023E38384027C6B2D536E8E6832363420756E746F7563686564E096B0820780BA82043854B0840000078054BA8400000438AEBCD7810273C5882AE6345801D54A958381028685415F41433323E3838401E8480022B59C83676572536E8741433320363430E189B584473B80009F8106AEC0D7810373C5885473710CC37973B48381028881008685415F41414363A28511B056E50023E3838401458555536E8741414320333230E189B584473B80009F8106AEC0D7810473C588AFC1FA4E51682F828381119C8100868A535F48444D562F50475322B59C83676572536E8D446173204EC3B67469677374656D8086624083503480AEB3D7810573C588898954B6B4650A858381118881009C8100868A535F48444D562F50475322B59C836765726D8086624083503480AEACD7810673C588041233435D9989A58381118881009C8100868A535F48444D562F5047536D8086624083503480AEBFD7810773C588187BB1D39D83E0818381118881009C8100868A535F48444D562F504753536E9068656172696E672D696D7061697265646D8086624083503480EC453F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001F43B6754A0AE78100A34A04820000800B77FFC82440E1FC3CC03F1C955E1861861FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEAF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F7FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEAF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F7FF3ABE7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7CF9F3E7DFFCEB94F8E2448912244000000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF01F0000000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE03E0000000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00021300680CF510EDD9572307BE2607A76CD1EBBB93000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00025900CA0135E38078030D638017BFE3485FAA7002CC7E7ADD4FEB7108D6A2C5B55351E613B4A94451EB5A4FA1E614773297872C33EC64DED6D659FD4A4617F8BE2A4E416474AE476B12E87A03F6AA4A5B0EA527A54B8981109E06000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC07C00025800C8CBF5CD6C08428CDDF673F48BC47AB5E6A4457F5EC5C6026356EBEF6589A5F4D48DE5C21F919909B8C7B3790E5E21C39186D595B16EBDA0DE48CA948843ED211F8E14F8135B31C7D4D9323FD23709107DA7A4EA4558F5000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC78F1E3BBBBBBBB80000000000000000000000000000000000000000000000007777776DB6DB6DB7CF9AD6B5AD6B5F3E7CF9F3E7CF9F3E7CF9F3E7CF800000000778F1E3C7777777770000000000000000000000000000000000000000000000000EEEEEEDB6DB6DB6F9F35AD6B5AD6BE7CF9F3E7CF9F3E7CF9F3E7CF9F000000000EF1E3C78EEEEEEEEE0000000000000000000000000000000000000000000000001DDDDDDB6DB6DB6DF3E6B5AD6B5AD7CF9F3E7CF9F3E7CF9F3E7CF9F3E000000001DE3C78F1DDDDDDDDC0000000000000000000000000000000000000000000000003BBBBBB6DB6DB6DBE7CD6B5AD6B5AF9F3E7CF9F3E7CF9F3E7CF9F3E7C000000003BC0EF88EC0100000000000ABD00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114D9B74AC4DBB8C53AB841549A96653AC8210034DBB8C53AB841654AE6B53AC8210804DBB8B53AB841043A77053AC8132EC01000000000000060000000000001254C36741067373BB63C08F63C988B0DA37E1082D82BB68CA813267C8A645A3855449544C45448791533032453030202D204B6F6D706C657474447A83676572448481017373C263C08F63C9882BA5C584E7B2BD4668CA813267C8AD45A3855449544C45448798533032453031202D205765636873656C2853776974636829447A83676572448481017373C263C08F63C988B5EC3A142B4E748868CA813267C8AD45A3855449544C45448798533032453032202D204B756368656E28436F62626C657229447A83676572448481017373BB63C08F63C9884C3FD37500D4E9BB68CA813267C8A645A3855449544C45448791533032453033202D20416D6172696C6C6F447A8367657244848101


    Um eine EBML Element ID auszulesen muss man deren länge ermitteln.
    Dies geschieht mit dem ersten Byte [1A].
    [1A] als Binär sieht dann so aus [000[COLOR='#00FF000']1[/COLOR] 1010]
    Die ersten drei "0"en werden gezählt und mann muss noch plus 1 addieren: man erhält 4.
    (Die grüne 1 ist als "Stop"marke zu betrachten, hier enden die "0"en)
    Die EBML ID ist also 4 Bytes lang was genau passt für das Element "EBML".

    Nach der Element-ID folgt die Datengröße

    Code
    Element IDs (also called EBML IDs) are outlined as follows, beginning with the ID itself, followed by the Data Size, and then the non-interpreted Binary itself:

    Wie viele Bytes das dann genau sind kann ich aus dem obrigen englishen satz nicht genau ableiten.

    Für die Beispiel Datei wäre es ja nur ein Byte [A3] denn die nächsten beiden [42][86] gehören ja schon wieder zum nächsten EBML Element(EBMLVersion).

    [A3] als Binär sieht es dann so aus [1010 0011] Es gibt keine "führenden "0"en somit erhält man 1 als Länge.
    Welches 1 Byte müsste ich nun lesen, das [A3] selber?

    Hier hänge ich noch etwas fest.

  • Ich kann mich noch an solche Herausforderungen beim Parsen von AC3 erinnern: Da gab es Bitfelder mit unterschiedlicher Bedeutung und Länge, je nach dem wie ein paar vorherige Bits besetzt waren.


    Wenn genau dokumentiert ist welche Bytes andere Bytes in bestimmter Weise beeinflussen mag das sicher alles recht kompliziert sein, aber eben auch logisch und nachvollziehbar. Und dann sollte es auch "einfach" zu programmieren sein.


    Encodierung "wie UTF-8" würde ich so verstehen, dass die meisten Daten 8 bit Länge haben, aber bestimmte Bytes dienen als Einleitung für Daten mit 16 oder gar 24 bit Länge. Vielleicht findest du auch irgendwo nochmal die Beschreibung, wie das Grafikformat PCX nur bei Bedarf Lauflängencodierung (RLE) durchführt, das war ein ähnlicher Ansatz.

    mmh... hört sich nicht so recht nach Matroska an :-). Dort wird oft auf "big-endian" hingewiesen. Leider ist mir das auch nicht 100% verständlich.
    Hat halt was mit der Bit-order oder so zu tun oder so...keine Ahnung.

  • Für die Beispiel Datei wäre es ja nur ein Byte [A3] denn die nächsten beiden [42][86] gehören ja schon wieder zum nächsten EBML Element(EBMLVersion).

    [A3] als Binär sieht es dann so aus [1010 0011] Es gibt keine "führenden "0"en somit erhält man 1 als Länge.
    Welches 1 Byte müsste ich nun lesen, das [A3] selber?


    A3 ist binär 1010 0011. In diesem Fall muß also zur Größenermittlung nur A3 gelesen werden, da es keine führenden Nullen gibt. Wie bei den Element-IDs fällt alles bis einschließlich der ersten 1 weg, also aus 1010 0011 wird 0010 0011. 0010 0011 binär sind 35 dezimal. Das heißt, dieses Element hat 35 Bytes an Inhalt. Also 4 Byte ElementID (1A45DFA3) + 1 Byte Elementgräße (A3) + 35 Byte an Daten, in diesem Fall Unterelemente. Insgesamt 40 Bytes.

  • Das "Size Byte" zählt zu den 8 Bytes dazu, fällt aber gleichzeitig natürlich komplett weg, weil alles bis einschließlich dem erst 1er Bit wegfällt. Also liest man dann nur die 7 Bytes, die nach dem Size Byte folgen und berechnet daraus die Größe des Inhalts.

    Das ist aber auch recht anschaulich in den Matroska-Specs erklärt:
    https://www.matroska.org/technical/specs/index.html

    Wenn da die Erklärungen nicht ausreichen, schau mal in die Alternativen Specs, die gerade zur Standardisierung erarbeitet werden:
    https://tools.ietf.org/html/draft-lhomme-cellar-matroska-01
    https://github.com/Matroska-Org/e…cation.markdown

  • Das "Size Byte" zählt zu den 8 Bytes dazu, fällt aber gleichzeitig natürlich komplett weg, weil alles bis einschließlich dem erst 1er Bit wegfällt. Also liest man dann nur die 7 Bytes, die nach dem Size Byte folgen und berechnet daraus die Größe des Inhalts.


    Ok, das macht Sinn.


    Das ist aber auch recht anschaulich in den Matroska-Specs erklärt:
    https://www.matroska.org/technical/specs/index.html

    Ja das schon, aber leider war ich im English Unterricht sehr oft Kreide holen, daher verstehe ich nicht immer den sinn. Google Translater ist zwar gut aber auch nicht immer richtig. Dazu kommt dann noch das manche Begriffe schon recht spezifisch sind und man müsste sich da auch erst noch bilden.



    Wenn da die Erklärungen nicht ausreichen, schau mal in die Alternativen Specs, die gerade zur Standardisierung erarbeitet werden:
    https://tools.ietf.org/html/draft-lhomme-cellar-matroska-01
    https://github.com/Matroska-Org/e…cation.markdown

    Danke für die beiden Links, sind echt gute Hilfen.

  • Hi sneaker2

    Könntest du mir vielleicht bei einem Problem helfen?

    Es geht um die Spieldauer einer Matroska Datei.
    In der "Info" gibt es das Element: Duration, aber dieser Wert stimmt eigentlich nie. Denn Media Info und die Player zeigen eine andere Spieldauer.

    Mosu meinte ich müsste das selber errechnen...da fällt mir nur die FPS und die Anzahl der Frames ein. Wie und woher würde ich diese Werte aus der Matroska Datei bekommen?

    Ich hatte geshen das "Cluster" einen Zeitstempel haben, und dieser auch "mandatory" ist.
    Es scheint ein zuverlässiger Wert zu sein. Wie berechnet sich aber die Dauer eines Clusters?
    Und ist es schlau das mit den Clustern zu machen, man könnte zum letzten Cluster parsen und dann dessen Dauer addieren.


    LG
    hubble


  • In der "Info" gibt es das Element: Duration, aber dieser Wert stimmt eigentlich nie. Denn Media Info und die Player zeigen eine andere Spieldauer.

    Für Audiotracks, Video oder beide?
    Frames und Dauer zeigen ffmpeg/ffprobe an.

    Code
    ffprobe -show_frames video.mkv
  • Für Audiotracks, Video oder beide?


    Die Duration aus der SegmentInfo meinte ich, was die jetzt genau wiederspiegelt, ob Video oder Audio weis ich nicht genau.
    Es scheint das dort der "größte" Wert gespeichert wird, der bei mehreren Spuren gefunden wurde.

    Wichtig für mich ist die Video-Dauer.


    Frames und Dauer zeigen ffmpeg/ffprobe an.

    Code
    ffprobe -show_frames video.mkv


    Danke für den Hinweis, wollte aber gerne wieder ohne ffmpeg und Co das bewerkstelligen.

  • Es geht um die Spieldauer einer Matroska Datei.
    In der "Info" gibt es das Element: Duration, aber dieser Wert stimmt eigentlich nie. Denn Media Info und die Player zeigen eine andere Spieldauer.


    Naja, da müßte man zuerst mal eine Definition dessen haben, was genau "die Spieldauer" eigentlich sein soll. Mit "fps" ist schlecht, denn Matroska ist bekanntlich variabel.

    Anfang des ersten Blocks bis letzter Block (+Default Duration o.ä.) hört sich vernünftig an, aber dann ist die Frage, welche Tracks man sich anschauen möchte, denn das ist ja für jeden anders. Mkvmerge taggt da auch jeden Track einzeln mit dieser Info. Also statt "Definition" vielleicht noch eher die Frage nach dem Zweck... Ich wüßte nicht, warum da MediaInfo oder irgendein Player das Maß der Dinge sein sollten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!