# videoClip **Repository Path**: wxl212/video-clip ## Basic Information - **Project Name**: videoClip - **Description**: 一个可视化视频剪辑工具,支持视频预览、时间轴拖拽选择等功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎬 视频剪辑工具 一个可视化视频剪辑工具,支持视频预览、时间轴拖拽选择、RTSP 推流等功能。 ## ✨ 功能特点 - 🎥 **视频预览**:直接在浏览器中播放预览视频 - ⏱️ **可视化时间轴**:拖拽滑块选择剪辑范围,点击跳转播放位置 - 📍 **快速定位**:使用当前播放位置快速设置开始/结束时间 - ✂️ **快速剪辑**:使用流复制模式,秒级完成剪辑 - 🔗 **视频合并**:按顺序合并多个视频为一个文件 - 📂 **文件浏览器**:可视化选择文件,无需手动输入路径 - ⚡ **批量转封装**:一键转换非标准格式视频 - 📡 **RTSP 推流**:将本地视频推送为 RTSP 流供其他设备播放 - 🚀 **倍速推流**:支持 0.5x ~ 4x 倍速 - 🔄 **循环推流**:视频结束后自动重播 - ⏱️ **区间推流**:只推送指定时间范围 - 📊 **状态监控**:实时显示帧率、码率、已推送帧数等 ## 📋 环境要求 1. **Node.js** 14.0 或更高版本 2. **FFmpeg** 5.1.x 或 4.4.x 版本(推荐) 3. **MediaMTX**(可选,仅 RTSP 推流功能需要) ### ⚠️ FFmpeg 版本说明 某些视频格式可能是非标准 MPEG 格式,**新版 FFmpeg 7.x 对此解析可能失败**。 **推荐使用 FFmpeg 5.1 版本**: - 下载地址:https://github.com/BtbN/FFmpeg-Builds/releases - 找到类似 `ffmpeg-n5.1.x-win64-gpl.zip` 的文件下载 ## 🚀 快速启动 ### Windows 用户 1. 双击 `启动视频剪辑工具.bat` 2. 首次运行会自动安装依赖 3. 浏览器会自动打开 ### 手动启动 ```bash # 进入项目目录 cd videoClip # 安装依赖 npm install # 启动服务 npm start ``` 访问 http://localhost:3000 ## 📖 使用说明 ### 基本剪辑流程 1. **选择视频**:在左侧文件浏览器中导航到视频所在文件夹,点击视频文件 2. **预览视频**:视频会在右侧播放器中加载,可以播放预览 3. **设置时间范围**: - 🎯 **方式一**:拖拽时间轴上的绿色(开始)和橙色(结束)滑块 - ⌨️ **方式二**:在下方输入框手动输入时间 `HH:MM:SS` 格式 - 📍 **方式三**:播放到想要的位置,点击 📍 按钮使用当前播放位置 4. **预览片段**:点击"预览片段"按钮确认剪辑范围 5. **开始剪辑**:点击"开始剪辑"按钮 6. **查看结果**:剪辑完成后点击右上角 📁 打开输出目录 ### 快捷键 - **空格键**:播放/暂停视频(全局有效,无需聚焦播放器) - **左箭头**:后退 10 秒 - **右箭头**:前进 10 秒 ### 视频合并 将多个视频文件按顺序合并为一个: 1. 选择第一个视频,点击"➕ 添加当前视频" 2. 切换到下一个视频,继续添加 3. 拖拽调整视频顺序(可选) 4. 点击"🔗 开始合并"按钮 5. 等待合并完成 **提示**:功能面板支持折叠,点击面板标题可以展开/折叠,便于操作。 ### 批量转封装 如果文件夹中有无法预览的非标准格式视频: 1. 进入该文件夹 2. 点击路径栏的"⚡ 转封装"按钮 3. 等待转换完成,视频将可以正常预览 ### RTSP 推流(可选功能) 将本地视频推送为 RTSP 流,供其他设备(如 VLC、监控系统)播放。 #### 配置 MediaMTX 1. 下载 MediaMTX:https://github.com/bluenviron/mediamtx/releases 2. 解压到任意目录 3. 在设置中配置 MediaMTX 路径 #### 推流选项 | 选项 | 说明 | |------|------| | **倍速** | 支持 0.5x、0.75x、1x、1.25x、1.5x、2x、4x | | **推流区间** | 勾选后使用剪辑的起止时间作为推流范围 | | **循环推流** | 勾选后视频播放完自动从头开始 | #### 使用推流 1. 选择并预览视频 2. 设置推流选项(倍速、区间、循环) 3. 点击"开始推流"按钮 4. 复制 RTSP 地址(如 `rtsp://192.168.1.100:8554/live`) 5. 在 VLC 或其他播放器中打开该地址 #### 推流状态监控 推流时会实时显示以下信息: - **帧率**:当前输出帧率 (fps) - **码率**:当前输出码率 (kbps/Mbps) - **已推送**:已推送的帧数 - **丢帧**:丢弃的帧数(正常情况下应接近0) - **设定倍速**:用户选择的播放倍速 - **数据量**:已推送的数据总量 #### 注意事项 - 推流与预览独立运行,如需同步时间,点击"同步时间"按钮 - 非1x倍速需要重新编码,会增加 CPU 占用 - 同步时间会导致播放器短暂中断重连 ## 🔧 配置说明 点击右上角 ⚙️ 设置按钮进行配置: - **FFmpeg 路径**:选择 ffmpeg.exe 文件 - **输出目录**:剪辑后的视频保存位置 - **MediaMTX 路径**(可选):用于 RTSP 推流 - **RTSP 端口**:默认 8554 - **推流路径名**:默认 live 配置保存在 `config.json` 文件中。 ## 📁 项目结构 ``` videoClip/ ├── server.js # 后端服务 ├── logger.js # 日志模块 ├── package.json # 项目配置 ├── config.json # 运行时配置(自动生成) ├── 启动视频剪辑工具.bat # Windows 快速启动脚本 ├── output/ # 默认输出目录(自动创建) ├── temp/ # 临时文件目录(自动创建) ├── logs/ # 日志目录(自动创建) ├── public/ # 前端文件 │ ├── index.html # 主页面 │ ├── style.css # 样式 │ └── app.js # 前端逻辑 └── README.md # 说明文档 ``` ## ❓ 常见问题 ### Q: 剪辑失败,提示 "dimensions not set" A: 这是 FFmpeg 版本问题,请使用 5.1 或 4.4 版本。 ### Q: 视频无法预览 A: 某些非标准格式浏览器可能不支持预览。可以使用"批量转封装"功能转换后再预览。 ### Q: 剪辑后视频无法播放 A: 勾选"重新编码"选项重新剪辑。 ### Q: RTSP 推流时 VLC 无法播放 A: 确保 MediaMTX 已正确配置并启动。检查防火墙是否放行了对应端口(默认 8554)。 ### Q: 倍速推流画质模糊 A: 非1x倍速需要重新编码。当前使用 CRF 23 质量设置,如需更高画质可修改 server.js 中的 `-crf` 参数(值越小画质越高,但文件越大)。 ### Q: 倍速推流 CPU 占用高 A: 非1x倍速需要实时转码,会占用较多 CPU。如果 CPU 压力过大,可以选择较低的倍速或使用 1x 原速推流。 ### Q: 如何分享给其他人使用? A: 将整个 `videoClip` 文件夹和 FFmpeg 一起打包分享,接收者只需: 1. 安装 Node.js 2. 双击 `启动视频剪辑工具.bat` 3. 配置 FFmpeg 路径 ## 📝 日志 日志文件保存在 `logs/` 目录中,按日期分割(`app_YYYY-MM-DD.log`),可用于问题排查。 ## 📄 许可证 MIT License