/plugin-rtsp

rtsp协议实现,接受RTSP推流以及提供拉流转发功能

Primary LanguageGoMIT LicenseMIT

RTSP插件

插件地址

github.com/Monibuca/plugin-rtsp

插件引入

import (
    _ "github.com/Monibuca/plugin-rtsp"
)

默认插件配置

[RTSP]
# 端口接收推流
ListenAddr = ":554"
Reconnect = true
[RTSP.AutoPullList]
"live/rtsp1" = "rtsp://admin:admin@192.168.1.212:554/cam/realmonitor?channel=1&subtype=1"
"live/rtsp2" = "rtsp://admin:admin@192.168.1.212:554/cam/realmonitor?channel=2&subtype=1"
  • ListenAddr是监听的地址
  • Reconnect 是否自动重连
  • RTSP.AutoPullList 可以配置多项,用于自动拉流,key是streamPath,value是远程rtsp地址

特殊功能

当自动拉流列表中当的streamPath为sub/xxx 这种形式的话,在gb28181的分屏显示时会优先采用rtsp流,已实现分屏观看子码流效果

插件功能

接收RTSP协议的推流

例如通过ffmpeg向m7s进行推流

ffmpeg -i **** rtsp://localhost/live/test

会在m7s内部形成一个名为live/test的流

从远程拉取rtsp到m7s中

可调用接口 /api/rtsp/pull?target=[RTSP地址]&streamPath=[流标识]

使用编程方式拉流

new(RTSPClient).PullStream("live/user1","rtsp://xxx.xxx.xxx.xxx/live/user1") 

罗列所有的rtsp协议的流

可调用接口 /api/rtsp/list

从m7s中拉取rtsp协议流

直接通过协议rtsp://xxx.xxx.xxx.xxx/live/user1 即可播放

h265 编码拉流尚未实现,敬请期待