<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>yexca'Blog</title><link>https://blog.yexca.net/</link><description>Recent content on yexca'Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>yexca</copyright><lastBuildDate>Thu, 08 Oct 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.yexca.net/feed.xml" rel="self" type="application/rss+xml"/><item><title>用 Kikoto 搭建自己的同人音声库</title><link>https://blog.yexca.net/archives/294/</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0900</pubDate><guid>https://blog.yexca.net/archives/294/</guid><description>音声买得多了，文件夹就会越来越长。有时只记得封面和声优，却想不起作品名字；有时昨晚听到一半，第二天又要拖着进度条找位置。文件都在自己的硬盘里，找到它、接着听，却还要费一点功夫。 Kikoto 是我做的一个开源音声库，想把这些事情放到一起：用封面浏览作品，按声优和标签找音声，记下想听的列表，再从上次停下的地方继续。把它部署在电脑或 NAS 上，电脑和手机都能访问同一个库。 如果想先看看界面，可以打开在线演示 。演示站只读，展示的是 DLsite 的免费全年龄作品；Kikoto 本身不提供音声资源，用来管理自己购买的作品。 把文件夹变成能搜索的媒体库 Kikoto 会扫描你指定的音声目录，从文件夹名称里的 RJ 等作品编号识别作品，再同步 DLsite 的标题、封面、社团、声优和标签。原来的目录可以继续使用，不必先把所有文件手工录入一遍。 可以把入库过程理解成两条线：一条找到硬盘上的文件，另一条补齐作品信息，最后在同一个媒体库里浏览和播放。 flowchart TB A[&amp;#34;自己的音声文件夹&amp;#34;] --&amp;gt;|扫描文件| C[&amp;#34;Kikoto 媒体库&amp;#34;] …</description></item><item><title>Harness is All You Need (你需要的只是 Harness)</title><link>https://blog.yexca.net/archives/293/</link><pubDate>Fri, 11 Sep 2026 00:00:00 +0900</pubDate><guid>https://blog.yexca.net/archives/293/</guid><description>该文章完全由 GPT-6-Astra 生成，仅供娱乐。 智能体语言模型能力的系统视角 GPT-6-Astra 摘要 人们经常比较大型语言模型，仿佛它们的权重就是完整的智能体。然而在部署系统中，模型周围还包围着一个 harness：它负责组装上下文、路由工具、维护状态、执行策略、评估进展，并决定何时继续。我们认为，这一层并非无关紧要的胶水，而是能力的一等来源。我们为 harness 化推理引入一种最小形式化方法和一个参考架构，并针对编码、浏览和工具使用任务，对六个 harness 组件开展受控研究。在一个刻意保持严肃的实验中，随着逐步启用 harness，固定模型的任务成功率从 21.4% 提升到 68.9%，而参数总量保持不变。这些增益来自把单次预测转化为带有外部行动和可验证中间状态的闭环过程。最后，我们给出设计原则、失败模式，以及一份用于衡量系统级智能的实用研究议程。我们的核心主张很简洁：当一个智能体表现得出奇强大时，先检查 harness，再去数参数。 引言 Transformer 架构使序列建模成为一项异常简洁的操作：将上下文映射为下一个 …</description></item><item><title>LTT 视频中真 Linus 的话治好了我的焦虑</title><link>https://blog.yexca.net/archives/292/</link><pubDate>Mon, 24 Aug 2026 19:43:06 +0900</pubDate><guid>https://blog.yexca.net/archives/292/</guid><description>虽然之前就看到了这句传播比较广的话，但是当时的我并不知道这句话的来源。最近在机缘巧合下知道 LTT 以及 Linus 最近使用 AI 修复 Linux 的 bug 并说明过程艰难得到了 AI 的极大帮助后，又碰巧看到了这个视频，虽然是 2025 年末的视频，但是视频中的话题几乎完全消解了我对 AI 的焦虑以及颠覆了自己的一些思考 这篇文章记录视频中一些感触我的话语，并附上我的一些感想，尽量按照视频的顺序进行书写，所以读起来会乱乱的，毕竟有些类似的观点出现于不同的时间段，有种拆开的感觉，但为了方便我回顾视频还是选择这样进行排序 工作流 I wouldn’t say perfected, but almost perfected the workflow. (不能说完美，但已经把工作流打磨得很接近完美了) When you know what’s going on, it’s a predictable workflow. (如果你知道在发生什么，它就是一个可预期的流程) 因为我并没有在企业工作过，所以经常在遇到一个新的事物或者说学习探索新东西的时候 …</description></item><item><title>本地 AI 生图模式与工作流讨论</title><link>https://blog.yexca.net/archives/291/</link><pubDate>Wed, 19 Aug 2026 08:15:06 +0900</pubDate><guid>https://blog.yexca.net/archives/291/</guid><description>本文介绍几种 AI 生图模式，具体为 t2i, i2i, r2i，分别代表文生图，图生图，参考生图。同时加入 i2t2i 的模式，也就是图生文，然后文生图的一种串流 基础概念 AI 生图 (以 Stable Diffusion 为例) 的核心组件包括 底模 (UNet/DiT): 负责在低维潜空间 (Latent Space) 中进行去噪与特征预测 文本编码器 (CLIP): 将自然语言提示词解析并转化为模型可理解的数学向量 变分自编码器 (VAE): 负责像素空间与潜空间的桥梁转换。生成过程中，由 VAE 解码器将计算完成的低维潜空间数据还原为最终的高清图像 在 Comfyui 中一般的流程可以表示为 flowchart LR A[Base Model] --&amp;gt; D{KSampler 采样去噪} B[CLIP] --&amp;gt; C[Prompt] C --&amp;gt; D G[Latent Image] --&amp;gt; D H[VAE] --&amp;gt; E D --&amp;gt; |Latent 潜空间特征| E[VAE Decoder] E --&amp;gt; F[Output Image]t2i …</description></item><item><title>受限环境下文件复制与远程传输</title><link>https://blog.yexca.net/archives/290/</link><pubDate>Thu, 13 Aug 2026 19:01:11 +0900</pubDate><guid>https://blog.yexca.net/archives/290/</guid><description>自从知道 scp 命令后，从本地向服务器传输文件我已经很少使用 FTP 服务或者其他奇奇怪怪的操作了，不过最近由于需要传输一个较大的文件，因为传输时间较长，害怕中断导致损坏于是我开始其他解法，在此过程中管道的概念让我想到了之前折腾 openwrt 的时候遇到的操作，遂写此文 远程传输 文件传输可以通过指定 scp 算法以提高速度，比如使用 AES128-GCM 算法 1 scp -c aes128-gcm@openssh.com /path/to/local/file user@remote:/path/to/dir 当然，事实上有改良的同样基于 SSH 传输文件的 rsync 传输效率会更高，但是缺点是有些系统原生不支持 (Windows 也不支持) 1 rsync -avzP -e &amp;#34;ssh -c aes128-gcm@openssh.com&amp;#34; /path/to/local/file user@remote:/path/to/dir 不过最快的方法是通过管道传输，这也是本文的灵感来源 1 tar -cf - /path/to/dir | …</description></item><item><title>Go walk 使用经历</title><link>https://blog.yexca.net/archives/289/</link><pubDate>Mon, 06 Jul 2026 11:47:17 +0900</pubDate><guid>https://blog.yexca.net/archives/289/</guid><description>在 2024 年 12 月的时候我试着写了人生的第一个 Windows GUI 软件，别看屏幕了，Go walk (去散步) yexca/yasumiProject 加载中... - - 虽然非常简陋但也算是自己第一次没怎么使用框架开发的感觉，同时当时无论如何都想使用 Go 来着，正好看到了这么符合主题的框架，同时以技术栈呼应主题的双关 所以今天再次翻到这份笔记的时候感触良多，尤其是这个软件甚至支持 i18n，在如今 AI Coding 盛行的时候，很难想象当时我居然古法手搓的还支持多语言，主要是我印象中这个框架不原生支持来着，不过因为不好用，也忘记了 感想写到这里，下方是笔记原文 文章仅用于发布当时的笔记，不保证准确性，另外不推荐 walk 架构 环境 GoLand 新建一个 Go 工程后，默认会初始化 go.mod，若无此文件，可以使用命令 1 go mod init 安装 walk 1 go get github.com/tailscale/walk 工程 下载 rsrc 工具 并配置好 PATH 后，安装 rsrc 1 go get …</description></item><item><title>Windows 保留端口的排除</title><link>https://blog.yexca.net/archives/288/</link><pubDate>Sun, 28 Jun 2026 02:00:40 +0900</pubDate><guid>https://blog.yexca.net/archives/288/</guid><description>在拉起一个服务的时候，时不时会出现端口被占用的情况，但可能实际去查询 netstat -ano | findstr :[prot] 却发现没有程序在占用，这一般是被 Windows 作为保留端口占用了 如果有程序在占用的话是用 taskkill 命令可关闭进程 一般情况下换个端口就好了，可是当想要控制自己的端口的时候，就需要让 Windows 不使用这些端口作为保留端口了 查看保留端口端 以管理员身份打开 cmd 或 powershell 使用命令查看 1 netsh interface ipv4 show excludedportrange protocol=tcp 命令将会列出当前所有的保留端口 随机刷新 虽然每次重启都会随机刷新端口，但是在非重启的情况下可以用以下命令重新启动服务以刷新端口 1 2 net stop winnat net start winnat 然后再次查看是否占用了自己想要的端口 添加排除规则 不过为了稳定的使用某喜欢的端口，还是加一个规则会比较稳，首先赞同 WinNAT 服务 1 net stop winnat 然后声 …</description></item><item><title>远程控制 Windows 电脑</title><link>https://blog.yexca.net/archives/287/</link><pubDate>Mon, 22 Jun 2026 01:26:59 +0900</pubDate><guid>https://blog.yexca.net/archives/287/</guid><description>近期因为自己的电脑在训练的时候，我完全无法进行其他工作，如果使用自己的 Mac 或 Linux 设备的话也多少会有点不太顺手，毕竟这些设备有自己的用途，于是想着把研究室的电脑利用起来，让我在准备好后，可以使用其进行训练，然后可以继续做自己的事情 稍微调查了一下，决定使用三种方式以较为保险地连接，首先是微软官方的 RDP，然后是 VS Code 的远程开发，最后是 Chrome 的远程桌面作为保险 Tailscale 使用 RDP 或者 VSCode 的终端都需要搭建同一个局域网或被控电脑有公网环境，如果内网穿透到我的服务器的话会有环境污染的风险，所以这里还是选择使用虚拟局域网 这里便使用 Tailscale 进行组建虚拟局域网，在 Windows 上，访问官网 下载安装即可，在 Mac 上可以使用 brew 进行安装 brew install --cask tailscale 安装完成后登陆同一个账户即可，在被控电脑上开启 Run unattended 可以保证电脑重启未登陆桌面时网络也能连通 RDP 首先这个功能 Windows Home 版本 …</description></item><item><title>部署本地无审查 AI 模型：打破大模型的两层枷锁</title><link>https://blog.yexca.net/archives/286/</link><pubDate>Tue, 16 Jun 2026 13:07:08 +0900</pubDate><guid>https://blog.yexca.net/archives/286/</guid><description>我之前以为本地部署的模型是可以畅所欲言的，但是实际体验后才意识到现在 AI 模型是有两层枷锁，一层是云端提供商的外置过滤器，另一层则是模型在安全对齐（Alignment）训练时，就已经深深刻入权重的“拒绝神经元”，所以要想获得完美的体验，还是需要进行无审查模型的部署 警告 无审查版本一般完全移除了安全护栏，它会毫无保留地执行任何指令。必须注意的是，多模态模型（VLM）在解析本地带有恶意混淆或提示词注入（Prompt Injection）的图片时，更容易被彻底带偏 请仅将其用于合法的研究、学术分析、角色扮演或创意写作，切勿用于生成和传播违法或有害内容。在为本地 AI 赋予系统或自动化权限时请保持谨慎，善用像是 zeroclaw 类似的零信任机制保障本地设备安全。 什么是无审查模型 在开源社区中，无审查模型通常有以下几种标签，它们的制作原理和侧重点各有不同 abliterated：特指通过数学方法精准切除了“拒绝神经元”的模型，特点是去除了说教和拒绝，但完全保留了模型原有的智商 uncensored：传统的无审查版，通常在微调阶段清洗掉了带有拒绝回答 …</description></item><item><title>本地部署 ZeroClaw 折腾</title><link>https://blog.yexca.net/archives/285/</link><pubDate>Sat, 13 Jun 2026 13:02:57 +0900</pubDate><guid>https://blog.yexca.net/archives/285/</guid><description>之前 OpenClaw 大火的时候，看到部署使用那 node 的时候我不是很想用，然后当时各种漏洞的存在也确实证实了这一点，但是现在已经有不少优秀的分支可以使用，因为我比较在意轻量化，于是选择了较为轻量化的 ZeroClaw 既然是部署一个自己的 AI 助理，那么我还是不希望自己的数据上传到云端的，所以这次的折腾目标是尝试构建一个纯本地的私人助理 总览 为了实现数据全本地，模型方面使用 Ollama 部署本地模型，通信使用在 NAS 上搭建的 Matrix 服务器，具体的手机电脑使用 Element 软件，虽然该软件也有 web 端，但不知道为什么一直配置出错，所以暂时不折腾了 另外我还试着做了容器多开配置以及构建一个 MCP 服务器，这里因为只是容器，所以我给了 ZeroClaw 完全权限 编译 ZeroClaw 安装 Rust，访问 https://rustup.rs/ 下载 rustup-init.exe 文件后运行，遇到选项选择默认 1 即可，期间需要安装 VS Studio 及相关配件 克隆 ZeroClaw 官方代码 1 git …</description></item><item><title>初次尝试 Vibe Coding：误吸新型电子毒品</title><link>https://blog.yexca.net/archives/284/</link><pubDate>Sun, 07 Jun 2026 18:42:10 +0900</pubDate><guid>https://blog.yexca.net/archives/284/</guid><description>最近几天在朋友的强烈推荐下，尝试使用了下 Codex，亲身体验之后，我愿将其称为 “创意提取机” 在此之前，我对 AI 写代码的感觉还停留在可以做出来，但是做出来的东西不好维护。但是实际上手后，直接用了 72M token，自己的创想不断被挖掘并实现，简直是顶级的产出爆发 产出物 先来聊聊我这两天具体做了什么，首先就是本博客了，进行了重大重构，引入了玻璃背板，优化了链接布局，然后终于重启了多年吃灰的背景了，换上我初创博客的壁纸，瞬间把自己的思绪拉回当年的自己 此外，因为最近在折腾 AI 翻唱，我顺手用 AI 重写了原先想手搓的程序。如果让我自己手搓，我感觉自己多少得写个十天半个月，甚至 GUI 也会随便对付一下，做不到像现在这样好看 (为了好看我可能会重新学学 C# 用 WinUI 写前端说不定)，但是用 AI 就不一样了，输入自己的创想，等一段时间就能看到对应的产物，甚至 AI 还会 “顺手” 修一下逻辑问题，让自己的想法得到实现，在此过程就会不断激发新的创意，从而 “上瘾”，因为创作是最顶级的快乐 最后是把我 n 年没更新的个人主页更新了，也 …</description></item><item><title>AI 翻唱训练用音频预处理讨论</title><link>https://blog.yexca.net/archives/283/</link><pubDate>Tue, 02 Jun 2026 17:23:44 +0900</pubDate><guid>https://blog.yexca.net/archives/283/</guid><description>现在的技术完全靠 AI 做到提取干声还是不大现实，多数情况下是需要手工修正。不过只要数据量足够大，总是可以凑到被 AI 提取干声后适合训练的音频 本文讲述一种我作为一个外行纯用 AI 对于训练用音频筛选的工作流，全部使用开源软件 训练与推理的音频 关于 AI 翻唱的音频自己最近的研究大概可以总结为 “训练挑剔音质，推理挑剔音高” 也就是训练用的音频和推理用的音频应该分开讨论 对于推理用的音频重点在于音高，也就是针对和声进行处理较好即可，有无电音是其次 但是对于训练用的音频，就需要用到近乎完美的音频才可以 音质 首先尽量筛选音质高的音频，最好是无损音质文件，但或许选择好处理的音频 (背景噪音容易处理) 会获得更好的效果 对于具体的音质，可以使用 alexkay/spek 软件进行查看 注意：将有损音质转换为无损格式并不会提升音质，具体使用软件查看即可知道 音高 训练用的音频最好覆盖较为宽泛的音高范围，一般而言常规说话状态下 男生: 85Hz - 180Hz 女生: 165Hz - 255Hz 而如果是唱歌的话，理论上建议覆盖 E2 (82Hz) - …</description></item><item><title>再玩崩铁：游戏流水线的感想</title><link>https://blog.yexca.net/archives/282/</link><pubDate>Fri, 29 May 2026 08:58:06 +0900</pubDate><guid>https://blog.yexca.net/archives/282/</guid><description>最近查阅邮件发现了崩铁的新角色火花有点意思，于是便再次开启了崩铁的旅途（对，就是火花，因为我发现我写完这篇文章后忘了发布，虽然一如既往玩了几天就卸载了） 但是可能是时隔已久，这次的游玩明显有了不一样的感觉，我感觉自己在玩的时候并不是一名玩家，而像是在试着理解设计架构 整体架构 整体来看，崩铁的底层逻辑似乎践行了高内聚、低耦合”的设计原则 游戏的每个世界、每个主城，甚至每个大版本，都被划分成了独立的小块，这样的设计实现了游戏的并行开发 不同的团队可以带着不同的想法同时开工，谁的完成度高、谁的模块先做好，主线就向谁衔接。主程序只需要提供一个统一的运行环境，剩下的就是把这些“积木”拼装起来 角色设计 在剧情和角色调度上，这里貌似采用了两种截然不同的策略： 主线角色（贯穿者）： 他们就像是系统中的核心单例，由专门的主线团队负责，以保证底层设定的完整性和逻辑自洽 支线/卡池角色（独立模块）： 多数角色其实只承载一段独立的剧情，相当于实现了某个标准接口。开发完毕后，想办法将接口对接到主线即可 角色调用方面： 因为支线角色不需要像主线角色那样时刻保持状态的一致 …</description></item><item><title>使用 frp 进行内网穿透</title><link>https://blog.yexca.net/archives/281/</link><pubDate>Thu, 28 May 2026 15:52:18 +0900</pubDate><guid>https://blog.yexca.net/archives/281/</guid><description>全 docker 部署使用 frp 进行内网穿透，尝试了下速度还不错，延迟可以接受 配置 DNS 需要自己有一个公网服务器，这里我的 SSL 证书是通过 cloudflare 进行配置的，所以我的全部连接是通过 80 端口 配置几个域名，分别是连接 frp 的域名 (比如 frp.example.com )，然后是自己需要代理的服务 (比如 server1.example.com, server2.example.com) 指向服务器，注意连接 frp 的域名 (frp.example.com) 不能启用 cloudflare 代理，也就是使用仅 DNS 模式 服务端 在服务器上安装 frp 较为简单，准备配置文件 frps.toml 1 2 3 4 5 bindPort = 7000 vhostHTTPPort = 8000 auth.method = &amp;#34;token&amp;#34; auth.token = &amp;#34;set_your_token&amp;#34; 设置一个复杂的 token 然后是 docker-compose.yml 1 2 3 4 5 6 7 8 9 10 …</description></item><item><title>使用 Roformer 与 Applio 进行 AI 翻唱</title><link>https://blog.yexca.net/archives/280/</link><pubDate>Sat, 23 May 2026 03:00:06 +0900</pubDate><guid>https://blog.yexca.net/archives/280/</guid><description>获取音频 训练推荐使用真无损音频，也就是 pcm_f32le 格式的音频文件，推荐购买实体专辑后导出，可以参考 https://www.bilibili.com/opus/925630344961458181 但不要转换为 flac 格式，直接输出为 wav 格式 本文章使用 RVC 架构的 Applio，训练大概需要 10min-60min 的干声以获取较好的结果，不过最多不要超过 2h，另外质量大于数量，Garbage In, Garbage Out! Youtube 关于从 Youtube 获取音频，可以使用 yt-dlp 下载，这里获取的也是从有损格式转换，并不是真无损音乐 GitHub yt-dlp/yt-dlp 加载中... - - 下载最高音质的 YouTube 视频的音频 1 yt-dlp -x --audio-format wav --audio-quality 0 --embed-thumbnail [video_url] 如果是较长的音频 (超过 10min)，可通过 ffmpeg 进行分割 1 ffmpeg -i …</description></item><item><title>Latex 图片与表格</title><link>https://blog.yexca.net/archives/279/</link><pubDate>Mon, 18 May 2026 20:53:11 +0900</pubDate><guid>https://blog.yexca.net/archives/279/</guid><description>图片 在导言区加入如下代码，其中第二行设置默认图片放在 img/ 文件夹内 1 2 3 % Image \usepackage{graphicx} \graphicspath{{img/}} % set default path to img/ 具体使用 1 2 3 4 5 6 \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{example.jpg} \caption{caption} \label{fig:label} \end{figure} 其中 htbp 分别指代 h：当前位置 t：top 顶部 b：bottom 底部 p：page 新页面 在图片的前方 [width=0.8\textwidth] 指代宽度为一行的 0.8 倍，caption 为图片下方的描述，label 方便引用，具体为 1 可以参考图\ref{fig:label} 并排排列图片 如果不需要给每个图片都加入标题，可以直接简易排列 1 2 3 4 5 6 7 …</description></item><item><title>使用 YOLO26 进行目标检测</title><link>https://blog.yexca.net/archives/278/</link><pubDate>Wed, 06 May 2026 20:05:32 +0900</pubDate><guid>https://blog.yexca.net/archives/278/</guid><description>安装与创建环境 官方安装参考：Installing conda - conda documentation 下载链接：Download anaconda 可以下载 Miniconda 然后自己按需安装环境 创建一个运行环境环境 1 conda create -n env_name python=3.13 -y 激活运行环境 1 conda activate env_name 安装 PyTorch 如果是 CPU 版本直接使用命令 1 pip install torch torchvision torchaudio GPU 版本需要去官网下载，访问 https://pytorch.org/get-started/locally/ 查看安装命令 关于 CUDA 版本可以使用命令查看 1 nvidia-smi 安装完成后检测是否可用 1 2 3 import torch print(f&amp;#34;显卡是否可用: {torch.cuda.is_available()}&amp;#34;) print(f&amp;#34;当前显卡: …</description></item><item><title>Hugo Module 管理</title><link>https://blog.yexca.net/archives/277/</link><pubDate>Sun, 19 Apr 2026 22:20:06 +0900</pubDate><guid>https://blog.yexca.net/archives/277/</guid><description>首先需要安装 go 环境 1 sudo apt install golang 然后初始化 1 hugo mod init github.com/&amp;lt;your_user&amp;gt;/&amp;lt;your_project&amp;gt; 在配置文件 hugo.yml 导入需要添加的模块 1 2 3 module: imports: - path: github.com/name/repo 更新配置 1 hugo mod get -u module 显示 因为使用 go 的依赖，所以要看模块具体在哪使用命令 1 go env GOMODCACHE 把依赖 vendor 进自己的仓库 1 hugo mod vendor 这样就会有一个 vendor 文件夹，显示该项目的依赖 使用 如果是作为主题的话，只需要本地同名文件即可，也就是修改本地的文件，将覆盖导入的主题的文件 参考文章 https://gohugo.io/hugo-modules/use-modules/</description></item><item><title>ffmpeg 常用命令</title><link>https://blog.yexca.net/archives/276/</link><pubDate>Wed, 15 Apr 2026 09:27:01 +0900</pubDate><guid>https://blog.yexca.net/archives/276/</guid><description>说到音视频处理就不得不提到 ffmpeg 这个开源的工具，虽然自己之前也就开始使用，但是零零散散的笔记与需求不是很多再加上偶尔只是一次的使用，所以也就没怎么想着来写这篇文章，这次我想着把存储已久的文章汇集一下 (虽然好多都没记，只好自己补充下啦) 视频转格式 1 ffmpeg -i video.mp4 video.avi 视频转音频 1 ffmpeg -i input.mp4 -vn output.mp3 -vn：表明我们已经在输出文件中禁用视频录制。 视频重新编码 有时候视频的编码格式是损坏的，在部分设备下播放是较为卡顿的，这个时候就需要重新编码 1 ffmpeg -i &amp;#34;video.mp4&amp;#34; -c:v libx264 -c:a aac -preset fast &amp;#34;video_re.mp4&amp;#34; 这会用 x264 重新编码视频，用 aac 重新编码音频 转换为无声 webm 视频 1 ffmpeg -i input.mp4 -an -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm 其中： -an：关键参数，用于去 …</description></item><item><title>vue3 define 函数</title><link>https://blog.yexca.net/archives/275/</link><pubDate>Sun, 12 Apr 2026 22:21:30 +0900</pubDate><guid>https://blog.yexca.net/archives/275/</guid><description>定义 Options API 选项 vue3.3 引入了 defineOptions() 宏函数，用来定义 Options API 的选项，除了 props, emits, expose, slots (因为有对应 define 函数) 1 2 3 4 5 6 &amp;lt;script setup&amp;gt; defineOptions({ name: &amp;#39;LoginIndex&amp;#39;, // ... }) &amp;lt;/script&amp;gt; name 的作用 调试方便 - 在开发者组件会显示 name 的值 递归组件 - 组件内部调用自己可以用自己的 name 的值 &amp;lt;keep-alive&amp;gt; 缓存可以用 name 决定是否缓存 父子组件双向绑定数据 原先为了实现双向绑定数据较为麻烦 父组件中 1 2 3 4 5 6 7 8 9 10 11 &amp;lt;script setup&amp;gt; import { ref } from &amp;#39;vue&amp;#39;; import inputCom from &amp;#39;./components/input-com.vue&amp;#39;; const msg = ref(&amp;#34;a msg from …</description></item></channel></rss>