一个使用本地FFmpeg命令行的MKV字幕提取工具,可以轻松提取和预览MKV文件中的字幕。
- 无需加载整个文件:使用本地FFmpeg直接处理文件,不需要将大文件加载到浏览器内存中
- 支持多种字幕格式:支持SRT、ASS、SSA等常见字幕格式
- 自动搜索文件:在配置的媒体目录中自动查找文件,无需手动输入完整路径
- 预览功能:提取前可以预览字幕内容
- 支持字幕附件:可以提取MKV文件中作为附件的字幕文件
- 确保已安装Node.js环境
- 安装必要的依赖:
npm install express cors
- 确保系统已安装FFmpeg和FFprobe,并且可以在命令行中访问
编辑config.json文件,配置您的媒体目录:
{
"mediaDirectories": [
"C:\\Users\\Public\\Videos",
"D:\\Videos",
"/home/user/Videos",
"/Users/user/Movies"
]
}添加您实际存放MKV文件的目录路径。
-
安装依赖并构建前端代码:
npm install # 首次运行时安装依赖 npm run build # 构建前端代码
-
启动本地服务器:
node server.js
-
在浏览器中访问:
http://localhost:3000/index.html或者直接访问
http://localhost:3000/(已配置自动重定向到index.html)
如果您只想运行服务器部分,不需要修改前端代码,可以使用简化安装:
-
只安装服务器依赖:
npm install --production --prefix=./server-only
或者手动安装:
npm install express cors
-
启动服务器:
node server.js
-
在浏览器中访问:
http://localhost:3000/
只需双击start-app.bat文件,脚本会自动:
- 安装必要的依赖
- 构建前端代码
- 启动服务器
# 首次使用前,使脚本可执行
chmod +x start-app.sh
# 运行脚本
./start-app.sh- 确保您已经运行了
npm run build命令构建前端代码 - 检查项目根目录下是否存在
bundle.js文件 - 如果访问根路径
/没有自动跳转,请尝试直接访问/index.html - 检查浏览器控制台是否有错误信息
- 尝试清除浏览器缓存后重新加载页面
- 本项目是一个集成应用,前端代码需要构建后由后端服务器提供
- 如果您想分离前后端:
- 前端可以通过
npm run dev启动开发服务器 - 后端仍然通过
node server.js启动 - 需要修改前端代码中的API URL,指向正确的后端地址
- 前端可以通过
- 确保MKV文件位于
config.json中配置的媒体目录中 - 当应用提示输入目录时,输入文件的实际目录路径
- 目录路径格式正确(Windows使用
\\或/作为分隔符)
- 检查服务器控制台输出的错误信息
- 确认FFmpeg命令执行正确
- 对于包含多个字幕轨道的文件,尝试选择不同的轨道
- 前端应用允许用户选择MKV文件
- 应用将文件名发送到本地服务器
- 服务器在配置的媒体目录中查找该文件
- 服务器使用FFprobe分析文件结构,找出所有字幕轨道
- 用户选择字幕后,服务器使用FFmpeg提取字幕内容
- 提取的字幕可以直接预览或下载
应用使用客户端-服务器架构:
- 前端:纯HTML、CSS和JavaScript
- 后端:Node.js + Express服务器
- 处理引擎:本地FFmpeg和FFprobe命令行工具
- 通信:通过HTTP API进行前后端数据交换
- Express.js:用于创建本地HTTP服务器
- FFmpeg:用于分析和提取MKV文件中的字幕
- 浏览器端:标准HTML5、CSS3和JavaScript
欢迎提交问题和改进建议!如有任何问题,请在GitHub上提交issue。
MIT许可证