diff --git a/frontend_nuxt/.env.dev.example b/frontend_nuxt/.env.dev.example index bb0ee2635..06b37f539 100644 --- a/frontend_nuxt/.env.dev.example +++ b/frontend_nuxt/.env.dev.example @@ -10,3 +10,8 @@ NUXT_PUBLIC_GITHUB_CLIENT_ID=Ov23liOlrZnPKRF7s7NN NUXT_PUBLIC_DISCORD_CLIENT_ID=1394985417044000779 NUXT_PUBLIC_TWITTER_CLIENT_ID=ZTRTU05KSk9KTTJrTTdrVC1tc1E6MTpjaQ NUXT_PUBLIC_TELEGRAM_BOT_ID=8450237135 + +# 视频压缩配置 - FFmpeg.wasm 专用 +# 支持 Chrome 60+ 和 Safari 11.1+ +NUXT_PUBLIC_VIDEO_MAX_SIZE=52428800 # 20MB (字节) +NUXT_PUBLIC_VIDEO_TARGET_SIZE=20971520 # 5MB (字节) \ No newline at end of file diff --git a/frontend_nuxt/.env.example b/frontend_nuxt/.env.example index 2990fd052..022bd93fe 100644 --- a/frontend_nuxt/.env.example +++ b/frontend_nuxt/.env.example @@ -20,5 +20,5 @@ NUXT_PUBLIC_TELEGRAM_BOT_ID=8450237135 # 视频压缩配置 - FFmpeg.wasm 专用 # 支持 Chrome 60+ 和 Safari 11.1+ -NUXT_PUBLIC_VIDEO_MAX_SIZE=52428800 # 50MB (字节) -NUXT_PUBLIC_VIDEO_TARGET_SIZE=20971520 # 20MB (字节) \ No newline at end of file +NUXT_PUBLIC_VIDEO_MAX_SIZE=52428800 # 20MB (字节) +NUXT_PUBLIC_VIDEO_TARGET_SIZE=20971520 # 5MB (字节) \ No newline at end of file diff --git a/frontend_nuxt/.env.staging.example b/frontend_nuxt/.env.staging.example index 0cc8ef140..a38b18772 100644 --- a/frontend_nuxt/.env.staging.example +++ b/frontend_nuxt/.env.staging.example @@ -15,3 +15,8 @@ NUXT_PUBLIC_GITHUB_CLIENT_ID=Ov23liVkO1NPAX5JyWxJ NUXT_PUBLIC_DISCORD_CLIENT_ID=1394985417044000779 NUXT_PUBLIC_TWITTER_CLIENT_ID=ZTRTU05KSk9KTTJrTTdrVC1tc1E6MTpjaQ NUXT_PUBLIC_TELEGRAM_BOT_ID=8450237135 + +# 视频压缩配置 - FFmpeg.wasm 专用 +# 支持 Chrome 60+ 和 Safari 11.1+ +NUXT_PUBLIC_VIDEO_MAX_SIZE=52428800 # 20MB (字节) +NUXT_PUBLIC_VIDEO_TARGET_SIZE=20971520 # 5MB (字节) \ No newline at end of file diff --git a/frontend_nuxt/nuxt.config.ts b/frontend_nuxt/nuxt.config.ts index dad43963c..a778d75b2 100644 --- a/frontend_nuxt/nuxt.config.ts +++ b/frontend_nuxt/nuxt.config.ts @@ -6,12 +6,7 @@ const appPkg = require('./package.json') as { dependencies?: Record devDependencies?: Record } -const ffmpegVersion = ( - process.env.NUXT_PUBLIC_FFMPEG_VERSION || - appPkg.dependencies?.['@ffmpeg/ffmpeg'] || - appPkg.devDependencies?.['@ffmpeg/ffmpeg'] || - '0.12.15' -).replace(/^[^\d]*/, '') + export default defineNuxtConfig({ devServer: { host: '0.0.0.0', @@ -29,7 +24,6 @@ export default defineNuxtConfig({ discordClientId: process.env.NUXT_PUBLIC_DISCORD_CLIENT_ID || '', twitterClientId: process.env.NUXT_PUBLIC_TWITTER_CLIENT_ID || '', telegramBotId: process.env.NUXT_PUBLIC_TELEGRAM_BOT_ID || '', - ffmpegVersion, }, }, css: [ diff --git a/frontend_nuxt/plugins/ffmpeg.client.ts b/frontend_nuxt/plugins/ffmpeg.client.ts index 562a93aa2..02cbb6add 100644 --- a/frontend_nuxt/plugins/ffmpeg.client.ts +++ b/frontend_nuxt/plugins/ffmpeg.client.ts @@ -5,25 +5,12 @@ import { defineNuxtPlugin, useRuntimeConfig } from 'nuxt/app' let ffmpeg: FFmpeg | null = null export default defineNuxtPlugin(() => { - const { - public: { ffmpegVersion }, - } = useRuntimeConfig() - return { provide: { ffmpeg: async () => { if (ffmpeg) return ffmpeg - ffmpeg = new FFmpeg() - - const mtOk = - typeof crossOriginIsolated !== 'undefined' && - crossOriginIsolated && - typeof SharedArrayBuffer !== 'undefined' - - const pkg = mtOk ? '@ffmpeg/core-mt' : '@ffmpeg/core-st' - const base = `https://unpkg.com/${pkg}@${ffmpegVersion}/dist/umd` - + const base = '~/assets/js/ffmpeg/core-mt/dist/umd' await ffmpeg.load({ coreURL: await toBlobURL(`${base}/ffmpeg-core.js`, 'text/javascript'), wasmURL: await toBlobURL(`${base}/ffmpeg-core.wasm`, 'application/wasm'),