KO
|
EN
gitlite — search
Search
#javascript
#python
#hacktoberfest
#react
#ai
#typescript
#llm
#go
#golang
#android
#machine-learning
#rust
#deep-learning
#linux
node-matroska
★ 26
Open GitHub ↗
Matroska library written for nodejs
Download README (.md)
Explore Similar Repositories
go-matroska
:
Golang: Matroska and WebM Format
ChapSnap
:
Resync Chapters by snapping them to Scene Changes
pymplschapters
:
Extract chapters from a Blu-ray .mpls to a Matroska recognized XML file
aeyae
:
apprenticevideo (video player), aeyae remux (video remuxer), yaetv (digital video recorder), yamka (matroska format toolkit), yathe (legacy code for 3D geometry transforms, bezier curves, spline curves, and UI abstraction layers)
An_Archivists_Guide_To_Matroska
:
No description available.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
node-matroska
?
Download (.md)
# node-matroska Matroska library written for nodejs # Fork of node-ebml It is a fork of https://github.com/themasch/node-ebml # VERY Fast parsing Fast and incomplete parsing of a mkv file: (we keep only metadatas) ```js var matroska = require('matroska'); var url="http://download.wavetlan.com/SVV/Media/HTTP/mkv/H264_PCM(mkvmerge).mkv"; matroska.Decoder.parseInfoTagsAndAttachments(url, function(error, document) { if (error) { console.error(error); return; } console.log(document.print()); }); ``` Returns a tree: (format: offset#tagId * node) ```` 0#0 * Document [HttpSource url=http://download.wavetlan.com/SVV/Media/HTTP/mkv/H264_PCM(mkvmerge).mkv] 0#1 * EBML children[size=40] 5#2 * EBMLVersion u[1]=1 9#3 * EBMLReadVersion u[1]=1 13#4 * EBMLMaxIDLength u[1]=4 17#5 * EBMLMaxSizeLength u[1]=8 21#6 * DocType s[8]='matroska' 32#7 * DocTypeVersion u[1]=2 36#8 * DocTypeReadVersion u[1]=2 40#9 * Segment children[size=40316440] 52#10 * SeekHead children[size=52] 57#11 * Seek children[size=15] 60#12 * SeekID b[4]=1549a966 => Info 67#13 * SeekPosition u[2]=4099 [=>#20] 72#14 * Seek children[size=15] 75#15 * SeekID b[4]=1654ae6b => Tracks 82#16 * SeekPosition u[2]=4248 87#17 * Seek children[size=17] 90#18 * SeekID b[4]=1c53bb6b => Cues 97#19 * SeekPosition u[4]=40315034 4151#20 * Info children[size=149] 4157#21 * TimecodeScale u[3]=1000000 4164#22 * MuxingApp 8[35]='libebml v1.2.1 + libmatroska v1.1.1' 4202#23 * WritingApp 8[58]='mkvmerge v4.9.1 ('Ich will') built on Jul 11 2011 23:53:15' 4263#24 * Duration f[4]=388000 4270#25 * DateUTC d[8]=Fri Sep 23 2011 00:33:39 GMT+0200 (Paris, Madrid (heure d’été)) 4281#26 * SegmentUID b[16]=8e9c49d7b307eb148bd386041b43d6ca ``` # COMPLETE parsing Complete parsing of a mkv: ```js var matroska = require('matroska'); var url="http://download.wavetlan.com/SVV/Media/HTTP/mkv/H264_mp3(mkvmerge).mkv"; var decoder = new matroska.Decoder(); decoder.parse(url, function(error, document) { if (error) { console.error(error); return; } console.log(document.print()); }); ``` Returns: ``` 0#0 * Document [FileSource file=G:\Downloads\H264_mp3(mkvmerge).mkv] 0#1 * EBML children[size=40] 5#2 * EBMLVersion u[1]=1 9#3 * EBMLReadVersion u[1]=1 13#4 * EBMLMaxIDLength u[1]=4 17#5 * EBMLMaxSizeLength u[1]=8 21#6 * DocType s[8]='matroska' 32#7 * DocTypeVersion u[1]=2 36#8 * DocTypeReadVersion u[1]=2 40#9 * Segment children[size=3661175] 52#10 * SeekHead children[size=51] 57#11 * Seek children[size=15] 60#12 * SeekID b[4]=1549a966 => Info 67#13 * SeekPosition u[2]=4099 [=>#21] 72#14 * Seek children[size=15] 75#15 * SeekID b[4]=1654ae6b => Tracks 82#16 * SeekPosition u[2]=4248 [=>#28] 87#17 * Seek children[size=16] 90#18 * SeekID b[4]=1c53bb6b => Cues 97#19 * SeekPosition u[3]=3660935 [=>#2109] 103#20 * Void b[4045] 4151#21 * Info children[size=149] 4157#22 * TimecodeScale u[3]=1000000 4164#23 * MuxingApp 8[35]='libebml v1.2.1 + libmatroska v1.1.1' 4202#24 * WritingApp 8[58]='mkvmerge v4.9.1 ('Ich will') built on Jul 11 2011 23:53:15' 4263#25 * Duration f[4]=69956 4270#26 * DateUTC d[8]=Fri Sep 23 2011 00:17:39 GMT+0200 (Paris, Madrid (heure d’été)) 4281#27 * SegmentUID b[16]=bcb1c3b73d5109e98863c2955602b063 4300#28 * Tracks children[size=217] 4306#29 * TrackEntry children[size=142] 4309#30 * TrackNumber u[1]=1 4312#31 * TrackUID u[4]=644805295 4319#32 * TrackType u[1]=1 4322#33 * FlagLacing u[1]=0 4325#34 * MinCache u[1]=1 4329#35 * CodecID s[15]='V_MPEG4/ISO/AVC' 4346#36 * CodecPrivate b[43]=0142c00cffe1001c6742c00c9a740501edff807800c988000003000800000301 4392#37 * DefaultDuration u[4]=41666666 4400#38 * Language s[3]='und' 4407#39 * Video children[size=24] 4409#40 * PixelWidth u[2]=640 4413#41 * PixelHeight u[2]=480 4417#42 * DisplayWidth u[4]=640 4424#43 * DisplayHeight u[4]=806 4431#44 * ContentEncodings children[size=17] 4434#45 * ContentEncoding children[size=14] 4437#46 * ContentCompression children[size=11] 4440#47 * ContentCompAlgo u[1]=3 4444#48 * ContentCompSettings b[1]=00 4448#49 * TrackEntry children[size=69] 4450#50 * TrackNumber u[1]=2 4453#51 * TrackUID u[4]=1713889946 4460#52 * TrackType u[1]=2 4463#53 * CodecID s[9]='A_MPEG/L3' 4474#54 * DefaultDuration u[4]=26122448 4482#55 * Language s[3]='und' 4489#56 * Audio children[size=11] 4491#57 * SamplingFrequency f[4]=22050 4497#58 * Channels u[1]=2 4500#59 * ContentEncodings children[size=17] 4503#60 * ContentEncoding children[size=14] 4506#61 * ContentCompression children[size=11] 4509#62 * ContentCompAlgo u[1]=3 4513#63 * ContentCompSettings b[1]=ff 4517#64 * Void b[1108] 5628#65 * Cluster children[size=290112] 5635#66 * Timecode u[1]=0 5638#67 * SimpleBlock b[1439] 7080#68 * SimpleBlock b[4184] 11267#69 * SimpleBlock b[134] 11404#70 * SimpleBlock b[19] 11425#71 * SimpleBlock b[308] ... 288918#206 * SimpleBlock b[1573] 290494#207 * SimpleBlock b[5243] 295740#208 * Cluster children[size=246364] 295747#209 * Timecode u[2]=4875 295751#210 * SimpleBlock b[2613] ... 3397072#1958 * SimpleBlock b[2136] 3399211#1959 * Cluster children[size=259667] 3399218#1960 * Timecode u[2]=64833 3399222#1961 * SimpleBlock b[3913] ... 3657216#2101 * SimpleBlock b[148] 3657367#2102 * SimpleBlock b[1268] 3658638#2103 * BlockGroup children[size=240] 3658641#2104 * Block b[231] 3658875#2105 * ReferenceBlock i[1]=-42 3658878#2106 * Cluster children[size=2109] 3658884#2107 * Timecode u[3]=69851 3658889#2108 * SimpleBlock b[2095] 3660987#2109 * Cues children[size=228] 3660993#2110 * CuePoint children[size=14] 3660995#2111 * CueTime u[1]=0 3660998#2112 * CueTrackPositions children[size=9] 3661000#2113 * CueTrack u[1]=1 3661003#2114 * CueClusterPosition u[2]=5576 [=>#65] 3661007#2115 * CuePoint children[size=16] 3661009#2116 * CueTime u[2]=4875 3661013#2117 * CueTrackPositions children[size=10] 3661015#2118 * CueTrack u[1]=1 3661018#2119 * CueClusterPosition u[3]=295688 [=>#208] ... 3661199#2175 * CuePoint children[size=16] 3661201#2176 * CueTime u[2]=64833 3661205#2177 * CueTrackPositions children[size=10] 3661207#2178 * CueTrack u[1]=1 3661210#2179 * CueClusterPosition u[3]=3399159 [=>#1959] ``` # Edition of MKV ... it works, samples soon :-)