Skip to content

zhimin-dev/media-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

146 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Media Tool

v1.3.0 — 一个多功能视频处理工具箱。无需安装复杂软件,下载、合并、剪辑、转码一站式搞定。


能做什么?

📥 视频下载

粘贴 m3u8 视频链接,一键下载整部视频。支持:

  • 普通 m3u8 和加密 m3u8(AES-128 / SAMPLE-AES)
  • 多线程并发下载,速度更快
  • 自定义请求头,应对需要登录或 Referer 验证的视频源
  • 下载后自动合并为 mp4

🔗 视频合并

把多个视频片段拼接成一个完整视频。支持:

  • 按顺序批量合并多个 mp4 文件
  • 正则匹配批量导入(如 video_01.mp4 ~ video_20.mp4
  • 合并时可调整分辨率、帧率、码率

✂️ 视频截取

从长视频中截取精彩片段。只需设置起始时间和持续时长,秒出结果。

🔄 视频转码

将视频转换为不同格式或画质。支持自定义:

  • 视频编码(H.264 / H.265)
  • 分辨率(4K / 1080p / 720p 等)
  • 码率、帧率
  • 音频编码(AAC / MP3 / Opus)、音频码率、声道、采样率

📺 在线播放

内置视频播放器,直接输入 m3u8 链接在线观看,粘贴即播。

🖥️ 桌面应用

提供 macOS / Windows / Linux 桌面客户端,图形化操作,无需敲命令。

操作流程图


两种使用方式

🎯 桌面应用(推荐)

下载对应平台的安装包,开箱即用。界面美观,任务可视化,实时查看下载/处理进度。

  • macOS.dmg 安装包
  • Windows.msi / .exe 安装包
  • Linux.AppImage / .deb 安装包

安装包可在 GitHub Releases 页面下载。

⚠️ macOS 用户注意:如果安装后打不开 App,提示"无法验证开发者"或"已损坏",请在终端执行以下命令清除隔离标记:

xattr -cr /Applications/Media\ Tool.app

这是因为应用未经过 Apple 官方签名,macOS Gatekeeper 默认会阻止运行。

⌨️ 命令行

也支持直接在终端中使用:

# 下载视频
media-tool-rs download --url "https://example.com/video.m3u8"

# 合并视频
media-tool-rs combine --reg-name "clip_(.*).mp4" --reg-name-start 1 --reg-name-end 10

# 截取片段
media-tool-rs cut --input "video.mp4" --start 30 --duration 60

# 转码视频
media-tool-rs transcode --input "video.mp4" --video-codec h265 --resolution 1080p

# 启动 Web 服务(配合前端界面使用)
media-tool-rs serve --port 8080

开发相关

本项目使用 Rust 编写核心逻辑,前端基于 React + Material UI + Tauri 构建桌面应用。

如需从源码运行,请确保已安装 Rust 和 Node.js,然后:

# 启动后端服务
cargo run -- serve --port=0

# 启动前端开发服务器(另一个终端)
cd desktop
npm install
npm run dev:with-server

npm run dev:with-server 会自动启动后端并配置好代理,打开浏览器即可使用。

如需构建桌面安装包:

cd desktop
npm run tauri build

Linux 用户需先安装 GTK / WebKit 等系统依赖。


更新日志

v1.3.0 (2026-07-10)

  • 修复 下载任务中部分 TS 分片下载失败时仍会继续合并的问题,现在会检测每个分片的下载结果并在失败时返回具体错误信息
  • 新增 详细的错误信息传递链路,下载失败时前端可看到具体原因(如 HTTP 状态码异常、网络超时、URL 等)
  • 修复 请求未携带 User-Agent 导致部分 CDN 拒绝访问的问题,现默认使用 Chrome UA
  • 修复 TLS 指纹(JA3)被部分 CDN 拦截的问题,将 TLS 后端从 rustls 切换为 native-tls
  • 修复 下载完成后的 MP4 文件点击播放报 "format is not supported" 的问题,统一使用 serve-video API 精确定位输出文件
  • 优化 worker 线程在下载任务完成后能正常退出,不再阻塞等待

许可

MIT License

About

media tool, a ffmpeg tool collection

Topics

Resources

License

Stars

3 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors