mirror of https://github.com/q191201771/lal.git
aacflashflvgolanggolang-rtmph264-avch265-hevchlshttp-tshttps-flvlallive-media-serverlivestreamm3u8mpegtsrtcprtmprtprtspvideo
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34bd5cf004
- `/app/demo/dispatch`处理`on_update`事件回调 - HTTP Notify增加新事件回调`/on_server_start` - HTTP API `/api/stat/lal_info` 中增加`server_id`字段 - 增加`gen_tag.sh`,用于打tag |
4 years ago | |
---|---|---|
app | 4 years ago | |
conf | 4 years ago | |
pkg | 4 years ago | |
.gitignore | 5 years ago | |
.travis.yml | 5 years ago | |
CHANGELOG.md | 4 years ago | |
CONTRIBUTING.md | 4 years ago | |
LICENSE | 6 years ago | |
Makefile | 5 years ago | |
README.md | 4 years ago | |
TEST.md | 5 years ago | |
build.sh | 4 years ago | |
build_linux.sh | 5 years ago | |
gen_release.sh | 4 years ago | |
gen_tag.sh | 4 years ago | |
go.mod | 4 years ago | |
go.sum | 4 years ago | |
showdeps.sh | 5 years ago | |
test.sh | 4 years ago |
README.md
app/lalserver
服务器支持的协议:
- | sub rtmp | sub http(s)-flv | sub http-ts | sub hls | sub rtsp | relay push rtmp |
---|---|---|---|---|---|---|
pub rtmp | ✔ | ✔ | ✔ | ✔ | - | ✔ |
pub rtsp | ✔ | ✔ | ✔ | ✔ | - | - |
relay pull rtmp | ✔ | ✔ | ✔ | ✔ | - | . |
编码类型 | rtmp | rtsp | hls | http(s)-flv | http-ts |
---|---|---|---|---|---|
aac | ✔ | ✔ | ✔ | ✔ | ✔ |
avc/h264 | ✔ | ✔ | ✔ | ✔ | ✔ |
hevc/h265 | ✔ | ✔ | - | ✔ | - |
表格含义见: 《流媒体传输连接类型之session client, server, pub, sub, push, pull》
app/lalserver
功能特性:
- 全平台。(依托Go语言):支持
(linux/macOS/windows)
多平台开发、调试、运行。支持交叉编译。生成的可执行文件(无任何库依赖)可独立运行。(开放源码的同时)提供各平台可执行文件,可(免编译)直接运行 - 高性能。多核多线程扩展
- 多种直播流封装协议。支持RTMP/RTSP/HTTP-FLV/HTTP-TS/HLS,不同封装协议支持相互转换
- 录制。支持HLS录制(HLS直播与录制可同时开启)
- HTTPS。支持HTTPS-FLV拉流
- CORS跨域。支持HTTP-FLV,HTTP-TS,HLS跨域拉流
- HTTP文件服务器。比如HLS切片文件可直接播放,不需要额外的HTTP文件服务器
- 多种编码格式。视频支持H264/AVC,H265/HEVC,音频支持AAC
- 静态pull回源。用于搭建简易集群
- 静态push转推。支持转推多个地址。通过静态文件配置
- HTTP API接口。用于获取服务信息,向服务发送命令。见《lal流媒体服务器的HTTP API接口》
- HTTP Notify事件回调。见《lal HTTP Notify(or Callback or Webhook)事件回调》
- 秒开播放。GOP缓冲
除了lalserver,还提供一些基于lal开发的demo: 《lal/app/demo》
发行版本日志:《CHANGELOG.md》
编译,运行,体验功能
编译
方式1,从源码自行编译
$export GO111MODULE=on && export GOPROXY=https://goproxy.cn,https://goproxy.io,direct
$make
方式2,直接下载编译好的二进制可执行文件
点我打开《github lal最新release版本页面》,下载对应平台编译好的二进制可执行文件的zip压缩包。
运行
$./bin/lalserver -c conf/lalserver.conf.json
体验功能
快速体验lalserver服务器见: 《常见推拉流客户端软件的使用方式》
lalserver详细配置见: 《配置注释文档》
源码框架
简单来说,源码在pkg/
,app/lalserver/
,app/demo/
三个目录下。
pkg/
:存放各package包,供本repo的程序以及其他业务方使用app/lalserver
:基于lal编写的一个通用流媒体服务器程序入口app/demo/
:存放各种基于lal/pkg
开发的小程序(小工具),一个子目录是一个程序,详情见各源码文件中头部的说明
目前唯一的第三方依赖(我自己写的Go基础库): github.com/q191201771/naza
联系我
- 个人微信号: q191201771
- 个人QQ号: 191201771
- 微信群: 加我微信好友后,告诉我拉你进群
- QQ群: 1090510973
欢迎任何技术和非技术的交流。
目前lal正在收集新一轮需求中。
并且,lal也十分欢迎开源贡献者的加入。提PR前请先阅读:《yoko版本PR规范》
性能测试,测试过的第三方客户端
项目star趋势图
觉得项目还不错,就点个star支持一下吧 :)