webcodecs-node 0.3.0 → 0.5.1

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 (348) hide show
  1. package/dist/backends/types.d.ts +6 -3
  2. package/dist/backends/types.d.ts.map +1 -1
  3. package/dist/backends/types.js +2 -2
  4. package/dist/backends/types.js.map +1 -1
  5. package/dist/{ffmpeg → codec-utils}/audio-codecs.d.ts +13 -12
  6. package/dist/codec-utils/audio-codecs.d.ts.map +1 -0
  7. package/dist/{ffmpeg → codec-utils}/audio-codecs.js +29 -11
  8. package/dist/codec-utils/audio-codecs.js.map +1 -0
  9. package/dist/{ffmpeg → codec-utils}/formats.d.ts +7 -7
  10. package/dist/codec-utils/formats.d.ts.map +1 -0
  11. package/dist/{ffmpeg → codec-utils}/formats.js +7 -7
  12. package/dist/codec-utils/formats.js.map +1 -0
  13. package/dist/{ffmpeg → codec-utils}/index.d.ts +3 -3
  14. package/dist/codec-utils/index.d.ts.map +1 -0
  15. package/dist/{ffmpeg → codec-utils}/index.js +3 -4
  16. package/dist/codec-utils/index.js.map +1 -0
  17. package/dist/{ffmpeg → codec-utils}/types.d.ts +13 -11
  18. package/dist/codec-utils/types.d.ts.map +1 -0
  19. package/dist/{ffmpeg → codec-utils}/types.js +3 -1
  20. package/dist/codec-utils/types.js.map +1 -0
  21. package/dist/containers/Demuxer.d.ts +114 -0
  22. package/dist/containers/Demuxer.d.ts.map +1 -0
  23. package/dist/containers/Demuxer.js +256 -0
  24. package/dist/containers/Demuxer.js.map +1 -0
  25. package/dist/containers/Muxer.d.ts +142 -0
  26. package/dist/containers/Muxer.d.ts.map +1 -0
  27. package/dist/containers/Muxer.js +295 -0
  28. package/dist/containers/Muxer.js.map +1 -0
  29. package/dist/containers/extract.d.ts +25 -0
  30. package/dist/containers/extract.d.ts.map +1 -0
  31. package/dist/containers/extract.js +64 -0
  32. package/dist/containers/extract.js.map +1 -0
  33. package/dist/containers/index.d.ts +40 -0
  34. package/dist/containers/index.d.ts.map +1 -0
  35. package/dist/containers/index.js +41 -0
  36. package/dist/containers/index.js.map +1 -0
  37. package/dist/containers/transcode.d.ts +138 -0
  38. package/dist/containers/transcode.d.ts.map +1 -0
  39. package/dist/containers/transcode.js +536 -0
  40. package/dist/containers/transcode.js.map +1 -0
  41. package/dist/core/AudioData.d.ts +4 -0
  42. package/dist/core/AudioData.d.ts.map +1 -1
  43. package/dist/core/AudioData.js +56 -4
  44. package/dist/core/AudioData.js.map +1 -1
  45. package/dist/core/EncodedAudioChunk.d.ts +1 -1
  46. package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
  47. package/dist/core/EncodedAudioChunk.js +1 -1
  48. package/dist/core/EncodedAudioChunk.js.map +1 -1
  49. package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
  50. package/dist/core/EncodedVideoChunk.js +3 -19
  51. package/dist/core/EncodedVideoChunk.js.map +1 -1
  52. package/dist/core/VideoFrame.d.ts +6 -1
  53. package/dist/core/VideoFrame.d.ts.map +1 -1
  54. package/dist/core/VideoFrame.js +130 -17
  55. package/dist/core/VideoFrame.js.map +1 -1
  56. package/dist/decoders/AudioDecoder.d.ts +8 -0
  57. package/dist/decoders/AudioDecoder.d.ts.map +1 -1
  58. package/dist/decoders/AudioDecoder.js +62 -32
  59. package/dist/decoders/AudioDecoder.js.map +1 -1
  60. package/dist/decoders/ImageDecoder.d.ts +0 -3
  61. package/dist/decoders/ImageDecoder.d.ts.map +1 -1
  62. package/dist/decoders/ImageDecoder.js +13 -225
  63. package/dist/decoders/ImageDecoder.js.map +1 -1
  64. package/dist/decoders/VideoDecoder.d.ts +8 -0
  65. package/dist/decoders/VideoDecoder.d.ts.map +1 -1
  66. package/dist/decoders/VideoDecoder.js +76 -46
  67. package/dist/decoders/VideoDecoder.js.map +1 -1
  68. package/dist/demos/demo-1080p-transcode.d.ts +8 -0
  69. package/dist/demos/demo-1080p-transcode.d.ts.map +1 -0
  70. package/dist/demos/demo-1080p-transcode.js +188 -0
  71. package/dist/demos/demo-1080p-transcode.js.map +1 -0
  72. package/dist/demos/demo-containers.d.ts +7 -0
  73. package/dist/demos/demo-containers.d.ts.map +1 -0
  74. package/dist/demos/demo-containers.js +140 -0
  75. package/dist/demos/demo-containers.js.map +1 -0
  76. package/dist/demos/demo-four-corners.js +4 -4
  77. package/dist/demos/demo-four-corners.js.map +1 -1
  78. package/dist/demos/demo-hwaccel.js +1 -1
  79. package/dist/demos/demo-hwaccel.js.map +1 -1
  80. package/dist/demos/demo-samples.js +4 -4
  81. package/dist/demos/demo-samples.js.map +1 -1
  82. package/dist/demos/demo-streaming.js +6 -6
  83. package/dist/demos/demo-streaming.js.map +1 -1
  84. package/dist/encoders/AudioEncoder.d.ts +8 -0
  85. package/dist/encoders/AudioEncoder.d.ts.map +1 -1
  86. package/dist/encoders/AudioEncoder.js +68 -26
  87. package/dist/encoders/AudioEncoder.js.map +1 -1
  88. package/dist/encoders/VideoEncoder.d.ts +8 -0
  89. package/dist/encoders/VideoEncoder.d.ts.map +1 -1
  90. package/dist/encoders/VideoEncoder.js +64 -13
  91. package/dist/encoders/VideoEncoder.js.map +1 -1
  92. package/dist/formats/conversions/batch-converter.d.ts +61 -0
  93. package/dist/formats/conversions/batch-converter.d.ts.map +1 -0
  94. package/dist/formats/conversions/batch-converter.js +274 -0
  95. package/dist/formats/conversions/batch-converter.js.map +1 -0
  96. package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
  97. package/dist/formats/conversions/frame-converter.js +17 -10
  98. package/dist/formats/conversions/frame-converter.js.map +1 -1
  99. package/dist/formats/conversions/index.d.ts +1 -0
  100. package/dist/formats/conversions/index.d.ts.map +1 -1
  101. package/dist/formats/conversions/index.js +2 -0
  102. package/dist/formats/conversions/index.js.map +1 -1
  103. package/dist/hardware/decoder-args.d.ts +2 -7
  104. package/dist/hardware/decoder-args.d.ts.map +1 -1
  105. package/dist/hardware/decoder-args.js +2 -32
  106. package/dist/hardware/decoder-args.js.map +1 -1
  107. package/dist/hardware/encoder-args.d.ts +2 -11
  108. package/dist/hardware/encoder-args.d.ts.map +1 -1
  109. package/dist/hardware/encoder-args.js +2 -71
  110. package/dist/hardware/encoder-args.js.map +1 -1
  111. package/dist/hardware/index.d.ts +2 -2
  112. package/dist/hardware/index.d.ts.map +1 -1
  113. package/dist/hardware/index.js +2 -2
  114. package/dist/hardware/index.js.map +1 -1
  115. package/dist/index.d.ts +5 -7
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +5 -6
  118. package/dist/index.js.map +1 -1
  119. package/dist/node-av/NodeAvAudioDecoder.d.ts +2 -2
  120. package/dist/node-av/NodeAvAudioDecoder.d.ts.map +1 -1
  121. package/dist/node-av/NodeAvAudioDecoder.js +63 -56
  122. package/dist/node-av/NodeAvAudioDecoder.js.map +1 -1
  123. package/dist/node-av/NodeAvAudioEncoder.d.ts +6 -0
  124. package/dist/node-av/NodeAvAudioEncoder.d.ts.map +1 -1
  125. package/dist/node-av/NodeAvAudioEncoder.js +166 -45
  126. package/dist/node-av/NodeAvAudioEncoder.js.map +1 -1
  127. package/dist/node-av/NodeAvImageDecoder.d.ts +28 -9
  128. package/dist/node-av/NodeAvImageDecoder.d.ts.map +1 -1
  129. package/dist/node-av/NodeAvImageDecoder.js +156 -37
  130. package/dist/node-av/NodeAvImageDecoder.js.map +1 -1
  131. package/dist/node-av/NodeAvVideoDecoder.d.ts +1 -1
  132. package/dist/node-av/NodeAvVideoDecoder.d.ts.map +1 -1
  133. package/dist/node-av/NodeAvVideoDecoder.js +20 -16
  134. package/dist/node-av/NodeAvVideoDecoder.js.map +1 -1
  135. package/dist/node-av/NodeAvVideoEncoder.d.ts +12 -0
  136. package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
  137. package/dist/node-av/NodeAvVideoEncoder.js +175 -63
  138. package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
  139. package/dist/polyfill.d.ts.map +1 -1
  140. package/dist/polyfill.js +11 -9
  141. package/dist/polyfill.js.map +1 -1
  142. package/dist/utils/aac.d.ts.map +1 -1
  143. package/dist/utils/aac.js +6 -0
  144. package/dist/utils/aac.js.map +1 -1
  145. package/dist/utils/buffer-pool.d.ts +109 -0
  146. package/dist/utils/buffer-pool.d.ts.map +1 -0
  147. package/dist/utils/buffer-pool.js +278 -0
  148. package/dist/utils/buffer-pool.js.map +1 -0
  149. package/dist/utils/codec-cache.d.ts +65 -0
  150. package/dist/utils/codec-cache.d.ts.map +1 -0
  151. package/dist/utils/codec-cache.js +116 -0
  152. package/dist/utils/codec-cache.js.map +1 -0
  153. package/dist/utils/errors.d.ts +62 -0
  154. package/dist/utils/errors.d.ts.map +1 -0
  155. package/dist/utils/errors.js +84 -0
  156. package/dist/utils/errors.js.map +1 -0
  157. package/dist/utils/hardware-pool.d.ts +88 -0
  158. package/dist/utils/hardware-pool.d.ts.map +1 -0
  159. package/dist/utils/hardware-pool.js +266 -0
  160. package/dist/utils/hardware-pool.js.map +1 -0
  161. package/dist/utils/index.d.ts +5 -0
  162. package/dist/utils/index.d.ts.map +1 -1
  163. package/dist/utils/index.js +10 -0
  164. package/dist/utils/index.js.map +1 -1
  165. package/dist/utils/timeout.d.ts +44 -0
  166. package/dist/utils/timeout.d.ts.map +1 -0
  167. package/dist/utils/timeout.js +73 -0
  168. package/dist/utils/timeout.js.map +1 -0
  169. package/dist/utils/type-guards.d.ts +11 -1
  170. package/dist/utils/type-guards.d.ts.map +1 -1
  171. package/dist/utils/type-guards.js.map +1 -1
  172. package/package.json +13 -35
  173. package/dist/AudioData.d.ts +0 -6
  174. package/dist/AudioData.d.ts.map +0 -1
  175. package/dist/AudioData.js +0 -6
  176. package/dist/AudioData.js.map +0 -1
  177. package/dist/AudioDecoder.d.ts +0 -6
  178. package/dist/AudioDecoder.d.ts.map +0 -1
  179. package/dist/AudioDecoder.js +0 -6
  180. package/dist/AudioDecoder.js.map +0 -1
  181. package/dist/AudioEncoder.d.ts +0 -6
  182. package/dist/AudioEncoder.d.ts.map +0 -1
  183. package/dist/AudioEncoder.js +0 -6
  184. package/dist/AudioEncoder.js.map +0 -1
  185. package/dist/EncodedAudioChunk.d.ts +0 -6
  186. package/dist/EncodedAudioChunk.d.ts.map +0 -1
  187. package/dist/EncodedAudioChunk.js +0 -6
  188. package/dist/EncodedAudioChunk.js.map +0 -1
  189. package/dist/EncodedVideoChunk.d.ts +0 -6
  190. package/dist/EncodedVideoChunk.d.ts.map +0 -1
  191. package/dist/EncodedVideoChunk.js +0 -6
  192. package/dist/EncodedVideoChunk.js.map +0 -1
  193. package/dist/FFmpegProcess.d.ts +0 -6
  194. package/dist/FFmpegProcess.d.ts.map +0 -1
  195. package/dist/FFmpegProcess.js +0 -6
  196. package/dist/FFmpegProcess.js.map +0 -1
  197. package/dist/HardwareAcceleration.d.ts +0 -6
  198. package/dist/HardwareAcceleration.d.ts.map +0 -1
  199. package/dist/HardwareAcceleration.js +0 -6
  200. package/dist/HardwareAcceleration.js.map +0 -1
  201. package/dist/ImageDecoder.d.ts +0 -6
  202. package/dist/ImageDecoder.d.ts.map +0 -1
  203. package/dist/ImageDecoder.js +0 -6
  204. package/dist/ImageDecoder.js.map +0 -1
  205. package/dist/Logger.d.ts +0 -6
  206. package/dist/Logger.d.ts.map +0 -1
  207. package/dist/Logger.js +0 -6
  208. package/dist/Logger.js.map +0 -1
  209. package/dist/MediaCapabilities.d.ts +0 -9
  210. package/dist/MediaCapabilities.d.ts.map +0 -1
  211. package/dist/MediaCapabilities.js +0 -8
  212. package/dist/MediaCapabilities.js.map +0 -1
  213. package/dist/VideoDecoder.d.ts +0 -6
  214. package/dist/VideoDecoder.d.ts.map +0 -1
  215. package/dist/VideoDecoder.js +0 -6
  216. package/dist/VideoDecoder.js.map +0 -1
  217. package/dist/VideoEncoder.d.ts +0 -6
  218. package/dist/VideoEncoder.d.ts.map +0 -1
  219. package/dist/VideoEncoder.js +0 -6
  220. package/dist/VideoEncoder.js.map +0 -1
  221. package/dist/VideoFrame.d.ts +0 -10
  222. package/dist/VideoFrame.d.ts.map +0 -1
  223. package/dist/VideoFrame.js +0 -9
  224. package/dist/VideoFrame.js.map +0 -1
  225. package/dist/__tests__/AudioData.test.d.ts +0 -5
  226. package/dist/__tests__/AudioData.test.d.ts.map +0 -1
  227. package/dist/__tests__/AudioData.test.js +0 -179
  228. package/dist/__tests__/AudioData.test.js.map +0 -1
  229. package/dist/__tests__/AudioDecoder.test.d.ts +0 -5
  230. package/dist/__tests__/AudioDecoder.test.d.ts.map +0 -1
  231. package/dist/__tests__/AudioDecoder.test.js +0 -733
  232. package/dist/__tests__/AudioDecoder.test.js.map +0 -1
  233. package/dist/__tests__/AudioEncoder.test.d.ts +0 -5
  234. package/dist/__tests__/AudioEncoder.test.d.ts.map +0 -1
  235. package/dist/__tests__/AudioEncoder.test.js +0 -247
  236. package/dist/__tests__/AudioEncoder.test.js.map +0 -1
  237. package/dist/__tests__/EncodedChunks.test.d.ts +0 -5
  238. package/dist/__tests__/EncodedChunks.test.d.ts.map +0 -1
  239. package/dist/__tests__/EncodedChunks.test.js +0 -99
  240. package/dist/__tests__/EncodedChunks.test.js.map +0 -1
  241. package/dist/__tests__/HardwareAcceleration.test.d.ts +0 -5
  242. package/dist/__tests__/HardwareAcceleration.test.d.ts.map +0 -1
  243. package/dist/__tests__/HardwareAcceleration.test.js +0 -84
  244. package/dist/__tests__/HardwareAcceleration.test.js.map +0 -1
  245. package/dist/__tests__/ImageDecoder.test.d.ts +0 -5
  246. package/dist/__tests__/ImageDecoder.test.d.ts.map +0 -1
  247. package/dist/__tests__/ImageDecoder.test.js +0 -587
  248. package/dist/__tests__/ImageDecoder.test.js.map +0 -1
  249. package/dist/__tests__/ImageDecoder.wpt.test.d.ts +0 -8
  250. package/dist/__tests__/ImageDecoder.wpt.test.d.ts.map +0 -1
  251. package/dist/__tests__/ImageDecoder.wpt.test.js +0 -135
  252. package/dist/__tests__/ImageDecoder.wpt.test.js.map +0 -1
  253. package/dist/__tests__/MediaCapabilities.test.d.ts +0 -5
  254. package/dist/__tests__/MediaCapabilities.test.d.ts.map +0 -1
  255. package/dist/__tests__/MediaCapabilities.test.js +0 -346
  256. package/dist/__tests__/MediaCapabilities.test.js.map +0 -1
  257. package/dist/__tests__/NodeAvDecoder.test.d.ts +0 -2
  258. package/dist/__tests__/NodeAvDecoder.test.d.ts.map +0 -1
  259. package/dist/__tests__/NodeAvDecoder.test.js +0 -199
  260. package/dist/__tests__/NodeAvDecoder.test.js.map +0 -1
  261. package/dist/__tests__/NodeAvEncoder.test.d.ts +0 -2
  262. package/dist/__tests__/NodeAvEncoder.test.d.ts.map +0 -1
  263. package/dist/__tests__/NodeAvEncoder.test.js +0 -176
  264. package/dist/__tests__/NodeAvEncoder.test.js.map +0 -1
  265. package/dist/__tests__/VideoDecoder.test.d.ts +0 -5
  266. package/dist/__tests__/VideoDecoder.test.d.ts.map +0 -1
  267. package/dist/__tests__/VideoDecoder.test.js +0 -675
  268. package/dist/__tests__/VideoDecoder.test.js.map +0 -1
  269. package/dist/__tests__/VideoEncoder.test.d.ts +0 -5
  270. package/dist/__tests__/VideoEncoder.test.d.ts.map +0 -1
  271. package/dist/__tests__/VideoEncoder.test.js +0 -468
  272. package/dist/__tests__/VideoEncoder.test.js.map +0 -1
  273. package/dist/__tests__/VideoFrame.test.d.ts +0 -5
  274. package/dist/__tests__/VideoFrame.test.d.ts.map +0 -1
  275. package/dist/__tests__/VideoFrame.test.js +0 -243
  276. package/dist/__tests__/VideoFrame.test.js.map +0 -1
  277. package/dist/__tests__/aac-utils.test.d.ts +0 -2
  278. package/dist/__tests__/aac-utils.test.d.ts.map +0 -1
  279. package/dist/__tests__/aac-utils.test.js +0 -37
  280. package/dist/__tests__/aac-utils.test.js.map +0 -1
  281. package/dist/__tests__/avc-utils.test.d.ts +0 -2
  282. package/dist/__tests__/avc-utils.test.d.ts.map +0 -1
  283. package/dist/__tests__/avc-utils.test.js +0 -63
  284. package/dist/__tests__/avc-utils.test.js.map +0 -1
  285. package/dist/__tests__/hevc-utils.test.d.ts +0 -2
  286. package/dist/__tests__/hevc-utils.test.d.ts.map +0 -1
  287. package/dist/__tests__/hevc-utils.test.js +0 -78
  288. package/dist/__tests__/hevc-utils.test.js.map +0 -1
  289. package/dist/demos/demo-conversion.d.ts +0 -13
  290. package/dist/demos/demo-conversion.d.ts.map +0 -1
  291. package/dist/demos/demo-conversion.js +0 -301
  292. package/dist/demos/demo-conversion.js.map +0 -1
  293. package/dist/demos/demo-hwaccel-conversion.d.ts +0 -8
  294. package/dist/demos/demo-hwaccel-conversion.d.ts.map +0 -1
  295. package/dist/demos/demo-hwaccel-conversion.js +0 -161
  296. package/dist/demos/demo-hwaccel-conversion.js.map +0 -1
  297. package/dist/demos/demo-mediabunny.d.ts +0 -7
  298. package/dist/demos/demo-mediabunny.d.ts.map +0 -1
  299. package/dist/demos/demo-mediabunny.js +0 -78
  300. package/dist/demos/demo-mediabunny.js.map +0 -1
  301. package/dist/ffmpeg/FFmpegProcess.d.ts +0 -111
  302. package/dist/ffmpeg/FFmpegProcess.d.ts.map +0 -1
  303. package/dist/ffmpeg/FFmpegProcess.js +0 -543
  304. package/dist/ffmpeg/FFmpegProcess.js.map +0 -1
  305. package/dist/ffmpeg/audio-codecs.d.ts.map +0 -1
  306. package/dist/ffmpeg/audio-codecs.js.map +0 -1
  307. package/dist/ffmpeg/formats.d.ts.map +0 -1
  308. package/dist/ffmpeg/formats.js.map +0 -1
  309. package/dist/ffmpeg/index.d.ts.map +0 -1
  310. package/dist/ffmpeg/index.js.map +0 -1
  311. package/dist/ffmpeg/parsers/annexb.d.ts +0 -88
  312. package/dist/ffmpeg/parsers/annexb.d.ts.map +0 -1
  313. package/dist/ffmpeg/parsers/annexb.js +0 -201
  314. package/dist/ffmpeg/parsers/annexb.js.map +0 -1
  315. package/dist/ffmpeg/parsers/index.d.ts +0 -6
  316. package/dist/ffmpeg/parsers/index.d.ts.map +0 -1
  317. package/dist/ffmpeg/parsers/index.js +0 -8
  318. package/dist/ffmpeg/parsers/index.js.map +0 -1
  319. package/dist/ffmpeg/parsers/ivf.d.ts +0 -54
  320. package/dist/ffmpeg/parsers/ivf.d.ts.map +0 -1
  321. package/dist/ffmpeg/parsers/ivf.js +0 -109
  322. package/dist/ffmpeg/parsers/ivf.js.map +0 -1
  323. package/dist/ffmpeg/types.d.ts.map +0 -1
  324. package/dist/ffmpeg/types.js.map +0 -1
  325. package/dist/mediabunny/FFmpegAudioDecoder.d.ts +0 -23
  326. package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +0 -1
  327. package/dist/mediabunny/FFmpegAudioDecoder.js +0 -129
  328. package/dist/mediabunny/FFmpegAudioDecoder.js.map +0 -1
  329. package/dist/mediabunny/FFmpegAudioEncoder.d.ts +0 -43
  330. package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +0 -1
  331. package/dist/mediabunny/FFmpegAudioEncoder.js +0 -220
  332. package/dist/mediabunny/FFmpegAudioEncoder.js.map +0 -1
  333. package/dist/mediabunny/FFmpegVideoDecoder.d.ts +0 -24
  334. package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +0 -1
  335. package/dist/mediabunny/FFmpegVideoDecoder.js +0 -125
  336. package/dist/mediabunny/FFmpegVideoDecoder.js.map +0 -1
  337. package/dist/mediabunny/FFmpegVideoEncoder.d.ts +0 -48
  338. package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +0 -1
  339. package/dist/mediabunny/FFmpegVideoEncoder.js +0 -263
  340. package/dist/mediabunny/FFmpegVideoEncoder.js.map +0 -1
  341. package/dist/mediabunny/index.d.ts +0 -21
  342. package/dist/mediabunny/index.d.ts.map +0 -1
  343. package/dist/mediabunny/index.js +0 -33
  344. package/dist/mediabunny/index.js.map +0 -1
  345. package/dist/types.d.ts +0 -6
  346. package/dist/types.d.ts.map +0 -1
  347. package/dist/types.js +0 -6
  348. package/dist/types.js.map +0 -1
@@ -1,263 +0,0 @@
1
- /**
2
- * FFmpeg-backed VideoEncoder for Mediabunny
3
- *
4
- * Implements Mediabunny's CustomVideoEncoder interface using node-av native bindings.
5
- * Supports hardware acceleration via VAAPI, NVENC, QSV, VideoToolbox.
6
- */
7
- import { CustomVideoEncoder, EncodedPacket, } from 'mediabunny';
8
- import { NodeAvVideoEncoder } from '../node-av/NodeAvVideoEncoder.js';
9
- import { extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, } from '../utils/avc.js';
10
- import { extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, } from '../utils/hevc.js';
11
- // Map Mediabunny codec to internal codec name
12
- const CODEC_NAME_MAP = {
13
- avc: 'h264',
14
- hevc: 'hevc',
15
- vp8: 'vp8',
16
- vp9: 'vp9',
17
- av1: 'av1',
18
- };
19
- export class FFmpegVideoEncoder extends CustomVideoEncoder {
20
- backend = null;
21
- frameIndex = 0;
22
- codecDescription = null;
23
- metadataEmitted = false;
24
- bitstreamFormat = 'annexb';
25
- useAnnexB = false;
26
- resolveFlush = null;
27
- pendingPackets = [];
28
- static supports(codec, _config) {
29
- return codec in CODEC_NAME_MAP;
30
- }
31
- async init() {
32
- // Determine bitstream format from config
33
- const configExt = this.config;
34
- this.useAnnexB = this.codec === 'avc' || this.codec === 'hevc';
35
- if (this.codec === 'avc' && configExt.avc?.format === 'avc') {
36
- this.bitstreamFormat = 'mp4';
37
- }
38
- else if (this.codec === 'hevc' && configExt.hevc?.format === 'hevc') {
39
- this.bitstreamFormat = 'mp4';
40
- }
41
- else {
42
- this.bitstreamFormat = 'annexb';
43
- }
44
- // Hardware acceleration preference from config
45
- const hwPref = this.config.hardwareAcceleration;
46
- // Create node-av backend
47
- this.backend = new NodeAvVideoEncoder();
48
- const codecName = CODEC_NAME_MAP[this.codec];
49
- this.backend.startEncoder({
50
- codec: codecName,
51
- width: this.config.width,
52
- height: this.config.height,
53
- framerate: this.config.framerate ?? 30,
54
- bitrate: this.config.bitrate,
55
- inputPixelFormat: 'rgba',
56
- });
57
- // Set hardware acceleration preference on backend config
58
- if (hwPref) {
59
- this.backend.config.hardwareAcceleration = hwPref;
60
- }
61
- // Listen for encoded frames
62
- this.backend.on('encodedFrame', (frame) => {
63
- this.pendingPackets.push(frame);
64
- this.processPackets();
65
- });
66
- this.backend.on('error', (err) => {
67
- console.error('[FFmpegVideoEncoder] Backend error:', err.message);
68
- });
69
- this.backend.on('close', () => {
70
- // Process any remaining packets
71
- this.processPackets();
72
- if (this.resolveFlush) {
73
- this.resolveFlush();
74
- this.resolveFlush = null;
75
- }
76
- });
77
- }
78
- async encode(videoSample, _options) {
79
- if (!this.backend?.isHealthy) {
80
- throw new Error('Encoder not initialized');
81
- }
82
- // Get raw RGBA data from VideoSample
83
- const frameData = await this.getFrameData(videoSample);
84
- this.backend.write(frameData);
85
- }
86
- async flush() {
87
- return new Promise((resolve) => {
88
- this.resolveFlush = resolve;
89
- if (this.backend) {
90
- this.backend.end();
91
- }
92
- else {
93
- resolve();
94
- }
95
- });
96
- }
97
- async close() {
98
- if (this.backend) {
99
- this.backend.kill();
100
- this.backend = null;
101
- }
102
- }
103
- processPackets() {
104
- while (this.pendingPackets.length > 0) {
105
- const packet = this.pendingPackets.shift();
106
- this.emitPacket(packet.data, packet.timestamp, packet.keyFrame);
107
- }
108
- }
109
- /**
110
- * Extract raw RGBA pixel data from VideoSample
111
- */
112
- async getFrameData(sample) {
113
- const width = sample.codedWidth;
114
- const height = sample.codedHeight;
115
- const size = width * height * 4; // RGBA
116
- // VideoSample stores data in _data which can be:
117
- // - VideoFrame (browser)
118
- // - Uint8Array (raw data)
119
- // - OffscreenCanvas (canvas fallback)
120
- const sampleData = sample._data;
121
- // If _data is already a Uint8Array, use it directly
122
- if (sampleData instanceof Uint8Array) {
123
- return Buffer.from(sampleData);
124
- }
125
- // Try to use copyTo if available (works for VideoFrame and VideoSample)
126
- if (typeof sample.copyTo === 'function') {
127
- const buffer = new Uint8Array(size);
128
- await sample.copyTo(buffer);
129
- return Buffer.from(buffer);
130
- }
131
- // If it's a VideoFrame, use its copyTo method
132
- if (sampleData && typeof sampleData.copyTo === 'function') {
133
- const buffer = new Uint8Array(size);
134
- await sampleData.copyTo(buffer);
135
- return Buffer.from(buffer);
136
- }
137
- throw new Error('Cannot extract frame data from VideoSample');
138
- }
139
- /**
140
- * Find all Annex B start codes in buffer
141
- */
142
- findStartCodes(buf) {
143
- const codes = [];
144
- let i = 0;
145
- while (i < buf.length - 2) {
146
- if (buf[i] === 0 && buf[i + 1] === 0) {
147
- if (buf[i + 2] === 1) {
148
- codes.push({ pos: i, len: 3 });
149
- i += 3;
150
- }
151
- else if (buf[i + 2] === 0 && i + 3 < buf.length && buf[i + 3] === 1) {
152
- codes.push({ pos: i, len: 4 });
153
- i += 4;
154
- }
155
- else {
156
- i++;
157
- }
158
- }
159
- else {
160
- i++;
161
- }
162
- }
163
- return codes;
164
- }
165
- /**
166
- * Get NAL unit type from first byte after start code
167
- */
168
- getNalType(firstByte) {
169
- if (this.codec === 'avc') {
170
- return firstByte & 0x1f;
171
- }
172
- else {
173
- return (firstByte >> 1) & 0x3f;
174
- }
175
- }
176
- /**
177
- * Emit an encoded packet via Mediabunny callback
178
- */
179
- emitPacket(data, timestamp, isKey) {
180
- const framerate = this.config.framerate ?? 30;
181
- const timestampSeconds = timestamp / framerate;
182
- const durationSeconds = 1 / framerate;
183
- let payload = data;
184
- if (this.useAnnexB && this.bitstreamFormat === 'mp4') {
185
- payload = this.convertAnnexBFrame(data);
186
- }
187
- const packet = new EncodedPacket(new Uint8Array(payload), isKey ? 'key' : 'delta', timestampSeconds, durationSeconds);
188
- // Build metadata with decoder config (required by Mediabunny)
189
- // Only emit full metadata on first packet or keyframes
190
- let meta;
191
- if (!this.metadataEmitted || isKey) {
192
- // Extract codec description from first keyframe for AVC/HEVC
193
- if (isKey && this.useAnnexB && !this.codecDescription) {
194
- this.codecDescription = this.buildCodecDescription(data);
195
- }
196
- meta = {
197
- decoderConfig: {
198
- codec: this.getCodecString(),
199
- codedWidth: this.config.width,
200
- codedHeight: this.config.height,
201
- description: this.codecDescription ?? undefined,
202
- },
203
- };
204
- this.metadataEmitted = true;
205
- }
206
- this.frameIndex++;
207
- this.onPacket(packet, meta);
208
- }
209
- /**
210
- * Get codec string for the output format
211
- */
212
- getCodecString() {
213
- switch (this.codec) {
214
- case 'avc':
215
- // AVC codec string: avc1.PPCCLL (profile, constraints, level)
216
- // Default to High profile, level 4.0
217
- return 'avc1.640028';
218
- case 'hevc':
219
- // HEVC codec string
220
- return 'hev1.1.6.L93.B0';
221
- case 'vp8':
222
- return 'vp8';
223
- case 'vp9':
224
- // VP9 codec string: vp09.PP.LL.DD (profile, level, bit depth)
225
- return 'vp09.00.10.08';
226
- case 'av1':
227
- // AV1 codec string
228
- return 'av01.0.01M.08';
229
- default:
230
- return this.codec;
231
- }
232
- }
233
- buildCodecDescription(data) {
234
- if (!this.useAnnexB) {
235
- return null;
236
- }
237
- const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
238
- if (this.codec === 'avc') {
239
- const { sps, pps } = extractAvcParameterSetsFromAnnexB(view);
240
- if (sps.length && pps.length) {
241
- return buildAvcDecoderConfig(sps, pps);
242
- }
243
- }
244
- else if (this.codec === 'hevc') {
245
- const { vps, sps, pps } = extractHevcParameterSetsFromAnnexB(view);
246
- if (sps.length && pps.length) {
247
- return buildHvccDecoderConfig(vps, sps, pps);
248
- }
249
- }
250
- return null;
251
- }
252
- convertAnnexBFrame(data) {
253
- const view = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
254
- if (this.codec === 'avc') {
255
- return convertAnnexBToAvcc(view);
256
- }
257
- if (this.codec === 'hevc') {
258
- return convertAnnexBToHvcc(view);
259
- }
260
- return data;
261
- }
262
- }
263
- //# sourceMappingURL=FFmpegVideoEncoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FFmpegVideoEncoder.js","sourceRoot":"","sources":["../../src/mediabunny/FFmpegVideoEncoder.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Mediabunny FFmpeg Backend
3
- *
4
- * Provides FFmpeg-backed video and audio encoder/decoder implementations
5
- * for use with Mediabunny in Node.js environments.
6
- *
7
- * Usage:
8
- * import { registerFFmpegCoders } from './mediabunny';
9
- * registerFFmpegCoders();
10
- * // Now Mediabunny will use FFmpeg for encoding/decoding
11
- */
12
- export { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
13
- export { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
14
- export { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
15
- export { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
16
- /**
17
- * Register FFmpeg-backed encoders and decoders with Mediabunny.
18
- * Call this once at startup before using Mediabunny.
19
- */
20
- export declare function registerFFmpegCoders(): void;
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mediabunny/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Mediabunny FFmpeg Backend
3
- *
4
- * Provides FFmpeg-backed video and audio encoder/decoder implementations
5
- * for use with Mediabunny in Node.js environments.
6
- *
7
- * Usage:
8
- * import { registerFFmpegCoders } from './mediabunny';
9
- * registerFFmpegCoders();
10
- * // Now Mediabunny will use FFmpeg for encoding/decoding
11
- */
12
- import { registerEncoder, registerDecoder } from 'mediabunny';
13
- import { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
14
- import { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
15
- import { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
16
- import { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
17
- export { FFmpegVideoEncoder } from './FFmpegVideoEncoder.js';
18
- export { FFmpegVideoDecoder } from './FFmpegVideoDecoder.js';
19
- export { FFmpegAudioEncoder } from './FFmpegAudioEncoder.js';
20
- export { FFmpegAudioDecoder } from './FFmpegAudioDecoder.js';
21
- /**
22
- * Register FFmpeg-backed encoders and decoders with Mediabunny.
23
- * Call this once at startup before using Mediabunny.
24
- */
25
- export function registerFFmpegCoders() {
26
- // Video coders
27
- registerEncoder(FFmpegVideoEncoder);
28
- registerDecoder(FFmpegVideoDecoder);
29
- // Audio coders
30
- registerEncoder(FFmpegAudioEncoder);
31
- registerDecoder(FFmpegAudioDecoder);
32
- }
33
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mediabunny/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,eAAe;IACf,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEpC,eAAe;IACf,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types - Re-export from new location for backwards compatibility
3
- * @deprecated Import from './types/index.js' instead
4
- */
5
- export * from './types/index.js';
6
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types - Re-export from new location for backwards compatibility
3
- * @deprecated Import from './types/index.js' instead
4
- */
5
- export * from './types/index.js';
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}