feat(rustdesk): 优化视频编码协商和添加公共服务器支持

- 调整视频编码优先级为 H264 > H265 > VP8 > VP9,优先使用硬件编码
- 对接 RustDesk 客户端质量预设 (Low/Balanced/Best) 到 BitratePreset
- 添加 secrets.toml 编译时读取机制,支持配置公共服务器
- 默认公共服务器: rustdesk.mofeng.run:21116
- 前端 ID 服务器输入框添加问号提示,显示公共服务器信息
- 用户留空时自动使用公共服务器
This commit is contained in:
mofeng-git
2026-01-02 17:22:34 +08:00
parent be4de59f3b
commit 28ecf951df
29 changed files with 776 additions and 316 deletions

View File

@@ -44,6 +44,12 @@ import {
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog'
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from '@/components/ui/tooltip'
import {
Monitor,
Keyboard,
@@ -73,6 +79,7 @@ import {
ExternalLink,
Copy,
ScreenShare,
CircleHelp,
} from 'lucide-vue-next'
const { t, locale } = useI18n()
@@ -1825,7 +1832,28 @@ onMounted(async () => {
v-model="rustdeskLocalConfig.rendezvous_server"
:placeholder="t('extensions.rustdesk.rendezvousServerPlaceholder')"
/>
<p class="text-xs text-muted-foreground">{{ t('extensions.rustdesk.rendezvousServerHint') }}</p>
<div class="flex items-center gap-1">
<p class="text-xs text-muted-foreground">{{ t('extensions.rustdesk.rendezvousServerHint') }}</p>
<TooltipProvider v-if="rustdeskStatus?.public_server">
<Tooltip>
<TooltipTrigger as-child>
<CircleHelp class="h-3.5 w-3.5 text-muted-foreground cursor-help" />
</TooltipTrigger>
<TooltipContent side="right" class="max-w-xs">
<div class="space-y-1.5 text-xs">
<p class="font-medium">{{ t('extensions.rustdesk.publicServerInfo') }}</p>
<div class="space-y-1">
<p><span class="text-muted-foreground">{{ t('extensions.rustdesk.publicServerAddress') }}:</span> {{ rustdeskStatus.public_server.server }}</p>
<p><span class="text-muted-foreground">{{ t('extensions.rustdesk.publicServerKey') }}:</span> <code class="text-[10px] break-all">{{ rustdeskStatus.public_server.public_key }}</code></p>
</div>
</div>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div>
<p v-if="rustdeskStatus?.config?.using_public_server" class="text-xs text-blue-500">
{{ t('extensions.rustdesk.usingPublicServer') }}
</p>
</div>
</div>
<div class="grid grid-cols-4 items-center gap-4">