@remotion/media-parser 4.0.208 → 4.0.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/buffer.js +2 -0
  2. package/dist/boxes/iso-base-media/get-sample-positions-from-track.js +1 -1
  3. package/dist/boxes/iso-base-media/make-track.js +14 -2
  4. package/dist/boxes/iso-base-media/mdat/mdat.d.ts +2 -1
  5. package/dist/boxes/iso-base-media/mdat/mdat.js +8 -3
  6. package/dist/boxes/iso-base-media/moov/moov.d.ts +2 -1
  7. package/dist/boxes/iso-base-media/moov/moov.js +2 -1
  8. package/dist/boxes/iso-base-media/process-box.d.ts +6 -3
  9. package/dist/boxes/iso-base-media/process-box.js +20 -5
  10. package/dist/boxes/iso-base-media/stsd/avcc.d.ts +1 -1
  11. package/dist/boxes/iso-base-media/stsd/avcc.js +2 -2
  12. package/dist/boxes/iso-base-media/stsd/ctts.js +2 -5
  13. package/dist/boxes/iso-base-media/stsd/hvcc.d.ts +1 -1
  14. package/dist/boxes/iso-base-media/stsd/hvcc.js +2 -2
  15. package/dist/boxes/iso-base-media/stsd/mebx.d.ts +2 -1
  16. package/dist/boxes/iso-base-media/stsd/mebx.js +2 -1
  17. package/dist/boxes/iso-base-media/stsd/samples.d.ts +4 -2
  18. package/dist/boxes/iso-base-media/stsd/samples.js +69 -11
  19. package/dist/boxes/iso-base-media/stsd/stsd.d.ts +2 -1
  20. package/dist/boxes/iso-base-media/stsd/stsd.js +2 -1
  21. package/dist/boxes/iso-base-media/trak/trak.d.ts +2 -1
  22. package/dist/boxes/iso-base-media/trak/trak.js +2 -1
  23. package/dist/boxes/iso-base-media/traversal.d.ts +44 -0
  24. package/dist/boxes/iso-base-media/traversal.js +211 -0
  25. package/dist/boxes/webm/color.d.ts +4 -0
  26. package/dist/boxes/webm/color.js +120 -0
  27. package/dist/boxes/webm/description.js +1 -1
  28. package/dist/boxes/webm/get-ready-tracks.js +3 -3
  29. package/dist/boxes/webm/get-sample-from-block.js +1 -1
  30. package/dist/boxes/webm/get-track.js +16 -1
  31. package/dist/boxes/webm/make-track.d.ts +9 -0
  32. package/dist/boxes/webm/make-track.js +260 -0
  33. package/dist/boxes/webm/parse-ebml.js +5 -2
  34. package/dist/boxes/webm/segments/all-segments.d.ts +36 -3
  35. package/dist/boxes/webm/segments/all-segments.js +34 -6
  36. package/dist/boxes/webm/traversal.d.ts +26 -1
  37. package/dist/boxes/webm/traversal.js +214 -1
  38. package/dist/buffer-iterator.js +6 -0
  39. package/dist/create/cluster-segment.d.ts +1 -1
  40. package/dist/create/cluster-segment.js +3 -5
  41. package/dist/create/cluster.d.ts +13 -0
  42. package/dist/create/cluster.js +54 -0
  43. package/dist/create/create-media.d.ts +4 -2
  44. package/dist/create/create-media.js +87 -47
  45. package/dist/create/cues.d.ts +0 -0
  46. package/dist/create/cues.js +1 -0
  47. package/dist/create/make-duration-with-padding.d.ts +1 -0
  48. package/dist/create/make-duration-with-padding.js +15 -0
  49. package/dist/create/matroska-cues.d.ts +6 -0
  50. package/dist/create/matroska-cues.js +50 -0
  51. package/dist/create/matroska-info.d.ts +1 -2
  52. package/dist/create/matroska-info.js +3 -11
  53. package/dist/create/matroska-seek.d.ts +6 -0
  54. package/dist/create/matroska-seek.js +32 -0
  55. package/dist/create/matroska-segment.d.ts +1 -0
  56. package/dist/create/matroska-segment.js +3 -2
  57. package/dist/create/matroska-trackentry.d.ts +9 -14
  58. package/dist/create/matroska-trackentry.js +79 -94
  59. package/dist/create/timescale.d.ts +1 -0
  60. package/dist/create/timescale.js +4 -0
  61. package/dist/emit-available-info.d.ts +12 -0
  62. package/dist/emit-available-info.js +133 -0
  63. package/dist/esm/buffer.mjs +57 -0
  64. package/dist/esm/from-fetch.mjs +72 -0
  65. package/dist/esm/from-node.mjs +48 -0
  66. package/dist/esm/from-web-file.mjs +48 -0
  67. package/dist/esm/index.mjs +6689 -0
  68. package/dist/esm/web-fs.mjs +67 -0
  69. package/dist/get-audio-codec.d.ts +5 -5
  70. package/dist/get-audio-codec.js +41 -57
  71. package/dist/get-container.d.ts +4 -0
  72. package/dist/get-container.js +26 -0
  73. package/dist/get-duration.js +1 -1
  74. package/dist/get-fps.js +1 -1
  75. package/dist/get-sample-aspect-ratio.d.ts +1 -1
  76. package/dist/get-sample-aspect-ratio.js +19 -19
  77. package/dist/get-tracks.d.ts +13 -0
  78. package/dist/get-tracks.js +8 -8
  79. package/dist/get-video-codec.d.ts +5 -2
  80. package/dist/get-video-codec.js +111 -21
  81. package/dist/has-all-info.d.ts +2 -2
  82. package/dist/has-all-info.js +23 -9
  83. package/dist/index.d.ts +3 -1
  84. package/dist/options.d.ts +97 -30
  85. package/dist/parse-media.js +43 -62
  86. package/dist/parse-video.d.ts +2 -1
  87. package/dist/parse-video.js +3 -1
  88. package/dist/parser-state.js +1 -2
  89. package/dist/readers/from-fetch.js +24 -4
  90. package/dist/readers/from-node.js +13 -3
  91. package/dist/readers/from-web-file.js +14 -2
  92. package/dist/readers/reader.d.ts +6 -1
  93. package/dist/samples-from-moof.js +1 -1
  94. package/dist/traversal.d.ts +0 -21
  95. package/dist/traversal.js +1 -158
  96. package/dist/truthy.d.ts +3 -0
  97. package/dist/truthy.js +7 -0
  98. package/dist/writers/buffer.d.ts +2 -0
  99. package/dist/writers/buffer.js +58 -0
  100. package/dist/writers/web-fs.d.ts +1 -0
  101. package/dist/writers/web-fs.js +42 -18
  102. package/dist/writers/writer.d.ts +4 -2
  103. package/fetch.js +2 -0
  104. package/node.js +2 -0
  105. package/package.json +43 -8
  106. package/web-file.js +2 -0
  107. package/web-fs.js +2 -0
  108. package/.eslintrc +0 -8
  109. package/input.webm +0 -0
  110. package/src/add-new-matroska-tracks.ts +0 -23
  111. package/src/boxes/iso-base-media/base-type.ts +0 -4
  112. package/src/boxes/iso-base-media/esds/decoder-specific-config.ts +0 -68
  113. package/src/boxes/iso-base-media/esds/esds-descriptors.ts +0 -135
  114. package/src/boxes/iso-base-media/esds/esds.ts +0 -49
  115. package/src/boxes/iso-base-media/ftyp.ts +0 -39
  116. package/src/boxes/iso-base-media/get-sample-positions-from-track.ts +0 -69
  117. package/src/boxes/iso-base-media/make-track.ts +0 -116
  118. package/src/boxes/iso-base-media/mdat/mdat.ts +0 -140
  119. package/src/boxes/iso-base-media/mdhd.ts +0 -59
  120. package/src/boxes/iso-base-media/moov/moov.ts +0 -43
  121. package/src/boxes/iso-base-media/mvhd.ts +0 -114
  122. package/src/boxes/iso-base-media/process-box.ts +0 -748
  123. package/src/boxes/iso-base-media/stsd/av1c.ts +0 -19
  124. package/src/boxes/iso-base-media/stsd/avcc.ts +0 -36
  125. package/src/boxes/iso-base-media/stsd/colr.ts +0 -49
  126. package/src/boxes/iso-base-media/stsd/ctts.ts +0 -64
  127. package/src/boxes/iso-base-media/stsd/hvcc.ts +0 -32
  128. package/src/boxes/iso-base-media/stsd/keys.ts +0 -27
  129. package/src/boxes/iso-base-media/stsd/mebx.ts +0 -54
  130. package/src/boxes/iso-base-media/stsd/pasp.ts +0 -32
  131. package/src/boxes/iso-base-media/stsd/samples.ts +0 -359
  132. package/src/boxes/iso-base-media/stsd/stco.ts +0 -52
  133. package/src/boxes/iso-base-media/stsd/stsc.ts +0 -61
  134. package/src/boxes/iso-base-media/stsd/stsd.ts +0 -55
  135. package/src/boxes/iso-base-media/stsd/stss.ts +0 -47
  136. package/src/boxes/iso-base-media/stsd/stsz.ts +0 -75
  137. package/src/boxes/iso-base-media/stsd/stts.ts +0 -62
  138. package/src/boxes/iso-base-media/tfdt.ts +0 -37
  139. package/src/boxes/iso-base-media/tfhd.ts +0 -66
  140. package/src/boxes/iso-base-media/tkhd.ts +0 -150
  141. package/src/boxes/iso-base-media/to-date.ts +0 -9
  142. package/src/boxes/iso-base-media/trak/trak.ts +0 -43
  143. package/src/boxes/iso-base-media/trun.ts +0 -74
  144. package/src/boxes/iso-base-media/void-box.ts +0 -4
  145. package/src/boxes/webm/allowed-partial-segments.ts +0 -1
  146. package/src/boxes/webm/av1-codec-private.ts +0 -113
  147. package/src/boxes/webm/description.ts +0 -104
  148. package/src/boxes/webm/ebml.ts +0 -98
  149. package/src/boxes/webm/get-ready-tracks.ts +0 -36
  150. package/src/boxes/webm/get-sample-from-block.ts +0 -125
  151. package/src/boxes/webm/get-track.ts +0 -257
  152. package/src/boxes/webm/make-header.ts +0 -253
  153. package/src/boxes/webm/parse-ebml.ts +0 -255
  154. package/src/boxes/webm/parse-webm-header.ts +0 -18
  155. package/src/boxes/webm/segments/all-segments.ts +0 -888
  156. package/src/boxes/webm/segments/block-simple-block-flags.ts +0 -52
  157. package/src/boxes/webm/segments/parse-children.ts +0 -144
  158. package/src/boxes/webm/segments/track-entry.ts +0 -38
  159. package/src/boxes/webm/segments.ts +0 -147
  160. package/src/boxes/webm/traversal.ts +0 -45
  161. package/src/buffer-iterator.ts +0 -548
  162. package/src/create/cluster-segment.ts +0 -62
  163. package/src/create/create-media.ts +0 -172
  164. package/src/create/matroska-header.ts +0 -63
  165. package/src/create/matroska-info.ts +0 -46
  166. package/src/create/matroska-segment.ts +0 -10
  167. package/src/create/matroska-trackentry.ts +0 -325
  168. package/src/get-audio-codec.ts +0 -270
  169. package/src/get-dimensions.ts +0 -47
  170. package/src/get-duration.ts +0 -103
  171. package/src/get-fps.ts +0 -113
  172. package/src/get-sample-aspect-ratio.ts +0 -204
  173. package/src/get-sample-positions.ts +0 -93
  174. package/src/get-tracks.ts +0 -147
  175. package/src/get-video-codec.ts +0 -117
  176. package/src/has-all-info.ts +0 -81
  177. package/src/index.ts +0 -18
  178. package/src/make-hvc1-codec-strings.ts +0 -55
  179. package/src/options.ts +0 -118
  180. package/src/parse-media.ts +0 -183
  181. package/src/parse-result.ts +0 -79
  182. package/src/parse-video.ts +0 -83
  183. package/src/parser-context.ts +0 -10
  184. package/src/parser-state.ts +0 -178
  185. package/src/readers/from-fetch.ts +0 -90
  186. package/src/readers/from-node.ts +0 -51
  187. package/src/readers/from-web-file.ts +0 -49
  188. package/src/readers/reader.ts +0 -15
  189. package/src/samples-from-moof.ts +0 -102
  190. package/src/test/aspect-ratio.test.ts +0 -42
  191. package/src/test/av1.test.ts +0 -108
  192. package/src/test/create-matroska.test.ts +0 -287
  193. package/src/test/duration.test.ts +0 -18
  194. package/src/test/keys.test.ts +0 -47
  195. package/src/test/matroska.test.ts +0 -463
  196. package/src/test/mvhd.test.ts +0 -94
  197. package/src/test/parse-esds.test.ts +0 -98
  198. package/src/test/parse-stco.test.ts +0 -61
  199. package/src/test/parse-stsc.test.ts +0 -104
  200. package/src/test/parse-stsz.test.ts +0 -57
  201. package/src/test/parse-stts.test.ts +0 -38
  202. package/src/test/parse-video.test.ts +0 -101
  203. package/src/test/parse-webm.test.ts +0 -17
  204. package/src/test/samples-from-moof.test.ts +0 -2496
  205. package/src/test/stream-local.test.ts +0 -743
  206. package/src/test/stream-remote.test.ts +0 -59
  207. package/src/test/stream-samples.test.ts +0 -181
  208. package/src/test/stsd.test.ts +0 -265
  209. package/src/test/tkhd.test.ts +0 -87
  210. package/src/traversal.ts +0 -528
  211. package/src/webcodec-sample-types.ts +0 -29
  212. package/src/writers/web-fs.ts +0 -50
  213. package/src/writers/writer.ts +0 -12
  214. package/tsconfig.json +0 -14
  215. package/tsconfig.tsbuildinfo +0 -1
@@ -1,104 +0,0 @@
1
- import {expect, test} from 'bun:test';
2
- import {parseStsc} from '../boxes/iso-base-media/stsd/stsc';
3
- import {getArrayBufferIterator} from '../buffer-iterator';
4
-
5
- test('Parse stsc box', () => {
6
- const buffer = Uint8Array.from([
7
- // mock header
8
- 0, 0, 0, 0, 0, 0, 0, 0,
9
- // actual box
10
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0,
11
- 0, 0, 1, 0, 0, 0, 1,
12
- ]);
13
-
14
- const iterator = getArrayBufferIterator(buffer, null);
15
- iterator.counter.increment(8);
16
- const result = parseStsc({
17
- iterator,
18
- offset: 0,
19
- size: buffer.length - 8,
20
- });
21
-
22
- expect(result).toEqual({
23
- boxSize: 32,
24
- flags: [0, 0, 0],
25
- offset: 0,
26
- type: 'stsc-box',
27
- version: 0,
28
- entryCount: 2,
29
- entries: [
30
- {
31
- firstChunk: 1,
32
- samplesPerChunk: 2,
33
- },
34
- {
35
- firstChunk: 2,
36
- samplesPerChunk: 1,
37
- },
38
- ],
39
- });
40
- });
41
-
42
- test('Parse stsc box 2', () => {
43
- const buffer = Uint8Array.from([
44
- // mock header
45
- 0, 0, 0, 0, 0, 0, 0, 0,
46
- // actual box
47
- 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0,
48
- 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0,
49
- 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0,
50
- 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 4,
51
- 0, 0, 0, 1,
52
- ]);
53
-
54
- const iterator = getArrayBufferIterator(buffer, null);
55
- iterator.counter.increment(8);
56
- const result = parseStsc({
57
- iterator,
58
- offset: 0,
59
- size: buffer.length - 8,
60
- });
61
-
62
- expect(result).toEqual({
63
- boxSize: 104,
64
- flags: [0, 0, 0],
65
- offset: 0,
66
- type: 'stsc-box',
67
- version: 0,
68
- entryCount: 8,
69
- entries: [
70
- {
71
- firstChunk: 1,
72
- samplesPerChunk: 1,
73
- },
74
- {
75
- firstChunk: 2,
76
- samplesPerChunk: 2,
77
- },
78
- {
79
- firstChunk: 3,
80
- samplesPerChunk: 1,
81
- },
82
- {
83
- firstChunk: 4,
84
- samplesPerChunk: 2,
85
- },
86
- {
87
- firstChunk: 5,
88
- samplesPerChunk: 1,
89
- },
90
- {
91
- firstChunk: 7,
92
- samplesPerChunk: 2,
93
- },
94
- {
95
- firstChunk: 8,
96
- samplesPerChunk: 1,
97
- },
98
- {
99
- firstChunk: 9,
100
- samplesPerChunk: 4,
101
- },
102
- ],
103
- });
104
- });
@@ -1,57 +0,0 @@
1
- import {expect, test} from 'bun:test';
2
- import {parseStsz} from '../boxes/iso-base-media/stsd/stsz';
3
- import {getArrayBufferIterator} from '../buffer-iterator';
4
-
5
- test('parse stsz box 1', () => {
6
- const buf = new Uint8Array([
7
- // mock header
8
- 0, 0, 0, 0, 0, 0, 0, 0,
9
- // actual box
10
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 18, 226, 0, 0, 1, 181, 0, 0, 2,
11
- 186, 0, 0, 2, 83, 0, 0, 2, 36, 0, 0, 2, 99, 0, 0, 2, 189, 0, 0, 2, 23, 0, 0,
12
- 3, 8, 0, 0, 2, 74, 0, 0, 0, 52, 115, 116, 99, 111,
13
- ]);
14
- const iterator = getArrayBufferIterator(buf, null);
15
- iterator.counter.increment(8);
16
- const result = parseStsz({
17
- iterator,
18
- size: buf.length - 8,
19
- offset: 0,
20
- });
21
- expect(result).toEqual({
22
- type: 'stsz-box',
23
- boxSize: 60,
24
- offset: 0,
25
- version: 0,
26
- flags: [0, 0, 0],
27
- sampleCount: 10,
28
- countType: 'variable',
29
- entries: [4834, 437, 698, 595, 548, 611, 701, 535, 776, 586],
30
- });
31
- });
32
-
33
- test('parse stsz box 2', () => {
34
- const buf = new Uint8Array([
35
- // mock header
36
- 0, 0, 0, 0, 0, 0, 0, 0,
37
- // actual box
38
- 0, 0, 0, 0, 0, 0, 3, 192, 0, 0, 0, 15, 0, 0, 0, 52, 115, 116, 99, 111,
39
- ]);
40
- const iterator = getArrayBufferIterator(buf, null);
41
- iterator.counter.increment(8);
42
- const result = parseStsz({
43
- iterator,
44
- size: buf.length - 8,
45
- offset: 0,
46
- });
47
- expect(result).toEqual({
48
- type: 'stsz-box',
49
- boxSize: 20,
50
- offset: 0,
51
- version: 0,
52
- flags: [0, 0, 0],
53
- sampleCount: 15,
54
- sampleSize: 960,
55
- countType: 'fixed',
56
- });
57
- });
@@ -1,38 +0,0 @@
1
- import {expect, test} from 'bun:test';
2
- import {parseStts} from '../boxes/iso-base-media/stsd/stts';
3
- import {getArrayBufferIterator} from '../buffer-iterator';
4
-
5
- const buffer = new Uint8Array([
6
- // mock header
7
- 0, 0, 0, 0, 0, 0, 0, 0,
8
- // actual box
9
- 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 13, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 21, 0,
10
- 0, 0, 107, 0, 0, 0, 20, 0, 0, 11, 216, 99, 116, 116, 115,
11
- ]);
12
-
13
- test('Should parse stts box', () => {
14
- const iterator = getArrayBufferIterator(buffer, null);
15
- iterator.counter.increment(8);
16
- const result = parseStts({
17
- data: iterator,
18
- size: buffer.length - 8,
19
- fileOffset: 0,
20
- });
21
- expect(result).toEqual({
22
- type: 'stts-box',
23
- sampleDistribution: [
24
- {
25
- sampleCount: 269,
26
- sampleDelta: 20,
27
- },
28
- {
29
- sampleCount: 1,
30
- sampleDelta: 21,
31
- },
32
- {
33
- sampleCount: 107,
34
- sampleDelta: 20,
35
- },
36
- ],
37
- });
38
- });
@@ -1,101 +0,0 @@
1
- import {RenderInternals} from '@remotion/renderer';
2
- import {expect, test} from 'bun:test';
3
- import {parseMedia} from '../parse-media';
4
- import {nodeReader} from '../readers/from-node';
5
-
6
- test('Parse Big Buck bunny', async () => {
7
- const data = await parseMedia({
8
- src: RenderInternals.exampleVideos.bigBuckBunny,
9
- fields: {
10
- boxes: true,
11
- },
12
- reader: nodeReader,
13
- });
14
- expect(data.boxes.slice(0, 2)).toEqual([
15
- {
16
- offset: 0,
17
- boxSize: 32,
18
- type: 'ftyp-box',
19
- majorBrand: 'isom',
20
- minorVersion: 512,
21
- compatibleBrands: ['isom', 'iso2', 'avc1', 'mp41'],
22
- },
23
- {
24
- offset: 32,
25
- boxSize: 8,
26
- boxType: 'free',
27
- type: 'regular-box',
28
- children: [],
29
- },
30
- ]);
31
- });
32
-
33
- test('Parse framer', async () => {
34
- const parsed = await parseMedia({
35
- src: RenderInternals.exampleVideos.framerWithoutFileExtension,
36
- fields: {
37
- boxes: true,
38
- },
39
- reader: nodeReader,
40
- });
41
- expect(parsed.boxes.slice(0, 2)).toEqual([
42
- {
43
- offset: 0,
44
- boxSize: 32,
45
- compatibleBrands: ['isom', 'iso2', 'avc1', 'mp41'],
46
- majorBrand: 'isom',
47
- minorVersion: 512,
48
- type: 'ftyp-box',
49
- },
50
- {
51
- offset: 32,
52
- boxSize: 8,
53
- boxType: 'free',
54
- type: 'regular-box',
55
- children: [],
56
- },
57
- ]);
58
- });
59
-
60
- test('Parse a full video', async () => {
61
- const data = await parseMedia({
62
- src: RenderInternals.exampleVideos.framer24fps,
63
- fields: {boxes: true},
64
- reader: nodeReader,
65
- });
66
- if (!data) throw new Error('No data');
67
-
68
- const [first, second, third] = data.boxes;
69
-
70
- expect(first).toEqual({
71
- offset: 0,
72
- boxSize: 32,
73
- type: 'ftyp-box',
74
- majorBrand: 'isom',
75
- minorVersion: 512,
76
- compatibleBrands: ['isom', 'iso2', 'avc1', 'mp41'],
77
- });
78
- expect(second).toEqual({
79
- offset: 32,
80
- boxType: 'free',
81
- boxSize: 8,
82
- type: 'regular-box',
83
- children: [],
84
- });
85
- expect(third).toEqual({
86
- type: 'mdat-box',
87
- boxSize: 57014,
88
- samplesProcessed: false,
89
- fileOffset: 40,
90
- });
91
- });
92
-
93
- test('Should warn if missing node reader', () => {
94
- const data = parseMedia({
95
- src: RenderInternals.exampleVideos.framer24fps,
96
- fields: {
97
- boxes: true,
98
- },
99
- });
100
- expect(data).rejects.toThrow(/node/);
101
- });
@@ -1,17 +0,0 @@
1
- import {RenderInternals} from '@remotion/renderer';
2
- import {expect, test} from 'bun:test';
3
- import {parseMedia} from '../parse-media';
4
- import {nodeReader} from '../readers/from-node';
5
-
6
- test('should be able to parse a WebM', async () => {
7
- const webm = await parseMedia({
8
- src: RenderInternals.exampleVideos.transparentWebm,
9
- fields: {
10
- durationInSeconds: true,
11
- videoCodec: true,
12
- },
13
- reader: nodeReader,
14
- });
15
- expect(webm.durationInSeconds).toBe(5);
16
- expect(webm.videoCodec).toBe('vp8');
17
- });