# CC-VIDEO 转码服务 **Repository Path**: bidcms/cc-video-convert-service ## Basic Information - **Project Name**: CC-VIDEO 转码服务 - **Description**: CC-VIDEO 转码服务是一个基于 GoLang 所编写的轻量级 HTTP 服务。该服务旨在与 CC-VIDEO 视频平台搭配使用,主要用于将用户上传视频的 mp4 格式转换为 m3u8 格式,并提供一个静态资源库用于访问 m3u8 视频。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-12-10 - **Last Updated**: 2024-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CC-VIDEO 转码服务 ## 介绍 CC-VIDEO 转码服务是一个基于 GoLang 所编写的轻量级 HTTP 服务。该服务旨在与 CC-VIDEO 视频平台搭配使用,主要用于将用户上传视频的 mp4 格式转换为 m3u8 格式,并提供一个静态资源库用于访问 m3u8 视频。 ## 软件架构 ![cc-video架构](./cc-video架构.jpg) ## 使用说明 ### 准备工作 - 确保个人主机或服务器上安装了 ffmpeg 和 GoLang。 ### 直接启动 - 在当前文件夹下,双击运行 ` cc-video-convert-server.exe ` 程序。 ### 自定义服务设置 - 在当前文件夹下,打开 `main.go` 文件。 - 在该文件中,找到全局变量 `ServerIp` 和 `ServerPort`。 - 修改这两个变量,把 `ServerIp` 改为 CC-VIDEO 视频平台的 IP 地址(默认是: `127.0.0.1`);把 `ServerPort` 改为自己想要的服务端口号(默认是: `8979`)。 **[这里 IP 不需要更改,除非你不想使用协程池来处理任务,而是直接处理任务的话。]** - 保存文件,在当前文件夹下打开终端命令指示符,输入: `go run .\main.go .\convertHandler.go .\convertHandlerQueue.go`。 - 同时,也可以在终端输入: `go build -o cc-video-convert-server.exe .\main.go .\convertHandler.go .\convertHandlerQueue.go` 后,双击运行当前文件夹下的 ` cc-video-convert-server.exe ` 程序。 ```shell go run .\main.go .\convertHandler.go .\convertHandlerQueue.go go build -o cc-video-convert-server.exe .\main.go .\convertHandler.go .\convertHandlerQueue.go ``` **这里需要注意修改服务端口后,需要在视频平台项目中修改该服务的 IP 和端口号。** ## 更新日志 ### 2024-06-07 #### 改进 - 将转码方法改为异步 go 程处理。 考虑到转码服务可能存在多个请求调用转码方法的情况,因此需要处理这种高并发的情况。这里的解决思路是参考了 Kafka 的网络通信模型的解决方案并采用了 Reactor 模式的核心思想,当请求访问 API 时,将该请求的数据存入队列中。存在一个 go 程监听器监听协程池和队列的情况,如果队列存在元素且协程池有资源,则将任务给到协程池进行处理。 具体的代码,可查看源码。 ## 注意事项 - 该项目由个人开发,测试可能不到位,存在一些小BUG或潜在问题。 - 在 `convertHandler.go` 文件中,可修改协程池的个数,这里需要根据自身主机情况进行调整。 - 如果想要获取响应的映射地址,则要在 `main.go` 文件中去掉被注释的代码,并将 API 请求的处理方法改为注释代码中的方法。