mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-10-10 17:24:06 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
149a2b4571 | ||
|
|
0c455236da | ||
|
|
41fb9657cb | ||
|
|
d77ddf033b | ||
|
|
b9f48ca9ef | ||
|
|
aa38385cae | ||
|
|
8bfedb0a88 | ||
|
|
d731037f6f | ||
|
|
f869358f93 | ||
|
|
f2bd003728 |
@@ -148,6 +148,7 @@ const sponsors = {
|
|||||||
{ image: 'https://avatars.githubusercontent.com/u/13042781', name: 'Anshul Bansal', url: 'https://github.com/akbansa' },
|
{ image: 'https://avatars.githubusercontent.com/u/13042781', name: 'Anshul Bansal', url: 'https://github.com/akbansa' },
|
||||||
{ image: 'https://avatars.githubusercontent.com/u/43105172', name: 'zhmou', url: 'https://github.com/zhmou' },
|
{ image: 'https://avatars.githubusercontent.com/u/43105172', name: 'zhmou', url: 'https://github.com/zhmou' },
|
||||||
{ image: 'https://avatars.githubusercontent.com/u/695166', name: 'Takenori Nakagawa', url: 'https://github.com/ww24' },
|
{ image: 'https://avatars.githubusercontent.com/u/695166', name: 'Takenori Nakagawa', url: 'https://github.com/ww24' },
|
||||||
|
{ image: 'https://avatars.githubusercontent.com/u/43607012', name: 'Sturlen', url: 'https://github.com/Sturlen' },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Generated
+48
-80
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "mediabunny",
|
"name": "mediabunny",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mediabunny",
|
"name": "mediabunny",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
".",
|
".",
|
||||||
@@ -2210,161 +2210,129 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-darwin-arm64": {
|
"node_modules/@seydx/node-av-darwin-arm64": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-darwin-arm64/-/node-av-darwin-arm64-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-darwin-arm64/-/node-av-darwin-arm64-5.2.4.tgz",
|
||||||
"integrity": "sha512-pLX0SS3LLRoDWHCt+aWWc/P5W/BpmB5vD935KcM5nlxDG+SMjc4uyYqG+t8VVKwvmPrE2kLCsAAu/h37x4ZPYQ==",
|
"integrity": "sha512-uQh6jWXDeXtjuaGOXrBx2rszPDcQbRa4W1YFrmlQG+ffOo+IJyczGjhTWfgzebRksB9tMAe9ViztU39THWZAkw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"darwin"
|
"darwin"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-darwin-x64": {
|
"node_modules/@seydx/node-av-darwin-x64": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-darwin-x64/-/node-av-darwin-x64-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-darwin-x64/-/node-av-darwin-x64-5.2.4.tgz",
|
||||||
"integrity": "sha512-kMweEjMCItEH0eolKntm6IXWFDgMlfrW4xLFTIsrLfe9w9mdAMMQIqWA+7WTCWKMGUl9z5Nc/Y5GNl4HGx8N9w==",
|
"integrity": "sha512-S9ptQF7JhvGSbvZH9jVeDAPXyRklA7rySKiFzi4UeLTMJslgFTSWFgY2nJAtHrP4wRdkAPnAVjExqd8U7jRZgg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"darwin"
|
"darwin"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-linux-arm64": {
|
"node_modules/@seydx/node-av-linux-arm64": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-linux-arm64/-/node-av-linux-arm64-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-linux-arm64/-/node-av-linux-arm64-5.2.4.tgz",
|
||||||
"integrity": "sha512-WHtPyzkIaiQtDV8Dashp84adEdMGHByMWDdHWnTIVhc29+0vrv+xZbgWKh1Y+z5XrpzSXUM36WzSttkzpDs6bw==",
|
"integrity": "sha512-XlQAWIcqFxVItr98VShaxzx57Cfl0y+RPCPciLOHXuEmfeKjON4o/xdbChHg02hHFrVAeSCfaHWQmHNgB9m6eQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-linux-x64": {
|
"node_modules/@seydx/node-av-linux-x64": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-linux-x64/-/node-av-linux-x64-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-linux-x64/-/node-av-linux-x64-5.2.4.tgz",
|
||||||
"integrity": "sha512-Nwm25hBKUl4TTv6zY2AbZJNSTor3ubilbW02NofQx0ch68fANs5zIPDvWFMZOrQwDnl5NYpO4rHB3/UnoNEBcg==",
|
"integrity": "sha512-+2LdgZ7irDik++0mO6Bo1odYa2NZvze6xiy4B8jTbcf3F8k46qQEKkPjBwtV0qQu5fn3M+fUc/wk5coHdfxjxA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"linux"
|
"linux"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-win32-arm64-mingw": {
|
"node_modules/@seydx/node-av-win32-arm64-mingw": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-arm64-mingw/-/node-av-win32-arm64-mingw-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-arm64-mingw/-/node-av-win32-arm64-mingw-5.2.4.tgz",
|
||||||
"integrity": "sha512-0J/IArDO/jebA7a8Ep6j1XeZFF8DmDQD8x0+LrYsMQiv89i5NQJto/Bbaazfmldi+HGKBiJe+NwswzVW18pMyA==",
|
"integrity": "sha512-uVNgRQ44uSdtMcR9O6R+nrBou5BWmroTFnGPI3PX8pHR8oe1Nim5zXtWK0qGTTqOiTPNsK5XnSshM3c5/n0/Fg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-win32-arm64-msvc": {
|
"node_modules/@seydx/node-av-win32-arm64-msvc": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-arm64-msvc/-/node-av-win32-arm64-msvc-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-arm64-msvc/-/node-av-win32-arm64-msvc-5.2.4.tgz",
|
||||||
"integrity": "sha512-NCoOZSD4KppikZUv71xzTQEKpRMUaR2ZSzgpwGGaCLEWZ27lKRpSmE6vMQJXYuBMN5ePf36FsBdP7he+dMQpvQ==",
|
"integrity": "sha512-Gi+Op8j028WHbdl2jR7MnyHqR2J1TfkEogLPludb3jx54Yi+MO1zvouICFUmtSbxd9JC7CAeoU8++CZAMqcEvA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-win32-x64-mingw": {
|
"node_modules/@seydx/node-av-win32-x64-mingw": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-x64-mingw/-/node-av-win32-x64-mingw-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-x64-mingw/-/node-av-win32-x64-mingw-5.2.4.tgz",
|
||||||
"integrity": "sha512-HClIpeM+73yEAIIAgSL/vHV385ka7gYRyJ+Z3s/t4uvLWD2VGhgGhZSS7U6d1RMS75+D4wBiEqLPiXTz7NLA1w==",
|
"integrity": "sha512-gClAhvV/aJa681tuTlG6dTqqMpnTM5k6QVhnWolBgkbpZXMi0qABzoUBTYpuwxnOEd6j2mBBAVwqx6kut55Ukw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seydx/node-av-win32-x64-msvc": {
|
"node_modules/@seydx/node-av-win32-x64-msvc": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-x64-msvc/-/node-av-win32-x64-msvc-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@seydx/node-av-win32-x64-msvc/-/node-av-win32-x64-msvc-5.2.4.tgz",
|
||||||
"integrity": "sha512-abGMjVfnzCV6YTGBabXL6KJEHCODUY5Bl8/WLC2taBAwZHsvj2S4B7LfoxvulJmm3HeSWqG0/ygD1nk7VyyQMw==",
|
"integrity": "sha512-01s5ij6nudrtZ7ojiAOAgzuUrImvuQYrAE5o6uesoxYqOha6j7yRu5e4qCXRQCDKrh2FBzyO1cGDc7Ht8Ly8wQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
|
||||||
"unzipper": "^0.12.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||||
}
|
}
|
||||||
@@ -9001,24 +8969,24 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-av": {
|
"node_modules/node-av": {
|
||||||
"version": "5.2.3",
|
"version": "5.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/node-av/-/node-av-5.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/node-av/-/node-av-5.2.4.tgz",
|
||||||
"integrity": "sha512-tUFIqn1kV5Ihzgzc2/g0s00Di21+On50g5TTHRpVl57b7kqzFidQr5rire8iktfltWg9Q8cRNyo8wpcxG9pkNA==",
|
"integrity": "sha512-L5r+6k+YGvH5MZX8o55JHQbbeRZ+iFieAb1bhKtpa8hrqBEGuSwdkXRwpE4vd414JqVJsq/EQq6s+3qKeviQTg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"unzipper": "^0.12.3",
|
"unzipper": "^0.12.3",
|
||||||
"werift": "^0.22.9"
|
"werift": "^0.23.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@seydx/node-av-darwin-arm64": "^5.2.3",
|
"@seydx/node-av-darwin-arm64": "^5.2.4",
|
||||||
"@seydx/node-av-darwin-x64": "^5.2.3",
|
"@seydx/node-av-darwin-x64": "^5.2.4",
|
||||||
"@seydx/node-av-linux-arm64": "^5.2.3",
|
"@seydx/node-av-linux-arm64": "^5.2.4",
|
||||||
"@seydx/node-av-linux-x64": "^5.2.3",
|
"@seydx/node-av-linux-x64": "^5.2.4",
|
||||||
"@seydx/node-av-win32-arm64-mingw": "^5.2.3",
|
"@seydx/node-av-win32-arm64-mingw": "^5.2.4",
|
||||||
"@seydx/node-av-win32-arm64-msvc": "^5.2.3",
|
"@seydx/node-av-win32-arm64-msvc": "^5.2.4",
|
||||||
"@seydx/node-av-win32-x64-mingw": "^5.2.3",
|
"@seydx/node-av-win32-x64-mingw": "^5.2.4",
|
||||||
"@seydx/node-av-win32-x64-msvc": "^5.2.3"
|
"@seydx/node-av-win32-x64-msvc": "^5.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-domexception": {
|
"node_modules/node-domexception": {
|
||||||
@@ -12437,9 +12405,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/werift": {
|
"node_modules/werift": {
|
||||||
"version": "0.22.9",
|
"version": "0.23.0",
|
||||||
"resolved": "https://registry.npmjs.org/werift/-/werift-0.22.9.tgz",
|
"resolved": "https://registry.npmjs.org/werift/-/werift-0.23.0.tgz",
|
||||||
"integrity": "sha512-TE9AxskSRWBMYm0MBRllfnKVXQelqC76JCvyolQyVWpmKabfY5BA/cuvkGg+71JWn3QrGih1YWtpIWGPqoxcoA==",
|
"integrity": "sha512-/WcIN5DHFG9Ri4anGOmIkp8gxBGFMWSIB/m4sfZ5CWlLfD3iMhiaAUuTBuc+KV3SY9NDmvmLtiN2uaM7k3lVzw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fidm/x509": "^1.2.1",
|
"@fidm/x509": "^1.2.1",
|
||||||
@@ -12838,7 +12806,7 @@
|
|||||||
},
|
},
|
||||||
"packages/aac-encoder": {
|
"packages/aac-encoder": {
|
||||||
"name": "@mediabunny/aac-encoder",
|
"name": "@mediabunny/aac-encoder",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/emscripten": "^1.40.1"
|
"@types/emscripten": "^1.40.1"
|
||||||
@@ -12853,7 +12821,7 @@
|
|||||||
},
|
},
|
||||||
"packages/ac3": {
|
"packages/ac3": {
|
||||||
"name": "@mediabunny/ac3",
|
"name": "@mediabunny/ac3",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/emscripten": "^1.40.1"
|
"@types/emscripten": "^1.40.1"
|
||||||
@@ -12868,7 +12836,7 @@
|
|||||||
},
|
},
|
||||||
"packages/flac-encoder": {
|
"packages/flac-encoder": {
|
||||||
"name": "@mediabunny/flac-encoder",
|
"name": "@mediabunny/flac-encoder",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/emscripten": "^1.40.1"
|
"@types/emscripten": "^1.40.1"
|
||||||
@@ -12883,7 +12851,7 @@
|
|||||||
},
|
},
|
||||||
"packages/mp3-encoder": {
|
"packages/mp3-encoder": {
|
||||||
"name": "@mediabunny/mp3-encoder",
|
"name": "@mediabunny/mp3-encoder",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/emscripten": "^1.40.1"
|
"@types/emscripten": "^1.40.1"
|
||||||
@@ -12898,17 +12866,17 @@
|
|||||||
},
|
},
|
||||||
"packages/server": {
|
"packages/server": {
|
||||||
"name": "@mediabunny/server",
|
"name": "@mediabunny/server",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"node-av": "^5.2.3"
|
"node-av": "^5.2.4"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
"url": "https://github.com/sponsors/Vanilagy"
|
"url": "https://github.com/sponsors/Vanilagy"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"mediabunny": "^1.0.0"
|
"mediabunny": "^1.45.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "mediabunny",
|
"name": "mediabunny",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.",
|
"description": "Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@mediabunny/aac-encoder",
|
"name": "@mediabunny/aac-encoder",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "AAC encoder extension for Mediabunny, based on FFmpeg.",
|
"description": "AAC encoder extension for Mediabunny, based on FFmpeg.",
|
||||||
"main": "./dist/bundles/mediabunny-aac-encoder.mjs",
|
"main": "./dist/bundles/mediabunny-aac-encoder.mjs",
|
||||||
"module": "./dist/bundles/mediabunny-aac-encoder.mjs",
|
"module": "./dist/bundles/mediabunny-aac-encoder.mjs",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@mediabunny/ac3",
|
"name": "@mediabunny/ac3",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "AC-3 and E-AC-3 (Dolby Digital) decoder and encoder extension for Mediabunny, based on FFmpeg.",
|
"description": "AC-3 and E-AC-3 (Dolby Digital) decoder and encoder extension for Mediabunny, based on FFmpeg.",
|
||||||
"main": "./dist/bundles/mediabunny-ac3.mjs",
|
"main": "./dist/bundles/mediabunny-ac3.mjs",
|
||||||
"module": "./dist/bundles/mediabunny-ac3.mjs",
|
"module": "./dist/bundles/mediabunny-ac3.mjs",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@mediabunny/flac-encoder",
|
"name": "@mediabunny/flac-encoder",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "FLAC encoder extension for Mediabunny, based on libFLAC.",
|
"description": "FLAC encoder extension for Mediabunny, based on libFLAC.",
|
||||||
"main": "./dist/bundles/mediabunny-flac-encoder.mjs",
|
"main": "./dist/bundles/mediabunny-flac-encoder.mjs",
|
||||||
"module": "./dist/bundles/mediabunny-flac-encoder.mjs",
|
"module": "./dist/bundles/mediabunny-flac-encoder.mjs",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@mediabunny/mp3-encoder",
|
"name": "@mediabunny/mp3-encoder",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "MP3 encoder extension for Mediabunny, based on LAME.",
|
"description": "MP3 encoder extension for Mediabunny, based on LAME.",
|
||||||
"main": "./dist/bundles/mediabunny-mp3-encoder.mjs",
|
"main": "./dist/bundles/mediabunny-mp3-encoder.mjs",
|
||||||
"module": "./dist/bundles/mediabunny-mp3-encoder.mjs",
|
"module": "./dist/bundles/mediabunny-mp3-encoder.mjs",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@mediabunny/server",
|
"name": "@mediabunny/server",
|
||||||
"author": "Vanilagy",
|
"author": "Vanilagy",
|
||||||
"version": "1.45.0",
|
"version": "1.45.3",
|
||||||
"description": "Adds full video and audio decoder and encoder support to Mediabunny for use in server-side environments (Node, Bun, Deno). Based on NodeAV.",
|
"description": "Adds full video and audio decoder and encoder support to Mediabunny for use in server-side environments (Node, Bun, Deno). Based on NodeAV.",
|
||||||
"main": "./dist/bundles/mediabunny-server.cjs",
|
"main": "./dist/bundles/mediabunny-server.cjs",
|
||||||
"module": "./dist/bundles/mediabunny-server.mjs",
|
"module": "./dist/bundles/mediabunny-server.mjs",
|
||||||
@@ -34,10 +34,10 @@
|
|||||||
"url": "https://github.com/sponsors/Vanilagy"
|
"url": "https://github.com/sponsors/Vanilagy"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"node-av": "^5.2.3"
|
"node-av": "^5.2.4"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"mediabunny": "^1.0.0"
|
"mediabunny": "^1.45.0"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"server",
|
"server",
|
||||||
|
|||||||
@@ -237,6 +237,3 @@ export const getChannelLayout = (numChannels: number): NodeAv.ChannelLayout => {
|
|||||||
default: return { nbChannels: numChannels, order: NodeAv.AV_CHANNEL_ORDER_UNSPEC, mask: 0n };
|
default: return { nbChannels: numChannels, order: NodeAv.AV_CHANNEL_ORDER_UNSPEC, mask: 0n };
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// The value is incorrect in the node-av source code, so we do:
|
|
||||||
export const LIBVPX_VP9 = 'libvpx-vp9' as (NodeAv.FFEncoderCodec & NodeAv.FFDecoderCodec);
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { CustomVideoDecoder, VideoCodec, EncodedPacket, VideoSample, type MaybePromise, Rational } from 'mediabunny';
|
import { CustomVideoDecoder, VideoCodec, EncodedPacket, VideoSample, type MaybePromise, Rational } from 'mediabunny';
|
||||||
import * as NodeAv from 'node-av';
|
import * as NodeAv from 'node-av';
|
||||||
import { CODEC_TO_CODEC_ID, getHardwareDecoderCodec, LIBVPX_VP9 } from './misc';
|
import { CODEC_TO_CODEC_ID, getHardwareDecoderCodec } from './misc';
|
||||||
import { assert, binarySearchLessOrEqual, simplifyRational, toUint8Array } from '../../../src/misc';
|
import { assert, binarySearchLessOrEqual, simplifyRational, toUint8Array } from '../../../src/misc';
|
||||||
import { AvFrameVideoSampleResource } from './video-sample';
|
import { AvFrameVideoSampleResource } from './video-sample';
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ export class NodeAvVideoDecoder extends CustomVideoDecoder {
|
|||||||
|
|
||||||
let codec: NodeAv.Codec | null;
|
let codec: NodeAv.Codec | null;
|
||||||
if (this.codec === 'vp9' && packet.sideData.alpha) {
|
if (this.codec === 'vp9' && packet.sideData.alpha) {
|
||||||
codec = NodeAv.Codec.findDecoderByName(LIBVPX_VP9) ?? NodeAv.Codec.findDecoder(codecId);
|
codec = NodeAv.Codec.findDecoderByName(NodeAv.FF_DECODER_LIBVPX_VP9) ?? NodeAv.Codec.findDecoder(codecId);
|
||||||
} else if (
|
} else if (
|
||||||
// This check used to be "is not prefer-hardware", meaning it would default to using software decode. I
|
// This check used to be "is not prefer-hardware", meaning it would default to using software decode. I
|
||||||
// didn't leave a comment for that back then so I actually don't know what it was for. I'm sure it was to
|
// didn't leave a comment for that back then so I actually don't know what it was for. I'm sure it was to
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import * as NodeAv from 'node-av';
|
|||||||
import {
|
import {
|
||||||
CODEC_TO_CODEC_ID,
|
CODEC_TO_CODEC_ID,
|
||||||
getHardwareEncoderCodec,
|
getHardwareEncoderCodec,
|
||||||
LIBVPX_VP9,
|
|
||||||
unmapColorPrimaries,
|
unmapColorPrimaries,
|
||||||
unmapMatrixCoefficients,
|
unmapMatrixCoefficients,
|
||||||
unmapTransferCharacteristics,
|
unmapTransferCharacteristics,
|
||||||
@@ -81,7 +80,7 @@ export class NodeAvVideoEncoder extends CustomVideoEncoder {
|
|||||||
|
|
||||||
let codec: NodeAv.Codec | null = null;
|
let codec: NodeAv.Codec | null = null;
|
||||||
if (this.codec === 'vp9' && this.config.alpha === 'keep') {
|
if (this.codec === 'vp9' && this.config.alpha === 'keep') {
|
||||||
codec = NodeAv.Codec.findEncoderByName(LIBVPX_VP9) ?? NodeAv.Codec.findEncoder(codecId);
|
codec = NodeAv.Codec.findEncoderByName(NodeAv.FF_ENCODER_LIBVPX_VP9) ?? NodeAv.Codec.findEncoder(codecId);
|
||||||
} else if (this.config.hardwareAcceleration === 'prefer-software') {
|
} else if (this.config.hardwareAcceleration === 'prefer-software') {
|
||||||
codec = NodeAv.Codec.findEncoder(codecId);
|
codec = NodeAv.Codec.findEncoder(codecId);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+1
-1
@@ -629,7 +629,7 @@ export const guessDescriptionForAudio = (decoderConfig: AudioDecoderConfig): Uin
|
|||||||
|
|
||||||
export const OPUS_SAMPLE_RATE = 48_000;
|
export const OPUS_SAMPLE_RATE = 48_000;
|
||||||
|
|
||||||
const PCM_CODEC_REGEX = /^pcm-([usf])(\d+)+(be)?$/;
|
const PCM_CODEC_REGEX = /^pcm-([usf])(\d+)(be)?$/;
|
||||||
|
|
||||||
export const parsePcmCodec = (codec: PcmAudioCodec) => {
|
export const parsePcmCodec = (codec: PcmAudioCodec) => {
|
||||||
assert(PCM_AUDIO_CODECS.includes(codec));
|
assert(PCM_AUDIO_CODECS.includes(codec));
|
||||||
|
|||||||
+1
-1
@@ -488,7 +488,7 @@ export class Id3V2Reader {
|
|||||||
|
|
||||||
readU24() {
|
readU24() {
|
||||||
const high = this.view.getUint16(this.pos, false);
|
const high = this.view.getUint16(this.pos, false);
|
||||||
const low = this.view.getUint8(this.pos + 1);
|
const low = this.view.getUint8(this.pos + 2);
|
||||||
this.pos += 3;
|
this.pos += 3;
|
||||||
return high * 0x100 + low;
|
return high * 0x100 + low;
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-6
@@ -46,7 +46,7 @@ import {
|
|||||||
customVideoEncoders,
|
customVideoEncoders,
|
||||||
customAudioEncoders,
|
customAudioEncoders,
|
||||||
} from './custom-coder';
|
} from './custom-coder';
|
||||||
import { EncodedPacket, EncodedPacketSideData } from './packet';
|
import { EncodedPacket, EncodedPacketSideData, PacketType } from './packet';
|
||||||
import {
|
import {
|
||||||
AudioSample,
|
AudioSample,
|
||||||
audioSampleToInterleavedFormat,
|
audioSampleToInterleavedFormat,
|
||||||
@@ -63,6 +63,7 @@ import {
|
|||||||
VideoEncodingConfig,
|
VideoEncodingConfig,
|
||||||
} from './encode';
|
} from './encode';
|
||||||
import { AudioResampler } from './resample';
|
import { AudioResampler } from './resample';
|
||||||
|
import { determineVideoPacketType } from './codec-data';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for media sources. Media sources are used to add media samples to an output file.
|
* Base class for media sources. Media sources are used to add media samples to an output file.
|
||||||
@@ -224,6 +225,7 @@ class VideoEncoderWrapper {
|
|||||||
private encoder: VideoEncoder | null = null;
|
private encoder: VideoEncoder | null = null;
|
||||||
private muxer: Muxer | null = null;
|
private muxer: Muxer | null = null;
|
||||||
private lastMultipleOfKeyFrameInterval = -1;
|
private lastMultipleOfKeyFrameInterval = -1;
|
||||||
|
private emittedEncoderPackets = 0;
|
||||||
|
|
||||||
// Tracks the input dimensions of the first frame
|
// Tracks the input dimensions of the first frame
|
||||||
private codedWidth: number | null = null;
|
private codedWidth: number | null = null;
|
||||||
@@ -694,6 +696,7 @@ class VideoEncoderWrapper {
|
|||||||
|
|
||||||
let packet = EncodedPacket.fromEncodedChunk(colorChunk, sideData);
|
let packet = EncodedPacket.fromEncodedChunk(colorChunk, sideData);
|
||||||
|
|
||||||
|
// See if there's a relevant timing entry to refine the packet's timing data
|
||||||
const preciseTimingIndex = binarySearchLessOrEqual(
|
const preciseTimingIndex = binarySearchLessOrEqual(
|
||||||
this.preciseTimings,
|
this.preciseTimings,
|
||||||
colorChunk.timestamp,
|
colorChunk.timestamp,
|
||||||
@@ -703,12 +706,24 @@ class VideoEncoderWrapper {
|
|||||||
? this.preciseTimings[preciseTimingIndex]
|
? this.preciseTimings[preciseTimingIndex]
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
// If there's a relevant timing entry, refine the packet's timing data to get better accuracy than
|
let actualType: PacketType | null = null;
|
||||||
// microseconds
|
if (this.emittedEncoderPackets === 0 && packet.type === 'delta' && meta?.decoderConfig) {
|
||||||
if (entry && entry.microsecondTimestamp === colorChunk.timestamp) {
|
// https://github.com/Vanilagy/mediabunny/issues/365
|
||||||
|
// We expect the first packet to be a key packet. If it's not, let's actually verify that it's
|
||||||
|
// not by getting the actual type.
|
||||||
|
actualType = determineVideoPacketType(
|
||||||
|
this.encodingConfig.codec,
|
||||||
|
meta.decoderConfig,
|
||||||
|
packet.data,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define the packet
|
||||||
|
if ((entry && entry.microsecondTimestamp === colorChunk.timestamp) || actualType !== null) {
|
||||||
packet = packet.clone({
|
packet = packet.clone({
|
||||||
timestamp: entry.timestampIsValid ? entry.timestamp : undefined,
|
timestamp: entry?.timestampIsValid ? entry.timestamp : undefined,
|
||||||
duration: entry.durationIsValid ? entry.duration : undefined,
|
duration: entry?.durationIsValid ? entry.duration : undefined,
|
||||||
|
type: actualType ?? undefined,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -720,6 +735,8 @@ class VideoEncoderWrapper {
|
|||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.error ??= error;
|
this.error ??= error;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.emittedEncoderPackets++;
|
||||||
};
|
};
|
||||||
|
|
||||||
const stack = new Error('Encoding error').stack;
|
const stack = new Error('Encoding error').stack;
|
||||||
|
|||||||
Reference in New Issue
Block a user