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