mirror of https://github.com/q191201771/lal.git
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.
4.9 KiB
4.9 KiB
工程目录说明
简单来说,主要源码在app/
和pkg/
两个目录下,后续我再画些源码架构图。
app/ ......各种main包的源码文件,一个子目录对应一个main包,即对应可生成一个可执行文件
|-- lal/ ......[最重要的] 流媒体服务器
|-- flvfile2rtmppush ......rtmp推流客户端,输入是本地flv文件
|-- rtmppull ......rtmp拉流客户端
|-- httpflvpull ......http-flv拉流客户端
|-- modflvfile ......修改本地flv文件
|-- flvfile2es ......将本地flv文件分离成h264/avc es流文件以及aac es流文件
pkg/ ......源码包
|-- httpflv/ ......http-flv协议
|-- rtmp/ ......rtmp协议
|-- util/ ......帮助类包
|-- bele/ ......大小端操作
|-- bininfo/ ......可执行文件版本等信息
|-- connstat/ ......连接超时信息
|-- errors/ ......错误处理
|-- log/ ......日志
|-- unique/ ......对象唯一ID
bin/ ......可执行文件输出目录
conf/ ......配置文件目录
编译和运行
$go get -u github.com/q191201771/lal
# cd into lal
$./build.sh
$./bin/lal -c conf/lal.conf.json
配置文件说明
{
"rtmp": {
"addr": ":19350" // rtmp服务监听的端口
}
}
roadmap
第一阶段:实现rtmp转发服务器
最终目标:
- 实现一个支持多种流媒体协议(比如rtmp, http-flv, hls, rtp/rtcp 等),多种底层传输协议(比如tcp, udp, srt, quic 等)的服务器
- 所有协议都以模块化的库形式提供给需要的用户使用
- 提供多种协议的推流客户端、拉流客户端,或者说演示demo
依赖
目前不依赖任何第三方库