2024-10-24 04:43:06 -04:00
|
|
|
# Liver streamer
|
|
|
|
|
|
|
|
一个基于 Go 语言的自动视频推流工具。
|
|
|
|
|
|
|
|
## 功能特点
|
|
|
|
|
|
|
|
- 🎥 支持自动循环推流指定文件夹中的视频文件
|
|
|
|
- 🎮 提供 Web 控制面板实时监控推流状态
|
|
|
|
- ⚙️ 灵活的视频编码和推流参数配置
|
|
|
|
- 🎯 支持视频片段截取推流(指定开始和结束时间)
|
|
|
|
- 🔄 支持手动切换当前推流视频
|
|
|
|
|
2024-10-28 15:35:21 -04:00
|
|
|
## 配置
|
|
|
|
|
|
|
|
### 示例
|
2024-10-24 04:43:06 -04:00
|
|
|
|
|
|
|
除了 input 和 output 部分,其余都是可选的
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"input": [
|
|
|
|
"./videos",
|
|
|
|
{
|
|
|
|
"path": "./video1.mp4",
|
|
|
|
"start": "00:01:00",
|
|
|
|
"end": "01:00:00"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"path": "./video2.mkv",
|
|
|
|
"start": "10s",
|
|
|
|
"end": "100s"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"play": {
|
2024-10-27 10:53:25 -04:00
|
|
|
"-c:v": "libx264",
|
|
|
|
"-preset": "medium",
|
|
|
|
"-crf": 23,
|
|
|
|
"-maxrate": "1000k",
|
|
|
|
"-bufsize": "2000k",
|
2024-10-28 15:35:21 -04:00
|
|
|
"-vf": "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2",
|
2024-10-27 10:53:25 -04:00
|
|
|
"-r": 30,
|
|
|
|
"-c:a": "aac",
|
|
|
|
"-b:a": "128k",
|
|
|
|
"-ar": 44100,
|
|
|
|
"-f": "flv"
|
2024-10-24 04:43:06 -04:00
|
|
|
},
|
|
|
|
"output": {
|
|
|
|
"rtmp_server": "rtmp://live-push.example.com/live",
|
|
|
|
"stream_key": "your-stream-key"
|
|
|
|
},
|
|
|
|
"log": {
|
2024-10-29 05:12:49 -04:00
|
|
|
"level": "info"
|
|
|
|
"show_ffmpeg_output": true
|
2024-10-24 04:43:06 -04:00
|
|
|
},
|
|
|
|
"server": {
|
|
|
|
"addr": ":8080",
|
|
|
|
"token": "your-access-token"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2024-10-28 15:35:21 -04:00
|
|
|
|
|
|
|
### play 参数占位符
|
|
|
|
|
|
|
|
`{{filename}}`: 视频文件名(不包含后缀)
|
|
|
|
`{{filepath}}`: 视频路径
|
|
|
|
|
|
|
|
示例:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"play": {
|
|
|
|
"-vf": "drawtext=text='{{filename}}':x=5:y=5:fontsize=24:fontcolor=white:borderw=2:bordercolor=black"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|