{"_id":"node-webcodecs","_rev":"15-b72ca365c7be6696a6d9a7cc47ed4da3","name":"node-webcodecs","dist-tags":{"latest":"1.3.0"},"versions":{"0.1.0":{"name":"node-webcodecs","version":"0.1.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.1.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/webcodecs-node#readme","bugs":{"url":"https://github.com/caseymanos/webcodecs-node/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"5221e3bfcc5f837904d390a850ea6c633ee94cbf","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.1.0.tgz","fileCount":77,"integrity":"sha512-lQXNlw27bLWRBP9f/q4RWUrd1645b6srz1AlSA12j8P7k//iZ4wKWhMcCavnuaEiPv0WIn9tMIJ6IF5wdL2RBA==","signatures":[{"sig":"MEUCIQCyJD9cGqa+9HTGe9vIL+J9MMgu5Lv8h46D3iIbHUYAOwIgZ2ykNEAmz43GL+RF3x4MXmRCHs9hjL+rz0yUz9XJA2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3626423},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"a46b3f9ccd6f8360885cc979e4751441126a3923","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/webcodecs-node.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.1.0_1764631415392_0.5215884125509793","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"node-webcodecs","version":"0.1.1","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.1.1","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"08f20ef87688fe7d745d234a67293a036701e2dc","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.1.1.tgz","fileCount":77,"integrity":"sha512-IG6XvI6woOB0t/xmRubJpwdxzqlNfCVYw9+v/3kXEVZ/p5B6Oso+vJvird/Ah3mGzOuj8wxkE92w9W8wLpKCSw==","signatures":[{"sig":"MEUCIQCmWY9D70iguohusN2w4k9acgSRP5Sa0ffDpt1m4OW0BwIgScqdvkJOYQ1BPxIbV9dN6Gd8a5mUld2zkYDPIXS0i6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3626561},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"85da2e782dc4cea4c877dddedfa45d8dda2039c7","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.1.1_1764634809099_0.28367456418617754","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"node-webcodecs","version":"0.1.2","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.1.2","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"d29d54fbf313558b034c1cc3768ac095ee549191","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.1.2.tgz","fileCount":77,"integrity":"sha512-r12dyyfTpfOvIJSNGonqJttNxuhJX+xpXJgbEg8N1x6A2N43ZBkso+4R2hkTXrZSkj5Mv1UJJyy+K5HCjbqm9w==","signatures":[{"sig":"MEQCIDIlYKQnPrjgioMw3653stz07Y/INw3tWCA/zb+xd5M/AiArzV9px7bflY77T8IoAELFR1Rhxc2CrEXdh+iRRHTdsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3626846},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"f1c2dff058641347d3795256fc41feebf9ed2b14","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.1.2_1764635059944_0.12743452560995072","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"node-webcodecs","version":"0.2.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.2.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"05c75edb626746ca87edb23030eae2648797cc81","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.2.0.tgz","fileCount":80,"integrity":"sha512-mupauS7bBxXK2FoYiou6/nHT1rgzIDrmP6/kFD9DyQxEsciBjkakDYLN+Ac6ocrj2ihxDbb6lhUbgLaYGiFWpA==","signatures":[{"sig":"MEUCIAbouW+EtiQuuXLaGxTAwcKcgc4ZdE8NgG4Q+6CRfDXHAiEA33gy9MY+N/etdGnFXYcBx+FBls2ks55weA8pXm6eTK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3876061},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"1c048a4314bb1bd372f6da5ce7041d8eac0e82bc","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.2.0_1764637926359_0.7452781305060208","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"node-webcodecs","version":"0.3.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.3.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"eab4a52a058493228aa8eaa5df6914c2d5697501","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.3.0.tgz","fileCount":119,"integrity":"sha512-exUGXYcv/9BCk2U7vp6VLQ9qZcnPhaWaJD3/OKllkOLaLHtVVz4RH7+0JNKEMRypuB/pFHbbX1CnDK5NWKg0IA==","signatures":[{"sig":"MEQCIAoXcb4tQ6U/r3v/dxsocplfZZKpyMWPtRt88GqcvAaFAiA5KfXGXKlPc01qLTjbpPtu0XEjMNbQANtAR+F1vBhfFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4837763},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"e5fb1352dfcf58119238062f55bb5d2c6bffe58f","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.3.0_1764697956673_0.26359516227999613","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"node-webcodecs","version":"0.4.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.4.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"6f528274eca34beeccbdc486a1396a457a4aba06","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.4.0.tgz","fileCount":129,"integrity":"sha512-Y/XYAk47ofLdyo2SK5eLUQ6AU1XJAXxvqBDdusdt5QzKy5irEJl0BmKIZ3d2D5LzeJ/z/PCmnr1a/lbX7NFJnw==","signatures":[{"sig":"MEQCIFBJgBZ1OZqP8ODkFJeO4IFdiU29f1FIKY/iNTVdSMDJAiBgchk34yMb5rmE2PlysEOirO1Xz2J+REvujZKBn6SjZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4976935},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"8a4445e4592e5b0da8400cbea3b496fde870650d","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.4.0_1764701948263_0.7070772789134006","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"node-webcodecs","version":"0.4.1","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.4.1","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"2c842e5a5264188a3102d483de8feee2db9631a0","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.4.1.tgz","fileCount":131,"integrity":"sha512-n9VznA8OrnDJ/LZt7AVBc51hFuOvf+W8hKHicH0CXujWVGxguM+4B6GCD/VnLgkZD1EINqZEQVef7ATZeBtquw==","signatures":[{"sig":"MEQCID5A5b8XuVFZ5CD1Cj+xv2HOBkdeMWEZF2uJXk/LBzqrAiBjcOdftA9c9VLI/oZfdMvyxSR76uwgUqXLIXkUnVyYWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5048226},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"830af948412abc86e12949d533a78a05c9301a7d","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.4.1_1764745087065_0.9462917765715659","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"node-webcodecs","version":"0.4.2","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@0.4.2","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"6e90c90f95b660d5b0b3b2021db1acb8db46bd98","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-0.4.2.tgz","fileCount":131,"integrity":"sha512-+qDCxN1PBtCsofJt0cqNd8X/hlS56B61g9KZS9V3nr/7JiTauN4ywXZqOheCiTTi+1+ggO0S260m1Dekfwu9eQ==","signatures":[{"sig":"MEYCIQDsIdwfHDB1B+D8n/AvYwe8/23CelQ2UxYMkgQJZAQGggIhAOmPq/9ikdedDyenpWcvdTztms9c5pDvktcz7VkwHYHw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5048226},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"da14c8066981db0e3cb68790ce2e120ae9ecb713","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","prepublishOnly":"npm run build:ts && npm test","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.9.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.12.0","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","cmake-js":"^7.3.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_0.4.2_1764798339593_0.17064382230427055","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"node-webcodecs","version":"1.0.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.0.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"579c32cf3be0b59a2bf883eaf8c900b377e5b4fc","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.0.0.tgz","fileCount":103,"integrity":"sha512-pXXjotgVIXv0XpLvFZrNwFMnggPiNNKTtHJfxf8fhJcOPK/kgpOiMc9cQBIPVnnJVOarH4BhXJfJMHPSqbuXnQ==","signatures":[{"sig":"MEUCIAsUZvztisd3Ae1Qzawe+Tc2CZR8TQmRLmwTNtsNghv9AiEA5lgJP7+DBbT1mWRoO9o4IgypjkKmkibF6NngquaI3mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1816534},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"894043b7f44bccf3794b88662318ae71bc06f9e4","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"cmanos18","email":"manoscasey@gmail.com"},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"10.8.2","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"20.19.6","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.0.0_1767085530090_0.7501510025042133","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"node-webcodecs","version":"1.1.4","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.1.4","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"17c7c7c4c9aabcdfa4440dcd1b6aa44eac55b07e","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.1.4.tgz","fileCount":103,"integrity":"sha512-A8CwCXTJSXiRyJ9rVNBJ52pJN05B5w1UKftg2vL1uwJ6HPERoK5tc36qzLHYf4PZS7tTIRZkChEs2OcUpKQBaQ==","signatures":[{"sig":"MEUCIF+1JckG4iU6vVidQlnMnQPIMOPvJhB2sBeqh4npvxswAiEA35XSzJV0nmMOdvMDwUxwsuINSWS9YAqWa+jaDlyLQmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1819691},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"ccba7cc5082b1ebb4421dfeb58b922fa87d1018a","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"12.0.1","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.23.1","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.1.4_1784060132038_0.9874961818313108","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"node-webcodecs","version":"1.1.5","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.1.5","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"fd7d12cab87ee97f2a6f8a6359420bc0fea6d114","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.1.5.tgz","fileCount":103,"integrity":"sha512-uZgRaiN9LIEO8YecP5+3vodqwmQCV5C1JTGocTqihdKXUSGhyS9yc6XEEim91h/xYLKaYsS3qCWctv7HQh02gg==","signatures":[{"sig":"MEUCIQDkFtVxrZpaJqretji+VIq3YKYtROhNAxMbKxQAY2vepQIgMWm8vHCZrdiUDrWzP2QJG1VFc23znNPfxFbQpKBrs1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1821650},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"gitHead":"7dc7d6d5bc2014e519fafeac8b596b041305bdf5","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"12.0.1","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.23.1","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.1.5_1784061263814_0.5619599085676361","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"node-webcodecs","version":"1.2.0","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.2.0","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"32e1585ee56704ef113a0166342b45c082b0c709","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.2.0.tgz","fileCount":112,"integrity":"sha512-AGpi83JkBmQBIWjS/4yRGb6wsnLWxINEkHn5JzXqSw+iXgRlJNE24YPqRQ394eEJVrTgw0XuJ2dzaTIbPzszNw==","signatures":[{"sig":"MEUCIQD5ze1kpppue3cwieHr/nbbuuVsgmREjREz8MV5WX4/YwIgabcUhMoJNrUPvJqNCCEjSpaEW8G/pVc45jXmgPI3Tss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1821037},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./register":{"types":"./dist/register.d.ts","default":"./dist/register.js"},"./mediabunny":{"types":"./dist/mediabunny.d.ts","import":"./mediabunny.mjs","require":"./dist/mediabunny.js"},"./package.json":"./package.json"},"gitHead":"797094e94ee8e71548412e1598cdcded1a55562e","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"12.0.1","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.23.1","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"mediabunny":">=1.0.0"},"peerDependenciesMeta":{"mediabunny":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.2.0_1784066073114_0.33134463731419106","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"node-webcodecs","version":"1.2.1","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.2.1","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"93c33c1f39122ac119ce3f0369d3b4c41bb2b8d7","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.2.1.tgz","fileCount":112,"integrity":"sha512-eShAy8CWDtWA/GZaGlokygD6Y0hRGhDi3QXREnFMgPtNNFWCxJEfmf5fyVCBNoZfOYugyYePGlFfOSflROUtqw==","signatures":[{"sig":"MEQCIHRNgYbidXrMzFC5aOyVYHrRWJeHoO9kqEpJLtc3kNZBAiB5IdG+0LAcIYwilFcqEyczmXzdHwreY+dLlxKiE0fXgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1843476},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dist/*":"./dist/*","./register":{"types":"./dist/register.d.ts","default":"./dist/register.js"},"./mediabunny":{"types":"./dist/mediabunny.d.ts","import":"./mediabunny.mjs","require":"./dist/mediabunny.js"},"./package.json":"./package.json"},"gitHead":"002fbc8c6c2566e7273684e662805e3a1748aecb","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || npx --yes cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"12.0.1","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.23.1","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"mediabunny":">=1.0.0"},"peerDependenciesMeta":{"mediabunny":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.2.1_1784069927701_0.26433181453451327","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"node-webcodecs","version":"1.2.2","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","_id":"node-webcodecs@1.2.2","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"homepage":"https://github.com/caseymanos/node-webcodecs#readme","bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"9a0bc0bf06ce3743d3687d4352f69aeda00ade46","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.2.2.tgz","fileCount":113,"integrity":"sha512-rGLwOfte/uVpiHwX6NU6GH0hgEaZzSbjD6Q5hMUeJYkxUN91kldYThWJDu8bSJbLFh2U0FhEQcxdOCVs0hhktw==","signatures":[{"sig":"MEYCIQDBYHUAtDTNu9fm+sAq+EvLN7ySTkOd4CmFA9hL5dWNVAIhAJq66tC9GINd96vjcUNdf3QDaNk/9XMl6EiSzR40hzRp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2636942},"main":"dist/index.js","types":"dist/index.d.ts","binary":{"napi_versions":[8]},"engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./dist/*":"./dist/*","./register":{"types":"./dist/register.d.ts","default":"./dist/register.js"},"./mediabunny":{"types":"./dist/mediabunny.d.ts","import":"./mediabunny.mjs","require":"./dist/mediabunny.js"},"./package.json":"./package.json"},"gitHead":"f715483ec8665c5becf13ec2582bd4281b1f5920","scripts":{"lint":"eslint src/**/*.ts","test":"jest --forceExit","build":"npm run build:native && npm run build:ts","install":"node-gyp-build || npx --yes cmake-js compile","rebuild":"cmake-js rebuild","build:ts":"tsc","docs:dev":"cd docs && mintlify dev","prebuild":"prebuildify --napi --strip","test:spec":"vitest run --config vitest.config.ts","docs:build":"npm run docs:generate && cd docs && mintlify build","prebuild:ci":"prebuildify-ci","build:native":"cmake-js compile","docs:generate":"typedoc","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","test:spec:watch":"vitest --config vitest.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","test:spec:browser":"vitest run --config vitest.browser.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"repository":{"url":"git+https://github.com/caseymanos/node-webcodecs.git","type":"git"},"_npmVersion":"12.0.1","description":"Native WebCodecs API implementation for Node.js using FFmpeg","directories":{},"_nodeVersion":"22.23.1","dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","jsqr":"^1.4.0","eslint":"^8.0.0","qrcode":"^1.5.4","vitest":"^4.0.15","ts-jest":"^29.0.0","typedoc":"^0.28.15","cmake-js":"^7.3.0","playwright":"^1.57.0","typescript":"^5.3.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","@vitest/browser":"^4.0.15","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser-playwright":"^4.0.15","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"mediabunny":">=1.0.0"},"peerDependenciesMeta":{"mediabunny":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/node-webcodecs_1.2.2_1784071668226_0.5842201626827399","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"node-webcodecs","version":"1.3.0","description":"Native WebCodecs API implementation for Node.js using FFmpeg","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"npm run build:native && npm run build:ts","build:native":"cmake-js compile","build:ts":"tsc","rebuild":"cmake-js rebuild","test":"jest --forceExit","test:spec":"vitest run --config vitest.config.ts","test:spec:watch":"vitest --config vitest.config.ts","test:spec:browser":"vitest run --config vitest.browser.config.ts","test:integration":"node test/integration/encode-decode.test.js && node test/integration/audio-encode-decode.test.js && node test/integration/vp8-vp9-encode-decode.test.js && node test/integration/hevc-av1-encode-decode.test.js","prebuild":"prebuildify --napi --strip","prebuild:ci":"prebuildify-ci","install":"node scripts/install.js","build:native:static":"cmake-js compile --CDWEBCODECS_STATIC_FFMPEG=ON --out build-static","prepublishOnly":"npm run build:ts && npm test && npm run test:spec","lint":"eslint src/**/*.ts","docs:generate":"typedoc","docs:dev":"cd docs && mintlify dev","docs:build":"npm run docs:generate && cd docs && mintlify build"},"keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"author":{"name":"caseymanos"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/caseymanos/node-webcodecs.git"},"bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"homepage":"https://github.com/caseymanos/node-webcodecs#readme","engines":{"node":">=18.0.0"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dependencies":{"node-addon-api":"^7.0.0","node-gyp-build":"^4.8.4"},"devDependencies":{"@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","@vitest/browser":"^4.0.15","@vitest/browser-playwright":"^4.0.15","cmake-js":"^7.3.0","eslint":"^8.0.0","jest":"^29.0.0","jsqr":"^1.4.0","playwright":"^1.57.0","prebuildify":"^6.0.1","prebuildify-ci":"^1.0.5","qrcode":"^1.5.4","ts-jest":"^29.0.0","typedoc":"^0.28.15","typedoc-plugin-markdown":"^4.9.0","typescript":"^5.3.0","vitest":"^4.0.15"},"binary":{"napi_versions":[8]},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./register":{"types":"./dist/register.d.ts","default":"./dist/register.js"},"./mediabunny":{"types":"./dist/mediabunny.d.ts","import":"./mediabunny.mjs","require":"./dist/mediabunny.js"},"./package.json":"./package.json","./dist/*":"./dist/*"},"peerDependencies":{"mediabunny":">=1.0.0"},"peerDependenciesMeta":{"mediabunny":{"optional":true}},"optionalDependencies":{"@node-webcodecs/static-darwin-arm64":"1.3.0","@node-webcodecs/static-linux-arm64":"1.3.0","@node-webcodecs/static-linux-x64":"1.3.0"},"gitHead":"fee256da368950369577451bbdbe3ad5929f4165","_id":"node-webcodecs@1.3.0","_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-iMx9mhiefQiw32FKlmr+4xc6o3Se+34qOFxAmuKDK4Lkoj0new1AsKTcHPeWxRgpT8MgwUbmPdSNLqtI9SObSg==","shasum":"ff26404f4234b3af462f3486ea0b1a0ba58eb6f1","tarball":"https://registry.npmjs.org/node-webcodecs/-/node-webcodecs-1.3.0.tgz","fileCount":114,"unpackedSize":2645509,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-webcodecs@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHOWVBe3mo+jR6bt6xl5Oj0JbY/xd5dk3CMzCnMwDC6jAiEAuO4YjllZqahjB9UjubtzAgRwIdmRDwzhHM25LWvvlDM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6edda75c-ffc3-4eb2-86dc-db724f1573bc"}},"directories":{},"maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-webcodecs_1.3.0_1784090944958_0.4512716616780077"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-01T23:23:35.339Z","modified":"2026-07-15T04:49:05.472Z","0.1.0":"2025-12-01T23:23:35.630Z","0.1.1":"2025-12-02T00:20:09.398Z","0.1.2":"2025-12-02T00:24:20.287Z","0.2.0":"2025-12-02T01:12:06.679Z","0.3.0":"2025-12-02T17:52:36.926Z","0.4.0":"2025-12-02T18:59:08.507Z","0.4.1":"2025-12-03T06:58:07.390Z","0.4.2":"2025-12-03T21:45:39.978Z","1.0.0":"2025-12-30T09:05:30.259Z","1.1.4":"2026-07-14T20:15:32.197Z","1.1.5":"2026-07-14T20:34:24.001Z","1.2.0":"2026-07-14T21:54:33.308Z","1.2.1":"2026-07-14T22:58:47.883Z","1.2.2":"2026-07-14T23:27:48.395Z","1.3.0":"2026-07-15T04:49:05.168Z"},"bugs":{"url":"https://github.com/caseymanos/node-webcodecs/issues"},"author":{"name":"caseymanos"},"license":"MIT","homepage":"https://github.com/caseymanos/node-webcodecs#readme","keywords":["webcodecs","video","audio","encoder","decoder","ffmpeg","h264","hevc","vp8","vp9","av1","aac","opus","media","hdr","alpha","svc","image-decoder","video-processing","transcoding","video-encoder","video-decoder","audio-encoder","audio-decoder","hardware-acceleration","videotoolbox","nvenc","node","native","w3c","codec","mp4","streaming"],"repository":{"type":"git","url":"git+https://github.com/caseymanos/node-webcodecs.git"},"description":"Native WebCodecs API implementation for Node.js using FFmpeg","maintainers":[{"name":"cmanos18","email":"manoscasey@gmail.com"}],"readme":"# node-webcodecs\n\nNative WebCodecs API implementation for Node.js, using FFmpeg for encoding and decoding.\n\n[![npm version](https://badge.fury.io/js/node-webcodecs.svg)](https://www.npmjs.com/package/node-webcodecs)\n[![vjeux harness](https://img.shields.io/badge/vjeux%20harness-84%2F84%20passing-brightgreen)](https://github.com/vjeux/webcodecs-harness)\n\n## Features\n\n- **W3C WebCodecs API compatible** - Same API as the browser WebCodecs\n- **Non-blocking async encoding/decoding** - Worker thread pool keeps the event loop responsive\n- **Hardware acceleration** - VideoToolbox (macOS), NVENC (NVIDIA), QSV (Intel), VAAPI (Linux)\n- **Video codecs**: H.264/AVC, H.265/HEVC, VP8, VP9, AV1\n- **Audio codecs**: AAC, Opus, FLAC, MP3\n- **ImageDecoder** - Decode JPEG, PNG, GIF, WebP, BMP images with ReadableStream support\n- **Native codec probing** - `isConfigSupported` actually tests codec availability\n- **HDR support** - BT.2020, PQ (HDR10), HLG color spaces\n- **Alpha channel** - VP8/VP9 with transparency (`alpha: 'keep'`)\n- **Scalability modes** - Temporal layer SVC (L1T1, L1T2, L1T3)\n- **Latency modes** - `'quality'` vs `'realtime'` encoding\n- **Bitrate modes** - `'constant'`, `'variable'`, `'quantizer'`\n- **High performance** - Native C++ bindings with FFmpeg\n- **Backpressure support** - `encodeQueueSize`, `decodeQueueSize`, and `dequeue` events\n- **TypeScript support** - Full type definitions included\n\n## Requirements\n\n- Node.js 18+\n- No system dependencies on **linux-x64**, **linux-arm64**, and **macOS arm64** — see below\n\nThe loader resolves a native binding in this order:\n\n1. **Dynamic prebuild** — links your system FFmpeg (all codecs your FFmpeg has, including GPL ones like x264/x265). Requires FFmpeg runtime libraries whose major version matches the prebuild: FFmpeg 6.x on Linux (e.g. Ubuntu 24.04), current Homebrew FFmpeg on macOS.\n2. **Static prebuild** — a statically-linked, LGPL-only FFmpeg shipped as a platform-specific `@node-webcodecs/static-*` optional dependency (~15 MB, only your platform is downloaded). Zero system dependencies: works in any Docker base image, Lambda, Fly, etc. H.264 encode uses openh264, AV1 encode uses SVT-AV1, AV1 decode uses dav1d. No GPL components, so **software HEVC encode is unavailable** (hardware HEVC encode still works where present).\n3. **Source build** — `cmake-js` compiles against your FFmpeg dev headers. Requires `cmake`, `pkg-config`, a C++ compiler, and FFmpeg dev packages.\n\nSet `NODE_WEBCODECS_FORCE=dynamic|static|source` to pin a specific variant (both at install time and at runtime), and call `getNativeVariant()` to see which one loaded.\n\n### Installing Dependencies\n\nOnly needed for the dynamic prebuild (preferred when present) or source builds — installs with none of this work via the static prebuild.\n\n**macOS (Homebrew):**\n```bash\nbrew install ffmpeg\n\n# Ensure Homebrew is in your PATH (add to ~/.zshrc or ~/.bashrc)\nexport PATH=\"/opt/homebrew/bin:$PATH\"\n```\n\n**Ubuntu/Debian:**\n```bash\nsudo apt-get install libavcodec-dev libavutil-dev libswscale-dev libswresample-dev\n```\n\n**Windows (builds from source):**\nInstall FFmpeg and add to PATH, or use vcpkg. Ensure `pkg-config` and a C++ compiler are available.\n\n## Installation\n\n```bash\nnpm install node-webcodecs\n```\n\n## Quick Start\n\n### Video Encoding\n\n```javascript\nconst { VideoEncoder, VideoFrame } = require('node-webcodecs');\n\nconst encoder = new VideoEncoder({\n  output: (chunk, metadata) => {\n    console.log(`Encoded: ${chunk.byteLength} bytes`);\n  },\n  error: (err) => console.error(err),\n});\n\nencoder.configure({\n  codec: 'avc1.42E01E',  // H.264 Baseline\n  width: 640,\n  height: 480,\n  bitrate: 1_000_000,\n});\n\n// Create frame from RGBA buffer\nconst frame = new VideoFrame(rgbaBuffer, {\n  format: 'RGBA',\n  codedWidth: 640,\n  codedHeight: 480,\n  timestamp: 0,\n});\n\nencoder.encode(frame, { keyFrame: true });\nframe.close();\n\nawait encoder.flush();\nencoder.close();\n```\n\n### Video Decoding\n\n```javascript\nconst { VideoDecoder, EncodedVideoChunk } = require('node-webcodecs');\n\nconst decoder = new VideoDecoder({\n  output: (frame) => {\n    console.log(`Decoded: ${frame.codedWidth}x${frame.codedHeight}`);\n    frame.close();\n  },\n  error: (err) => console.error(err),\n});\n\ndecoder.configure({\n  codec: 'avc1.42E01E',\n  codedWidth: 640,\n  codedHeight: 480,\n});\n\n// Decode an encoded chunk\ndecoder.decode(encodedChunk);\nawait decoder.flush();\ndecoder.close();\n```\n\n### Audio Encoding\n\n```javascript\nconst { AudioEncoder, AudioData } = require('node-webcodecs');\n\nconst encoder = new AudioEncoder({\n  output: (chunk, metadata) => {\n    console.log(`Encoded: ${chunk.byteLength} bytes`);\n  },\n  error: (err) => console.error(err),\n});\n\nencoder.configure({\n  codec: 'mp4a.40.2',  // AAC-LC\n  sampleRate: 48000,\n  numberOfChannels: 2,\n  bitrate: 128000,\n});\n\nconst audio = new AudioData({\n  format: 'f32',\n  sampleRate: 48000,\n  numberOfFrames: 1024,\n  numberOfChannels: 2,\n  timestamp: 0,\n  data: floatSamples,\n});\n\nencoder.encode(audio);\naudio.close();\n\nawait encoder.flush();\nencoder.close();\n```\n\n### Image Decoding\n\n```javascript\nconst { ImageDecoder } = require('node-webcodecs');\nconst fs = require('fs');\n\nconst imageData = fs.readFileSync('photo.jpg');\n\nconst decoder = new ImageDecoder({\n  data: imageData,\n  type: 'image/jpeg',\n});\n\nawait decoder.completed;\n\nconsole.log(`Image: ${decoder.tracks.selectedTrack.frameCount} frame(s)`);\n\nconst result = await decoder.decode({ frameIndex: 0 });\nconst frame = result.image;\n\nconsole.log(`Decoded: ${frame.codedWidth}x${frame.codedHeight}`);\nframe.close();\ndecoder.close();\n```\n\n### Advanced Encoding Options\n\n```javascript\n// HDR encoding with BT.2020 + PQ\nencoder.configure({\n  codec: 'hvc1',\n  width: 3840,\n  height: 2160,\n  bitrate: 20_000_000,\n  colorSpace: {\n    primaries: 'bt2020',\n    transfer: 'pq',        // HDR10\n    matrix: 'bt2020-ncl',\n    fullRange: false,\n  },\n});\n\n// Low-latency realtime encoding\nencoder.configure({\n  codec: 'avc1.42E01E',\n  width: 1280,\n  height: 720,\n  bitrate: 2_000_000,\n  latencyMode: 'realtime',\n  bitrateMode: 'constant',\n});\n\n// VP9 with alpha channel\nencoder.configure({\n  codec: 'vp09.00.10.08',\n  width: 640,\n  height: 480,\n  bitrate: 1_000_000,\n  alpha: 'keep',  // Preserve alpha channel\n});\n\n// Temporal layer SVC\nencoder.configure({\n  codec: 'vp09.00.10.08',\n  width: 1280,\n  height: 720,\n  bitrate: 2_000_000,\n  scalabilityMode: 'L1T2',  // 1 spatial, 2 temporal layers\n});\n```\n\n## Supported Codecs\n\n### Video Codecs\n\n| Codec String | Description | SW Encoder | HW Encoder |\n|--------------|-------------|------------|------------|\n| `avc1.PPCCLL` | H.264/AVC | libx264 | VideoToolbox, NVENC, QSV |\n| `hvc1`, `hev1` | H.265/HEVC | libx265 | VideoToolbox, NVENC, QSV |\n| `vp8` | VP8 | libvpx | - |\n| `vp9`, `vp09.PP.LL.DD` | VP9 | libvpx-vp9 | VAAPI, QSV |\n| `av01` | AV1 | libsvtav1 | NVENC (RTX 40+), QSV |\n\n## Hardware Acceleration\n\nHardware encoders are automatically selected when available. You can control this with the `hardwareAcceleration` option:\n\n```javascript\nencoder.configure({\n  codec: 'avc1.42E01E',\n  width: 1920,\n  height: 1080,\n  bitrate: 5_000_000,\n  hardwareAcceleration: 'prefer-hardware',  // 'no-preference' | 'prefer-hardware' | 'prefer-software'\n});\n```\n\n### Supported Hardware Accelerators\n\n| Platform | Accelerator | H.264 | HEVC | VP9 | AV1 |\n|----------|-------------|-------|------|-----|-----|\n| macOS | VideoToolbox | Encode/Decode | Encode/Decode | - | - |\n| Windows/Linux | NVIDIA NVENC | Encode | Encode | - | Encode (RTX 40+) |\n| Windows/Linux | Intel QuickSync | Encode/Decode | Encode/Decode | Encode | Encode |\n| Linux | VA-API | Encode/Decode | Encode/Decode | Encode | Encode |\n\n## Async Worker Threads\n\nBy default, encoding and decoding operations run on a dedicated worker thread to avoid blocking the Node.js event loop. This keeps your application responsive during heavy video processing.\n\n```javascript\n// Async mode (default) - event loop stays responsive\nencoder.configure({\n  codec: 'avc1.42E01E',\n  width: 1920,\n  height: 1080,\n  bitrate: 5_000_000,\n  useWorkerThread: true,  // default\n});\n\n// Sync mode - blocks event loop (legacy behavior)\nencoder.configure({\n  codec: 'avc1.42E01E',\n  width: 1920,\n  height: 1080,\n  bitrate: 5_000_000,\n  useWorkerThread: false,\n});\n```\n\nBenchmark results show async mode allows **3100% more event loop iterations** compared to sync mode, meaning your HTTP servers, timers, and I/O operations continue running smoothly during encoding.\n\n## Use with Mediabunny\n\n[Mediabunny](https://mediabunny.dev/) reads and writes MP4/WebM files using the environment's WebCodecs. One import gives it this package's codecs in Node:\n\n```javascript\nimport 'node-webcodecs/mediabunny';  // WebCodecs globals + resize support\n// or, without the Mediabunny-specific extras:\nimport 'node-webcodecs/register';    // just the WebCodecs globals\n\nimport { Input, ALL_FORMATS, FilePathSource, VideoSampleSink } from 'mediabunny';\n\nconst input = new Input({ formats: ALL_FORMATS, source: new FilePathSource('video.mp4') });\nconst track = await input.getPrimaryVideoTrack();\nconst sink = new VideoSampleSink(track);\n\nfor await (const sample of sink.samples()) {\n  // full-speed, frame-accurate decoding — no browser required\n  sample.close();\n}\n```\n\nMeasured against `@mediabunny/server` (NodeAV backend) on the same 1080p file: ~7x faster full-file decode, identical pixels, and 1.5x faster resize transcodes. `node-webcodecs/mediabunny` registers a `VideoSample` transformer covering plain resizing (`fit: 'fill'`, or `contain`/`cover` with matching aspect ratio); rotation and cropping are not yet handled.\n\n## Performance\n\nDecoding is multithreaded (FFmpeg auto-detects core count) and decoded frames are delivered zero-copy. Measured at 1080p over 150 frames on an Apple M4 Pro (v1.1.4, software codecs):\n\n| Operation | Throughput |\n|-----------|-----------|\n| H.264 decode | ~1,800 fps |\n| VP9 decode | ~1,570 fps |\n| VP9 encode | ~49 fps |\n| H.264 encode (VideoToolbox) | ~220 fps |\n\nRelative to v1.0.0 this is 3–6× faster decoding and ~3× faster VP9 encoding.\n\n### Audio Codecs\n\n| Codec String | Description | Encoder | Decoder |\n|--------------|-------------|---------|---------|\n| `mp4a.40.2` | AAC-LC | aac | aac |\n| `opus` | Opus | libopus | opus |\n| `flac` | FLAC (lossless) | flac | flac |\n| `mp3` | MP3 | libmp3lame | mp3 |\n\n## API Reference\n\n### VideoEncoder\n\n```typescript\nconst encoder = new VideoEncoder(init: VideoEncoderInit);\nencoder.configure(config: VideoEncoderConfig);\nencoder.encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions);\nawait encoder.flush();\nencoder.close();\nencoder.reset();\n\n// Static method to check codec support\nconst support = await VideoEncoder.isConfigSupported(config);\n```\n\n### VideoDecoder\n\n```typescript\nconst decoder = new VideoDecoder(init: VideoDecoderInit);\ndecoder.configure(config: VideoDecoderConfig);\ndecoder.decode(chunk: EncodedVideoChunk);\nawait decoder.flush();\ndecoder.close();\ndecoder.reset();\n\n// Static method to check codec support\nconst support = await VideoDecoder.isConfigSupported(config);\n```\n\n### AudioEncoder\n\n```typescript\nconst encoder = new AudioEncoder(init: AudioEncoderInit);\nencoder.configure(config: AudioEncoderConfig);\nencoder.encode(data: AudioData);\nawait encoder.flush();\nencoder.close();\nencoder.reset();\n```\n\n### AudioDecoder\n\n```typescript\nconst decoder = new AudioDecoder(init: AudioDecoderInit);\ndecoder.configure(config: AudioDecoderConfig);\ndecoder.decode(chunk: EncodedAudioChunk);\nawait decoder.flush();\ndecoder.close();\ndecoder.reset();\n```\n\n### ImageDecoder\n\n```typescript\nconst decoder = new ImageDecoder(init: ImageDecoderInit);\nawait decoder.completed;              // Promise that resolves when ready\ndecoder.type;                         // MIME type\ndecoder.tracks;                       // ImageTrackList with frame info\nconst result = await decoder.decode({ frameIndex: 0 });\ndecoder.close();\n\n// Supported types: image/jpeg, image/png, image/gif, image/webp, image/bmp\n```\n\n### VideoFrame\n\n```typescript\nconst frame = new VideoFrame(data: BufferSource, init: VideoFrameBufferInit);\nframe.codedWidth;\nframe.codedHeight;\nframe.timestamp;\nframe.duration;\nframe.format;\nframe.allocationSize(options?);\nframe.copyTo(destination, options?);\nframe.clone();\nframe.close();\n```\n\n### AudioData\n\n```typescript\nconst audio = new AudioData(init: AudioDataInit);\naudio.sampleRate;\naudio.numberOfFrames;\naudio.numberOfChannels;\naudio.format;\naudio.timestamp;\naudio.duration;\naudio.allocationSize(options?);\naudio.copyTo(destination, options?);\naudio.clone();\naudio.close();\n```\n\n## Examples\n\nSee the `examples/` directory for more usage examples:\n\n- `basic-video-encode.js` - Simple video encoding\n- `basic-audio-encode.js` - Simple audio encoding\n- `encode-decode-roundtrip.js` - Full encode/decode cycle\n\n## Runtime Support\n\n| Runtime | Version | Status |\n|---------|---------|--------|\n| Node.js | 18+     | Supported |\n| Bun     | 1.0+    | Supported |\n\n### Bun Installation\n\n```bash\nbun add node-webcodecs\n```\n\nIf the native binary doesn't compile automatically, you may need to trust the package:\n\n```bash\nbun pm trust node-webcodecs\n```\n\n## Building from Source\n\n```bash\ngit clone https://github.com/caseymanos/node-webcodecs.git\ncd node-webcodecs\nnpm install\nnpm run build\nnpm test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}