## 简介 基于GoLang实现的流媒体服务器,支持RTMP、GB28181、jt1078推流、jt1078转GB28181,输出rtmp/http-flv/ws-flv/webrtc/hls/rtsp等拉流协议,支持AAC/G711/G726/OPUS音频转码。 ## 编译 在使用之前,建议先阅读[LKM启动参数项说明](https://github.com/lkmio/lkm/wiki/Startup-Parameters)。如果你想修改源码,推荐阅读[LKM源码分析](https://github.com/lkmio/lkm/wiki/Source-Code-Analysis)。 ### 源码编译 git clone https://github.com/lkmio/lkm.git cd lkm go mod tidy go build ### 开启音频转码 -tags audio_transcode ### docker编译 ./build_docker_images.sh GOOS=linux GOARCH=amd64 支持修改`GOOS`和`GOARCH`参数来决定编译平台。默认编译制作`linx amd64`平台的镜像,如果宿主机有golang编译环境,则以宿主机平台为准。优先级如下:编译时指定平台 > 宿主机平台 > 默认平台。 ### docker启动 * 目前还未发布到dockerhub ``` sudo docker run --log-driver json-file --log-opt max-size=10m --network=host -it lkm:latest /bin/sh ``` ## RTMP推流 ffmpeg推流示例: ffmpeg -re -i ./232937384-1-208_baseline.mp4 -c copy -f flv rtmp://127.0.0.1/hls/mystream 拉流地址示例: [ "rtmp://192.168.2.148:1935/hls/mystream", "rtsp://192.168.2.148:554/hls/mystream", "http://192.168.2.148:8080/hls/mystream.flv", "http://192.168.2.148:8080/hls/mystream.rtc", "ws://192.168.2.148:8080/hls/mystream.flv" ] ## GB28181推流 1. [安装信令服务器](https://github.com/lkmio/gb-cms) 2. 配置[http hooks](https://github.com/lkmio/lkm/wiki/Startup-Parameters#hook) 3. 查询在线设备 > curl -v http://localhost:9000/api/v1/device/list 3. 使用ffplay播放 ``` // 实时预览-UDP方式 34020000001320000001设备下的34020000001310000001通道 ffplay -i rtmp://127.0.0.1/34020000001320000001/34020000001310000001 // 实时预览-TCP被动方式 34020000001320000001设备下的34020000001310000001通道 ffplay -i rtmp://127.0.0.1/34020000001320000001/34020000001310000001?setup=passive ffplay -i http://127.0.0.1:8080/34020000001320000001/34020000001310000001.flv?setup=passive ffplay -i http://127.0.0.1:8080/34020000001320000001/34020000001310000001.m3u8?setup=passive ffplay -i rtsp://test:123456@127.0.0.1/34020000001320000001/34020000001310000001?setup=passive // 回放-TCP被动方式 34020000001320000001设备下的34020000001310000001通道 ffplay -i rtmp://127.0.0.1/34020000001320000001/34020000001310000001.session_id_0?setup=passive&stream_type=playback&start_time=2024-06-18T15:20:56&end_time=2024-06-18T15:25:56 ``` ## JT1078推流 > 需自行安装信令服务, 告知设备推流到LKM的收流端口 > > [JT1078转GB28181](https://github.com/lkmio/gb-cms)