LAL-开源Go语言音视频流媒体服务器
Posted 就想叫yoko
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAL-开源Go语言音视频流媒体服务器相关的知识,希望对你有一定的参考价值。
https://github.com/q191201771...
中文文档
LAL is an audio/video live streaming broadcast server written in Go. It\'s sort of like nginx-rtmp-module
, but easier to use and with more features, e.g RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]-FLV/HTTP-TS, WebSocket-FLV/TS, H264/H265/AAC, relay, cluster, record, HTTP API/Notify, GOP cache.
And more than a server, act as package and client
Install
There are 2 ways of installing lal.
Prebuilt binaries
Prebuilt binaries for Linux, macOS(Darwin), Windows are available in the lal github releases page. Naturally, using the latest release binary is the recommended way. The naming format is lal_<version>_<platform>.zip
, e.g. lal_v0.20.0_linux.zip
LAL could also be built from the source wherever the Go compiler toolchain can run, e.g. for other architectures including arm32 and mipsle which have been tested by the community.
Building from source
First, make sure that Go version >= 1.13
For Linux/macOS user:
$git clone https://github.com/q191201771/lal.git
$cd lal
$make build
Then all binaries go into the ./bin/
directory. That\'s it.
For an experienced gopher(and Windows user), the only thing you should be concern is that the main function
is under the ./app/lalserver
directory. So you can also:
$git clone https://github.com/q191201771/lal.git
$cd lal/app/lalserver
$go build
Or using whatever IDEs you\'d like.
So far, the only direct and indirect dependency of lal is naza(A basic Go utility library) which is also written by myself. This leads to less dependency or version manager issues.
Using
Running lalserver:
$./bin/lalserver -c ./conf/lalserver.conf.json
Using whatever clients you are familiar with to interact with lalserver.
For instance, publish rtmp stream to lalserver via ffmpeg:
$ffmpeg -re -i demo.flv -c:a copy -c:v copy -f flv rtmp://127.0.0.1:1935/live/test110
Play multi protocol stream from lalserver via ffplay:
$ffplay rtmp://127.0.0.1/live/test110
$ffplay http://127.0.0.1:8080/live/test110.flv
$ffplay http://127.0.0.1:8081/hls/test110/playlist.m3u8
$ffplay http://127.0.0.1:8081/hls/test110/record.m3u8
$ffplay http://127.0.0.1:8082/live/test110.ts
More than a server, act as package and client
Besides a live stream broadcast server which named lalserver
precisely, project lal
even provides many other applications, e.g. push/pull/remux stream clients, bench tools, examples. Each subdirectory under the ./app/demo
directory represents a tiny demo.
Our goals are not only a production server but also a simple package with a well-defined, user-facing API, so that users can build their own applications on it.
LAL
stands for Live And Live
if you may wonder.
Contact
Bugs, questions, suggestions, anything related or not, feel free to contact me with lal github issues.
License
MIT, see License.
https://github.com/q191201771...
以上是关于LAL-开源Go语言音视频流媒体服务器的主要内容,如果未能解决你的问题,请参考以下文章
一个开源的Go语言实现的流媒体服务器开发框架——Monibuca
Go语言流媒体服务lalserver中转推模块PullRtmpPushRtmp实现分享
好课分享: Go语言实战流媒体视频网站,高效学习Go高性能开发 百度云