- ▦ 一. lalserver 简介
- ✒ lalserver 特性
- ✒ 协议转换支持情况
- ▦ 二. lalserver 安装、运行
- ✒ 方式 1, 源码编译安装
- ✒ 方式 2, Docker 镜像
- ✒ 方式 3, 下载编译好的二进制可执行文件
- ▦ 三. lalserver 使用
- ✒ 各协议推拉流 url 地址列表
- ✒ lalserver 配置文件
- ✒ lalserver HTTP 事件和接口
- ✒ lalserver 进阶
- ▦ 四. 重新认识 lal
- ✒ lal 的三层结构
- ✦ 其他 demo
- ✦ 流媒体协议栈库 package/library
- ✦ Golang 通用基础库-naza
- ✒ lalext
- ✦ WebRTC
- ✦ MCU 合流
- ▦ 五. 联系作者
lalserver是纯 Golang 开发的流媒体(直播音视频网络传输)服务器。目前已支持 RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket[S]-FLV/TS 协议。
c/c++
开发服务处于同一水平见: 附录-协议间转换支持情况
lalserver 支持 3 种安装、运行方式:
下载源码:
git clone https://github.com/q191201771/lal.git
编译:
cd lal
export GO111MODULE=on && export GOPROXY=https://goproxy.cn,https://goproxy.io,direct
make
tips:
如果使用 GoLand 等 IDE 编译,那么编译lal/app/lalserver
目录即可。
如果没有安装 Go 编译器,可参考《 CentOS 或 macOS 安装 GoLang 》,windows 操作系统可自行上网搜索教程。
运行:
./bin/lalserver -c conf/lalserver.conf.json
注意,windows 平台将路径分隔符/
换成\
下载镜像:
docker pull q191201771/lal
运行镜像:
$docker run -it -p 1935:1935 -p 8080:8080 -p 4433:4433 -p 5544:5544 -p 8083:8083 -p 8084:8084 -p 30000-30100:30000-30100/udp q191201771/lal /lal/bin/lalserver -c /lal/conf/lalserver.conf.json
如果想构建自己的 Docker 镜像,可参考 附录-构建自己的 Docker 镜像
lal 提供linux/macos/windows
平台编译好的 lal 二进制可执行文件(zip 压缩包形式)。
下载地址见: 《 github lal 最新 release 版本页面》
下载好的文件按方式 1 运行,不再赘述。
lalserver 启动成功后,就可以开始使用了。
作为流媒体服务,最主要的功能就是流数据转发。比如:
使用 ffmpeg 推 rtmp 流:
ffmpeg -re -i demo.flv -c:a copy -c:v copy -f flv rtmp://127.0.0.1:1935/live/test110
使用 ffplay 拉 rtmp 流播放:
ffplay rtmp://127.0.0.1/live/test110
更多协议见: lalserver 各协议推拉流 url 地址列表
tips:
更多第三方客户端的使用方法见: 常见推拉流客户端信息汇总
如果你想进一步了解 lalserver 的功能,可以看看: lalserver 配置文件说明
通过 lalserver 提供的丰富的 HTTP 接口,业务方可以在保持 lalserver 独立运行的情况下,使用自身熟悉的语言,轻松定制符合自身逻辑的业务系统。
lal 项目中,除了/app/lalserver
这个比较核心的服务之外,在/app/demo
目录下还额外提供了一些小应用,比如推、拉流客户端,以及压测工具,流分析工具,lalserver 集群的调度示例程序等。
这些 demo 你既可以直接使用,又向你演示了 lal 所提供的协议栈如何使用。
了解更多请访问: Demo 简介
lal 中的协议栈都是独立的,与应用分层设计的。并且客户端和服务端的协议栈都有。
业务方可以在自身的应用中集成 lal 的协议栈 package 库。
lal 将非流媒体特有的通用基础库抽象在一个独立的 github repo naza中。
了解更多请访问: 《 naza github 地址》: https://github.com/q191201771/naza
站在巨人的肩膀上才能看的更远。lal 在另一个 github repo lalext中,将 lal 的代码与第三方的库结合,实现了更丰富的功能。
rtmp 转 WebRTC 的网关
了解更多请访问: 《 lalext github 地址》: https://github.com/q191201771/lalext
作者微信,扫码加好友:
欢迎任何技术和非技术的交流。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.