FFmpeg-over-IP 项目安装与配置指南
1. 项目基础介绍
FFmpeg-over-IP 是一个开源项目,它允许用户在没有 GPU passthrough 的情况下,在容器或虚拟机中远程转码视频。这个项目由客户端和服务器端组成,通过共享文件系统和轻量级通信协议来传输视频数据和协调命令。它的主要编程语言是 Go。
2. 项目使用的关键技术和框架
- Go 语言:项目主要使用 Go 语言编写,保证了高性能和跨平台的兼容性。
- 共享文件系统:通过 Docker mount、NFS 或 SMB 等方式实现共享文件系统,用于传输视频数据。
- 轻量级通信协议:用于客户端和服务器之间的命令协调。
- JSONC 配置文件:使用 JSONC 格式的配置文件进行客户端和服务器配置。
3. 项目安装和配置的准备工作及详细步骤
准备工作
- 确保你的系统已安装 Go 语言环境,版本要求为 1.18 或以上。
- 准备一个共享文件系统,例如 Docker mount、NFS 或 SMB。
- 确保服务器端有安装 FFmpeg。
安装步骤
选项一:下载预编译的二进制文件
- 访问 GitHub Releases 页面,下载适合你平台的最新二进制文件。
- 解压下载的文件,你将得到
ffmpeg-over-ip-client
和ffmpeg-over-ip-server
可执行文件。 - 如果需要,赋予这些二进制文件执行权限:
chmod +x ffmpeg-over-ip-*
选项二:从源代码构建
- 克隆仓库:
git clone https://github.com/steelbrain/ffmpeg-over-ip.git
- 使用包含的 Makefile 构建二进制文件:
make build
- 可选地,将构建的二进制文件安装到你的 Go 路径下:
构建的二进制文件将被放置在make install
bin
目录下。
配置步骤
客户端配置
- 创建一个客户端配置文件,可以放在默认的搜索路径下,或者使用
--config
参数指定路径。配置文件的示例内容如下:{ // 日志输出位置 "log": "/tmp/ffmpeg-over-ip-client.log", // 服务器地址 "address": "localhost:5050", // 认证密钥(必须与服务器配置匹配) "authSecret": "your-secret-here" }
服务器配置
- 类似地,创建一个服务器配置文件:
{ // 日志输出位置 "log": "stdout", // 监听地址 "address": "0.0.0.0:5050", // 认证密钥(必须与客户端配置匹配) "authSecret": "your-secret-here", // 服务器上的 FFmpeg 路径 "ffmpegPath": "/usr/bin/ffmpeg", // 路径重写规则 "rewrites": [ ["/client/path", "/server/path"], ["/another/client/path", "/corresponding/server/path"], // 编解码器重写规则 ["h264_nvenc", "h264_qsv"], // 使用 Intel QuickSync 替代 NVIDIA 编解码 h264 ["hevc_nvenc", "hevc_vaapi"], // 使用 VAAPI 替代 NVIDIA 编解码 HEVC ["cuda", "qsv"], // 使用 QuickSync 加速替代 CUDA ] }
完成上述步骤后,你就可以启动服务器,并使用客户端进行视频转码操作了。