一款开源桌面音视频转换工具,支持RTMP/HLS推流+屏幕录制+FLV拉流
跨平台桌面应用:Vue3 + TypeScript + Go + Wails,支持音视频互转、流媒体推拉流、Office转PDF
项目概述
FFmpegFree 是一款基于 Vue3 + TypeScript + Go + Wails 构建的跨平台桌面端音视频格式转换工具,GitHub 开源。
- 项目地址:https://gitee.com/bmcbdt/FFmpegFree
- 技术栈:Vue3 + TypeScript + Vite + Element Plus(前端)| Go + Gin(后端)| Wails(桌面打包)
- 必备工具:FFmpeg
核心功能一览
🎬 音视频格式互转
当前已支持以下格式相互转换:
| 格式 | 类型 | 格式 | 类型 |
|---|---|---|---|
| .avi | 视频 | .mp4 | 视频 |
| .mkv | 视频 | .mov | 视频 |
| .flv | 视频 | .webm | 视频 |
| .gif | 动画 | — | — |
📡 流媒体工具模块
这是该工具的亮点功能,支持多种流媒体操作:
1. 文件推流
- 选择本地音视频文件,通过 RTMP、HLS、SRT 等协议推流到指定地址
- 支持断点续传与错误重试
2. 屏幕录制推流
- 支持选择屏幕区域或全屏录制,实时推流
- 可设置帧率、编码器参数
- 适合直播、远程教学、会议分享等场景
3. 直播拉流播放
- 应用内集成播放器,支持拉取远程 FLV 直播流
- 完整支持 HTTP-FLV 和 WebSocket-FLV
- 支持自动重连、缓冲控制
4. Office 转 PDF
- 支持 Word、Excel、PowerPoint 转 PDF
- 拖拽上传,异步转换不阻塞界面
🛠️ 快速上手
前提条件:
- Node.js >= 18.x
- Go >= 1.20
- Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest - FFmpeg
启动开发环境:
wails dev
打包桌面程序:
wails build
典型使用场景
| 场景 | 说明 |
|---|---|
| 直播转码推流 | 本地视频推送至抖音、B站、YouTube 等平台 |
| 远程教学演示 | 屏幕录制 + 推流,实时传输讲解过程 |
| 监控中心查看 | 拉取多路摄像头 FLV 流集中显示 |
| 私有流媒体测试 | 快速测试本地推拉流,调试流媒体服务器 |
技术实现简析
- 推流:基于 ffmpeg 命令行调用或 Go 原生音视频库
- 屏幕录制:调用系统 API(macOS AVFoundation / Windows GDI)
- FLV 拉流:前端通过
<video>标签配合 MSE,或 WebAssembly 原生播放器 - Office 转 PDF:依赖 LibreOffice
后续规划
- 支持更多拉流格式(HLS、RTMP、RTSP 等)
- 推流日志与性能监控面板
- 多路并发推流与负载均衡
- Nginx-RTMP 一键配置向导
一句话总结
FFmpegFree 把 FFmpeg 的能力封装成了桌面级傻瓜工具,流媒体功能尤为实用——推流、拉流、屏幕录制一站式搞定,加上 Office 转 PDF,对日常有视频处理和直播需求的用户来说是难得的开源选择。