diff --git a/404.html b/404.html index ba6a75d..b07c535 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -z0ffy's website
Oops!
Seem to have lost your way.
Click here to go back to the home page.
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file +z0ffy's website
Oops!
Seem to have lost your way.
Click here to go back to the home page.
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file diff --git a/_next/data/G6z_kg1gSO8rf3_IdYv20/index.json b/_next/data/G6z_kg1gSO8rf3_IdYv20/index.json deleted file mode 100644 index 92ec865..0000000 --- a/_next/data/G6z_kg1gSO8rf3_IdYv20/index.json +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"user":{"login":"z0ffy","nick_name":"zoffy","avatar_url":"https://avatars.githubusercontent.com/u/30621502?v=4","bio":"No fear of words, no fear of years."},"posts":[{"id":14,"title":"获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-10-28T08:58:48Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]},{"id":11,"title":"vite plugin javascript obfuscator","created_at":"2024-10-25T03:29:18Z","updated_at":"2024-11-03T16:44:57Z","content":"# 适用于Vite环境的JavaScript混淆插件\r\n\r\n>仓库地址:[vite-plugin-bundle-obfuscator](https://github.com/z0ffy/vite-plugin-bundle-obfuscator)\r\n\r\n## ⭐️ 特性\r\n\r\n- [x] ⚡ 支持 Vite 项目中的 JavaScript 混淆。\r\n- [x] 🚀 多线程支持,以获得更好的性能。\r\n- [x] ⚙️ 可定制的混淆器选项,以满足您的需求。\r\n- [x] 🛡️ 自动排除 node_modules。\r\n- [x] 📦 支持 node_modules 拆分块。\r\n\r\n## ⚠️ 注意\r\n\r\n- 如果混淆选项stringArray为true。\r\n - 您的结果可能会丢失一些捆绑包(在__vite__mapDeps数组中)。\r\n - 我正在寻找一个准确的案例。\r\n- 如果打包过程中出现内存溢出。修改打包命令为:cross-env NODE_OPTIONS=--max-old-space-size=8192 VITE_CJS_IGNORE_WARNING=true vite build,其中 max-old-space-size 根据机器配置自行设置。\r\n- 在设置 node_modules 分包时,请把准确的包名前置。例如:[\"vue-router\", \"vue\"],\"vue\"可以同时匹配到 vue 以及 vue-router。\r\n\r\n## 📦 安装\r\n\r\n```bash\r\n# 使用npm\r\nnpm install vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用pnpm\r\npnpm add vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用yarn\r\nyarn add vite-plugin-bundle-obfuscator -D\r\n```\r\n\r\n## 👨‍💻 使用\r\n\r\n1. 使用您首选的软件包管理器安装插件。\r\n2. 在vite.config.js中注册插件。\r\n3. 自定义混淆器配置或使用默认选项。\r\n\r\n示例:\r\n\r\n```javascript\r\nimport vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';\r\n\r\nconst defaultObfuscatorConfig = {\r\n excludes: [],\r\n enable: true,\r\n log: true,\r\n autoExcludeNodeModules: false,\r\n threadPool: false,\r\n options: {\r\n compact: true,\r\n controlFlowFlattening: true,\r\n controlFlowFlatteningThreshold: 1,\r\n deadCodeInjection: false,\r\n debugProtection: false,\r\n debugProtectionInterval: 0,\r\n disableConsoleOutput: false,\r\n identifierNamesGenerator: 'hexadecimal',\r\n log: false,\r\n numbersToExpressions: false,\r\n renameGlobals: false,\r\n selfDefending: true,\r\n simplify: true,\r\n splitStrings: false,\r\n stringArray: false,\r\n stringArrayCallsTransform: false,\r\n stringArrayCallsTransformThreshold: 0.5,\r\n stringArrayEncoding: [],\r\n stringArrayIndexShift: true,\r\n stringArrayRotate: true,\r\n stringArrayShuffle: true,\r\n stringArrayWrappersCount: 1,\r\n stringArrayWrappersChainedCalls: true,\r\n stringArrayWrappersParametersMaxCount: 2,\r\n stringArrayWrappersType: 'variable',\r\n stringArrayThreshold: 0.75,\r\n unicodeEscapeSequence: false,\r\n }\r\n};\r\n\r\nexport default {\r\n plugins: [\r\n // vitePluginBundleObfuscator()\r\n vitePluginBundleObfuscator(defaultObfuscatorConfig)\r\n ]\r\n};\r\n```\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/11/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}]},"__N_SSG":true} \ No newline at end of file diff --git "a/_next/data/G6z_kg1gSO8rf3_IdYv20/post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" "b/_next/data/G6z_kg1gSO8rf3_IdYv20/post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" deleted file mode 100644 index 7d315a9..0000000 --- "a/_next/data/G6z_kg1gSO8rf3_IdYv20/post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"post":{"id":14,"title":"获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-10-28T08:58:48Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}},"__N_SSG":true} \ No newline at end of file diff --git "a/_next/data/G6z_kg1gSO8rf3_IdYv20/tag/\345\211\215\347\253\257.json" "b/_next/data/G6z_kg1gSO8rf3_IdYv20/tag/\345\211\215\347\253\257.json" deleted file mode 100644 index 51818f6..0000000 --- "a/_next/data/G6z_kg1gSO8rf3_IdYv20/tag/\345\211\215\347\253\257.json" +++ /dev/null @@ -1 +0,0 @@ -{"pageProps":{"posts":[{"id":14,"title":"获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-10-28T08:58:48Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]},{"id":11,"title":"vite plugin javascript obfuscator","created_at":"2024-10-25T03:29:18Z","updated_at":"2024-11-03T16:44:57Z","content":"# 适用于Vite环境的JavaScript混淆插件\r\n\r\n>仓库地址:[vite-plugin-bundle-obfuscator](https://github.com/z0ffy/vite-plugin-bundle-obfuscator)\r\n\r\n## ⭐️ 特性\r\n\r\n- [x] ⚡ 支持 Vite 项目中的 JavaScript 混淆。\r\n- [x] 🚀 多线程支持,以获得更好的性能。\r\n- [x] ⚙️ 可定制的混淆器选项,以满足您的需求。\r\n- [x] 🛡️ 自动排除 node_modules。\r\n- [x] 📦 支持 node_modules 拆分块。\r\n\r\n## ⚠️ 注意\r\n\r\n- 如果混淆选项stringArray为true。\r\n - 您的结果可能会丢失一些捆绑包(在__vite__mapDeps数组中)。\r\n - 我正在寻找一个准确的案例。\r\n- 如果打包过程中出现内存溢出。修改打包命令为:cross-env NODE_OPTIONS=--max-old-space-size=8192 VITE_CJS_IGNORE_WARNING=true vite build,其中 max-old-space-size 根据机器配置自行设置。\r\n- 在设置 node_modules 分包时,请把准确的包名前置。例如:[\"vue-router\", \"vue\"],\"vue\"可以同时匹配到 vue 以及 vue-router。\r\n\r\n## 📦 安装\r\n\r\n```bash\r\n# 使用npm\r\nnpm install vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用pnpm\r\npnpm add vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用yarn\r\nyarn add vite-plugin-bundle-obfuscator -D\r\n```\r\n\r\n## 👨‍💻 使用\r\n\r\n1. 使用您首选的软件包管理器安装插件。\r\n2. 在vite.config.js中注册插件。\r\n3. 自定义混淆器配置或使用默认选项。\r\n\r\n示例:\r\n\r\n```javascript\r\nimport vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';\r\n\r\nconst defaultObfuscatorConfig = {\r\n excludes: [],\r\n enable: true,\r\n log: true,\r\n autoExcludeNodeModules: false,\r\n threadPool: false,\r\n options: {\r\n compact: true,\r\n controlFlowFlattening: true,\r\n controlFlowFlatteningThreshold: 1,\r\n deadCodeInjection: false,\r\n debugProtection: false,\r\n debugProtectionInterval: 0,\r\n disableConsoleOutput: false,\r\n identifierNamesGenerator: 'hexadecimal',\r\n log: false,\r\n numbersToExpressions: false,\r\n renameGlobals: false,\r\n selfDefending: true,\r\n simplify: true,\r\n splitStrings: false,\r\n stringArray: false,\r\n stringArrayCallsTransform: false,\r\n stringArrayCallsTransformThreshold: 0.5,\r\n stringArrayEncoding: [],\r\n stringArrayIndexShift: true,\r\n stringArrayRotate: true,\r\n stringArrayShuffle: true,\r\n stringArrayWrappersCount: 1,\r\n stringArrayWrappersChainedCalls: true,\r\n stringArrayWrappersParametersMaxCount: 2,\r\n stringArrayWrappersType: 'variable',\r\n stringArrayThreshold: 0.75,\r\n unicodeEscapeSequence: false,\r\n }\r\n};\r\n\r\nexport default {\r\n plugins: [\r\n // vitePluginBundleObfuscator()\r\n vitePluginBundleObfuscator(defaultObfuscatorConfig)\r\n ]\r\n};\r\n```\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/11/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}],"tag":"前端"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/f2gDc2POJbmp2crHwvlk8/index.json b/_next/data/f2gDc2POJbmp2crHwvlk8/index.json new file mode 100644 index 0000000..925d462 --- /dev/null +++ b/_next/data/f2gDc2POJbmp2crHwvlk8/index.json @@ -0,0 +1 @@ +{"pageProps":{"user":{"login":"z0ffy","nick_name":"zoffy","avatar_url":"https://avatars.githubusercontent.com/u/30621502?v=4","bio":"No fear of words, no fear of years."},"posts":[{"id":14,"title":"【秒级】获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-11-04T01:30:31Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]},{"id":11,"title":"vite plugin javascript obfuscator","created_at":"2024-10-25T03:29:18Z","updated_at":"2024-11-03T16:44:57Z","content":"# 适用于Vite环境的JavaScript混淆插件\r\n\r\n>仓库地址:[vite-plugin-bundle-obfuscator](https://github.com/z0ffy/vite-plugin-bundle-obfuscator)\r\n\r\n## ⭐️ 特性\r\n\r\n- [x] ⚡ 支持 Vite 项目中的 JavaScript 混淆。\r\n- [x] 🚀 多线程支持,以获得更好的性能。\r\n- [x] ⚙️ 可定制的混淆器选项,以满足您的需求。\r\n- [x] 🛡️ 自动排除 node_modules。\r\n- [x] 📦 支持 node_modules 拆分块。\r\n\r\n## ⚠️ 注意\r\n\r\n- 如果混淆选项stringArray为true。\r\n - 您的结果可能会丢失一些捆绑包(在__vite__mapDeps数组中)。\r\n - 我正在寻找一个准确的案例。\r\n- 如果打包过程中出现内存溢出。修改打包命令为:cross-env NODE_OPTIONS=--max-old-space-size=8192 VITE_CJS_IGNORE_WARNING=true vite build,其中 max-old-space-size 根据机器配置自行设置。\r\n- 在设置 node_modules 分包时,请把准确的包名前置。例如:[\"vue-router\", \"vue\"],\"vue\"可以同时匹配到 vue 以及 vue-router。\r\n\r\n## 📦 安装\r\n\r\n```bash\r\n# 使用npm\r\nnpm install vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用pnpm\r\npnpm add vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用yarn\r\nyarn add vite-plugin-bundle-obfuscator -D\r\n```\r\n\r\n## 👨‍💻 使用\r\n\r\n1. 使用您首选的软件包管理器安装插件。\r\n2. 在vite.config.js中注册插件。\r\n3. 自定义混淆器配置或使用默认选项。\r\n\r\n示例:\r\n\r\n```javascript\r\nimport vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';\r\n\r\nconst defaultObfuscatorConfig = {\r\n excludes: [],\r\n enable: true,\r\n log: true,\r\n autoExcludeNodeModules: false,\r\n threadPool: false,\r\n options: {\r\n compact: true,\r\n controlFlowFlattening: true,\r\n controlFlowFlatteningThreshold: 1,\r\n deadCodeInjection: false,\r\n debugProtection: false,\r\n debugProtectionInterval: 0,\r\n disableConsoleOutput: false,\r\n identifierNamesGenerator: 'hexadecimal',\r\n log: false,\r\n numbersToExpressions: false,\r\n renameGlobals: false,\r\n selfDefending: true,\r\n simplify: true,\r\n splitStrings: false,\r\n stringArray: false,\r\n stringArrayCallsTransform: false,\r\n stringArrayCallsTransformThreshold: 0.5,\r\n stringArrayEncoding: [],\r\n stringArrayIndexShift: true,\r\n stringArrayRotate: true,\r\n stringArrayShuffle: true,\r\n stringArrayWrappersCount: 1,\r\n stringArrayWrappersChainedCalls: true,\r\n stringArrayWrappersParametersMaxCount: 2,\r\n stringArrayWrappersType: 'variable',\r\n stringArrayThreshold: 0.75,\r\n unicodeEscapeSequence: false,\r\n }\r\n};\r\n\r\nexport default {\r\n plugins: [\r\n // vitePluginBundleObfuscator()\r\n vitePluginBundleObfuscator(defaultObfuscatorConfig)\r\n ]\r\n};\r\n```\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/11/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}]},"__N_SSG":true} \ No newline at end of file diff --git a/_next/data/G6z_kg1gSO8rf3_IdYv20/post/vite plugin javascript obfuscator.json b/_next/data/f2gDc2POJbmp2crHwvlk8/post/vite plugin javascript obfuscator.json similarity index 100% rename from _next/data/G6z_kg1gSO8rf3_IdYv20/post/vite plugin javascript obfuscator.json rename to _next/data/f2gDc2POJbmp2crHwvlk8/post/vite plugin javascript obfuscator.json diff --git "a/_next/data/f2gDc2POJbmp2crHwvlk8/post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" "b/_next/data/f2gDc2POJbmp2crHwvlk8/post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" new file mode 100644 index 0000000..e141f4b --- /dev/null +++ "b/_next/data/f2gDc2POJbmp2crHwvlk8/post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.json" @@ -0,0 +1 @@ +{"pageProps":{"post":{"id":14,"title":"【秒级】获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-11-04T01:30:31Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}},"__N_SSG":true} \ No newline at end of file diff --git "a/_next/data/f2gDc2POJbmp2crHwvlk8/tag/\345\211\215\347\253\257.json" "b/_next/data/f2gDc2POJbmp2crHwvlk8/tag/\345\211\215\347\253\257.json" new file mode 100644 index 0000000..2afaea9 --- /dev/null +++ "b/_next/data/f2gDc2POJbmp2crHwvlk8/tag/\345\211\215\347\253\257.json" @@ -0,0 +1 @@ +{"pageProps":{"posts":[{"id":14,"title":"【秒级】获取视频时刻图","created_at":"2024-10-28T08:58:43Z","updated_at":"2024-11-04T01:30:31Z","content":"> 在获取视频任意时刻的截图时,通常大多数的做法都是\r\n> - 通过视频播放,canvas绘制\r\n> - 借助ffmpeg\r\n> \r\n> 除此之外,还有另外一种方式:URI Queries\r\n\r\n### 使用方式\r\n\r\n只需要在url后面带上#t=xx(秒)即可,如果是本地文件的话,上传之后需要拿到blobUrl\r\n\r\n```html\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n```\r\n\r\n到此就可以渲染出指定时刻的图片。就这?是的,没错,就这。\r\n\r\n### 优点\r\n\r\n- 快\r\n- 简单\r\n\r\n### 缺点\r\n\r\n- 每一张图实际是一个video,会导致资源重复请求,视频文件过大,图片过多,网络压力较大。\r\n- 请求网络地址进而转换成本地地址,虽然可以解决并发导致的网络压力,但是如果文件过大,首次加载依旧需要消耗比较长的时间。\r\n\r\n### 总结\r\n\r\n具体使用什么方式,还需根据业务需求决定。\r\n\r\n> 参考文档:https://www.w3.org/TR/media-frags/#media-fragment-syntax\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/14/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]},{"id":11,"title":"vite plugin javascript obfuscator","created_at":"2024-10-25T03:29:18Z","updated_at":"2024-11-03T16:44:57Z","content":"# 适用于Vite环境的JavaScript混淆插件\r\n\r\n>仓库地址:[vite-plugin-bundle-obfuscator](https://github.com/z0ffy/vite-plugin-bundle-obfuscator)\r\n\r\n## ⭐️ 特性\r\n\r\n- [x] ⚡ 支持 Vite 项目中的 JavaScript 混淆。\r\n- [x] 🚀 多线程支持,以获得更好的性能。\r\n- [x] ⚙️ 可定制的混淆器选项,以满足您的需求。\r\n- [x] 🛡️ 自动排除 node_modules。\r\n- [x] 📦 支持 node_modules 拆分块。\r\n\r\n## ⚠️ 注意\r\n\r\n- 如果混淆选项stringArray为true。\r\n - 您的结果可能会丢失一些捆绑包(在__vite__mapDeps数组中)。\r\n - 我正在寻找一个准确的案例。\r\n- 如果打包过程中出现内存溢出。修改打包命令为:cross-env NODE_OPTIONS=--max-old-space-size=8192 VITE_CJS_IGNORE_WARNING=true vite build,其中 max-old-space-size 根据机器配置自行设置。\r\n- 在设置 node_modules 分包时,请把准确的包名前置。例如:[\"vue-router\", \"vue\"],\"vue\"可以同时匹配到 vue 以及 vue-router。\r\n\r\n## 📦 安装\r\n\r\n```bash\r\n# 使用npm\r\nnpm install vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用pnpm\r\npnpm add vite-plugin-bundle-obfuscator -D\r\n\r\n# 使用yarn\r\nyarn add vite-plugin-bundle-obfuscator -D\r\n```\r\n\r\n## 👨‍💻 使用\r\n\r\n1. 使用您首选的软件包管理器安装插件。\r\n2. 在vite.config.js中注册插件。\r\n3. 自定义混淆器配置或使用默认选项。\r\n\r\n示例:\r\n\r\n```javascript\r\nimport vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';\r\n\r\nconst defaultObfuscatorConfig = {\r\n excludes: [],\r\n enable: true,\r\n log: true,\r\n autoExcludeNodeModules: false,\r\n threadPool: false,\r\n options: {\r\n compact: true,\r\n controlFlowFlattening: true,\r\n controlFlowFlatteningThreshold: 1,\r\n deadCodeInjection: false,\r\n debugProtection: false,\r\n debugProtectionInterval: 0,\r\n disableConsoleOutput: false,\r\n identifierNamesGenerator: 'hexadecimal',\r\n log: false,\r\n numbersToExpressions: false,\r\n renameGlobals: false,\r\n selfDefending: true,\r\n simplify: true,\r\n splitStrings: false,\r\n stringArray: false,\r\n stringArrayCallsTransform: false,\r\n stringArrayCallsTransformThreshold: 0.5,\r\n stringArrayEncoding: [],\r\n stringArrayIndexShift: true,\r\n stringArrayRotate: true,\r\n stringArrayShuffle: true,\r\n stringArrayWrappersCount: 1,\r\n stringArrayWrappersChainedCalls: true,\r\n stringArrayWrappersParametersMaxCount: 2,\r\n stringArrayWrappersType: 'variable',\r\n stringArrayThreshold: 0.75,\r\n unicodeEscapeSequence: false,\r\n }\r\n};\r\n\r\nexport default {\r\n plugins: [\r\n // vitePluginBundleObfuscator()\r\n vitePluginBundleObfuscator(defaultObfuscatorConfig)\r\n ]\r\n};\r\n```\r\n","author":"z0ffy","reactions":{"url":"https://api.github.com/repos/z0ffy/z0ffy.github.io/issues/11/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"labels":["published","前端"]}],"tag":"前端"},"__N_SSG":true} \ No newline at end of file diff --git a/_next/static/G6z_kg1gSO8rf3_IdYv20/_buildManifest.js b/_next/static/f2gDc2POJbmp2crHwvlk8/_buildManifest.js similarity index 100% rename from _next/static/G6z_kg1gSO8rf3_IdYv20/_buildManifest.js rename to _next/static/f2gDc2POJbmp2crHwvlk8/_buildManifest.js diff --git a/_next/static/G6z_kg1gSO8rf3_IdYv20/_ssgManifest.js b/_next/static/f2gDc2POJbmp2crHwvlk8/_ssgManifest.js similarity index 100% rename from _next/static/G6z_kg1gSO8rf3_IdYv20/_ssgManifest.js rename to _next/static/f2gDc2POJbmp2crHwvlk8/_ssgManifest.js diff --git a/feed.xml b/feed.xml index 0d21693..8906c58 100644 --- a/feed.xml +++ b/feed.xml @@ -4,16 +4,16 @@ https://zoffy.me RSS for Node - Sun, 03 Nov 2024 16:45:40 GMT + Mon, 04 Nov 2024 01:31:19 GMT - Sun, 03 Nov 2024 16:45:40 GMT + Mon, 04 Nov 2024 01:31:19 GMT - <![CDATA[获取视频时刻图]]> + <![CDATA[【秒级】获取视频时刻图]]> - https://zoffy.me/post/获取视频时刻图 - https://zoffy.me/post/获取视频时刻图 + https://zoffy.me/post/【秒级】获取视频时刻图 + https://zoffy.me/post/【秒级】获取视频时刻图 Mon, 28 Oct 2024 08:58:43 GMT diff --git a/index.html b/index.html index 5da7a3e..4c36ba2 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -z0ffy's website
avatar

No fear of words, no fear of years.


©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file +z0ffy's website
avatar

No fear of words, no fear of years.


©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file diff --git a/post/vite plugin javascript obfuscator.html b/post/vite plugin javascript obfuscator.html index 1ecb6bf..28c3841 100644 --- a/post/vite plugin javascript obfuscator.html +++ b/post/vite plugin javascript obfuscator.html @@ -1,4 +1,4 @@ -z0ffy's website
vite plugin javascript obfuscator
10月25日11月3日

适用于Vite环境的JavaScript混淆插件

+z0ffy's website
vite plugin javascript obfuscator
10月25日11月3日

适用于Vite环境的JavaScript混淆插件

仓库地址:vite-plugin-bundle-obfuscator

@@ -81,4 +81,4 @@

👨‍ 42 // vitePluginBundleObfuscator() 43 vitePluginBundleObfuscator(defaultObfuscatorConfig) 44 ] -45};


cd ..
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file +45};
cd ..
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file diff --git "a/post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" "b/post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" similarity index 87% rename from "post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" rename to "post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" index 03be762..471de07 100644 --- "a/post/\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" +++ "b/post/\343\200\220\347\247\222\347\272\247\343\200\221\350\216\267\345\217\226\350\247\206\351\242\221\346\227\266\345\210\273\345\233\276.html" @@ -1,4 +1,4 @@ -z0ffy's website
获取视频时刻图
10月28日10月28日

+z0ffy's website
【秒级】获取视频时刻图
10月28日11月4日

在获取视频任意时刻的截图时,通常大多数的做法都是


cd ..
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file +

cd ..
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file diff --git "a/tag/\345\211\215\347\253\257.html" "b/tag/\345\211\215\347\253\257.html" index 887e8eb..7c8f723 100644 --- "a/tag/\345\211\215\347\253\257.html" +++ "b/tag/\345\211\215\347\253\257.html" @@ -1 +1 @@ -z0ffy's website
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file +z0ffy's website
©2024All rights reserved by z0ffyPowered by Gossip.
\ No newline at end of file