MP4 和字幕怎么封装成 MKV,用 FFmpeg 最省事
MP4 和字幕怎么封装成 MKV,用 FFmpeg 最省事有时候你手里已经有现成的 MP4 视频和 SRT 或 ASS 字幕,需求并不是“压制”,而只是: 把字幕封进视频文件里 生成一个新的 MKV 播放器里可以自由开关字幕 不重新编码,尽量快 这种场景最省事的做法,不是重新导出视频,而是直接做一次封装(remux)。 这篇只讲最短路径。 先说结论如果你只是想把一个 MP4 和一个字幕文件封装成新的 MKV,最常用的命令就是: 1ffmpeg -i input.mp4 -i subtitle.srt -c copy output.mkv 这条命令的关键在 -c copy: 不重新编码视频 不重新编码音频 只是把原有流重新装进 MKV 容器 速度通常很快 一句话理解: 这不是“转码”,而是“换盒子顺手把字幕塞进去”。 为什么更推荐封装成 MKV虽然 MP4 也能处理一部分字幕场景,但如果你要的是更稳妥的字幕兼容性,MKV 通常更省心。 原因很直接: MKV 对字幕格式支持更宽松 内封字幕管理更方便 做多字幕时更顺手 很多播放器对 MKV + SRT/ASS 的支持更成熟...
VS Code 比较文件,先分清你到底要比什么
VS Code 比较文件,先分清你到底要比什么很多人说“想在 VS Code 里比较两个文件”,但这个“比较”其实可能是三件完全不同的事: 看两个文件哪里不一样 找两个文件里共同出现的内容 看同一个文件在 Git 历史里的变化 如果一开始没分清,后面就很容易在错误的工具上浪费时间。 1. 想看差异:直接用 VS Code 内置 Diff这类需求最常见,比如: 两个配置文件有什么不同 两版文案改了哪里 两段代码删了什么、加了什么 用法很直接: 右键第一个文件,选择“Select for Compare” 再右键第二个文件,选择“Compare with Selected” 这时候 VS Code 给你的就是标准的 Diff 视图。 一句话总结: 想看哪里改了,用内置比较就够。 2. 想找共同内容:这不是 Diff,是交集这个场景也很常见,比如: 两批 URL 有没有重复 两份 ID 列表哪些同时存在 两个文本文件里哪些行是一样的 如果文件是“一行一个值”,最省事的办法不是装插件,而是直接跑命令。 macOS / Linux / Git Bash:...
macOS 在访达右键用 VS Code 打开文件或文件夹
macOS 在访达右键用 VS Code 打开文件或文件夹在 Windows 上,右键用编辑器打开文件或文件夹是很常见的操作。到了 macOS,如果你也想在 访达(Finder)里右键直接用 VS Code 打开,最稳的做法不是手写 .workflow 文件,而是直接用 Automator 新建“快速操作”。 这样做有几个好处: 系统原生支持,兼容性更稳 能同时支持 文件 和 文件夹 重装系统或换机器后,照着再配一次也很快 这篇就把完整做法整理一下,后面需要时可以直接照着操作。 最终效果配置完成后,在 Finder 里: 右键某个文件 或右键某个文件夹 你就能在 “快速操作” 或 “服务” 菜单里看到: 1Open in VS Code 点一下,就会直接用 VS Code 打开目标文件或目录。 一、先确认 code 命令可用在 macOS 里,Automator 本质上还是通过命令调用 VS Code,所以第一步要先确认终端里能直接使用 code。 打开 VS Code,按下: 1Cmd + Shift + P 然后搜索并执行: 1Shell Command: I...
OpenClaw Session 清理指南:手动定点删除 vs cleanup 全局维护
OpenClaw Session 清理指南:手动定点删除 vs cleanup 全局维护很多人在清理 OpenClaw 里的旧 session 时,容易把两类操作当成一回事: 手动删除指定 session 运行 openclaw sessions cleanup --all-agents --enforce 但这两者其实差别很大。 前者更像定点手术,后者更像按规则跑一遍系统保洁。 如果你的目标是“我就要把这几个指定 session 立刻删掉,并让它们马上从列表里消失”,那通常不能简单把它等同于 cleanup。 一、这次手动做的到底是什么这次做的是:手动、精确删除指定 session。 核心动作分两步: 先删指定 session 的 transcript 文件 *.jsonl 再删对应 agent 的 sessions.json 里的索引条目 目标很明确: 让这几个指定 session 立刻从列表里消失。 这种方式的特点 按你指定的 session 删 不依赖 OpenClaw 的保留策略 可以删除“规则本来未必会清”的 session 风险也更直接:删错就是删错,...
Hexo中统一图片基础地址的踩坑记录
最近想把博客里大量图片地址统一一下。 原来文章里很多图片都直接写死成了这个前缀: 1https://cdn.jsdelivr.net/gh/gmwzxiaotaiyang/HEXO_img@v1.0.0 这样有两个问题: 后面如果图床地址变化,需要全局替换,维护成本高 文章里反复出现同样的长前缀,可读性也比较差 所以我打算把它抽成一个统一变量,例如: 1{{ IMG_BASE_URL }} 然后在配置里只维护一份真实地址。 没想到这个改动看起来简单,实际踩了两个坑。 目标目标很明确: 在文章里不再直接写完整图片基础地址 改成统一变量: 1{{ IMG_BASE_URL }} 真实地址只在配置文件里保留一份,例如: 1img_base_url: https://cdn.jsdelivr.net/gh/gmwzxiaotaiyang/HEXO_img@v1.0.0 这样后续如果要换图床,只需要改一处。 第一步:批量替换源码中的图片前缀先把 source/**/*.md 里的原始前缀替换...
Thymeleaf使用技巧
Thymeleaf使用技巧1.依赖html添加命名空间 1<html lang="en" xmlns:th="http://www.thymeleaf.org"> maven 依赖 12345<!-- SpringBoot集成thymeleaf模板 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> js 中使用 th123const user = /*[[${user}]]*/{};const user1 = '[[${user}]]'; user:是一个对象user1:是字符串 html中使用1234<!-- 前 -->t...
微服务技术栈完全指南
本文整理了微服务开发的核心技术栈,包含 SpringCloud、Nacos、Docker、MQ 等技术点。 📑 目录 认识微服务 微服务远程调用 注册中心 负载均衡 配置管理 HTTP 客户端 Feign 统一网关 Gateway Docker 容器化 消息队列 MQ 认识微服务什么是微服务微服务是一种架构风格,将单体应用拆分为多个小型服务,每个服务独立运行、独立部署。 技术选型对比 SpringCloud 生态SpringCloud 是微服务解决方案,提供了一整套微服务技术组件。 📌 版本注意:SpringCloud 与 SpringBoot 版本需要兼容 微服务远程调用基于 RestTemplate1. 注册 RestTemplate Bean 1234@Beanpublic RestTemplate restTemplate() { return new RestTemplate();} 2. 服务远程调用 12String url = "http://user-service/user/" + ord...
会话跟踪技术
会话跟踪技术 会话:用户打开游览器,访问web服务器的资源,回话建立,直到有一方断开连接,回话结束。在一次会话中可以包含多次请求和响应 会话跟踪:一种维护游览器状态的方法,服务器需要识别多次请求是否来自同一游览器,以便在同一次回话的多次请求间共享数据 HTTP协议是无状态的,每次游览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享 实现方式: 客户端会话跟踪技术:Cookie 服务端会话跟踪技术:Session 目录 Cookie基本使用 Cookie原理 Cookie使用细节 Session基本使用 Session原理 Session使用细节 案例 Cookie基本使用 Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问 Cookie 基本使用 创建Cookie对象,设置数据 1Cookie cookie = new Cookie("key","value"); 发送Cookie到客户端:使用response对象 1response....
centos8.0安装mysql
centos8.0安装mysql参考文章 安装mysql1sudo dnf install @mysql 开机启动安装完成后,运行一下命令来启动mysql服务并使它在启动时自动启动; 1sudo systemctl enable --now mysqld 查看状态 1sudo systemctl status mysqld 添加密码及安全设置运行mysql_secure_installation 脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码: 1sudo mysql_secure_installation 要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配置 选择密码验证策略等级, 我这里选择0 (low),回车 输入新密码两次 确认是否继续使用提供的密码?输入y ,回车 移除匿名用户? 输入y ,回车 不允许root远程登陆? 我这里需要远程登陆,所以输入n ,回车 移除test数据库? 输入y ,回车 重新载入权限表? 输入y ,回车 配置远程登录123use mysql;update user ...
centos7搭建邮箱服务器
centos7搭建邮箱服务器概述邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。本文会搭建收、发两个服务器,并用邮件客户端(Foxmail)做测试。 协议协议就是定义规则,这里是邮件协议,定义邮件收发的规则,了解规则有助于理解软件的配置文件。邮件发送协议 SMTP(Simple Mail Transfer Protocol),打开端口 25。邮件收取协议 POP,打开端口 110;还有个常用邮件收取协议 IMOP,打开端口 143。 服务软件PostfixPostfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器。 上面说的邮件客户端将邮件扔给它,由它对邮件进行转发,至于怎么转发,SMTP 协议制定了规则,而 Postfix 负责具体事情,我们只需要修改 Postfix 配置文件要求它按照我们的想法去做。 DovecotDovecot 实现了 POP 和 IMOP 协议,也叫做邮件收取服务器。如果只搭建了 Postfix 而没有它,不好意思,你是收不到邮件的。 SaslSasl登陆验证服务,在下面的介绍可以看到 Postfix 作为邮件...









