Files
gb28181/internal/web/api/zlm_webhook_param.go
2025-06-14 01:20:46 +08:00

216 lines
8.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package api
// 注销
// {
// "mediaServerId" : "your_server_id",
// "app" : "live",
// "regist" : false,
// "schema" : "rtsp",
// "stream" : "obs",
// "vhost" : "__defaultVhost__"
// }
// 注册
//
// {
// "regist" : true,
// "aliveSecond": 0, #存活时间,单位秒
// "app": "live", # 应用名
// "bytesSpeed": 0, #数据产生速度单位byte/s
// "createStamp": 1617956908, #GMT unix系统时间戳单位秒
// "mediaServerId": "your_server_id", # 服务器id
// "originSock": {
// "identifier": "000001C257D35E40",
// "local_ip": "172.26.20.112", # 本机ip
// "local_port": 50166, # 本机端口
// "peer_ip": "172.26.20.112", # 对端ip
// "peer_port": 50155 # 对端port
// },
// "originType": 8, # 产生源类型,包括 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7,rtc_push=8
// "originTypeStr": "rtc_push",
// "originUrl": "", #产生源的url
// "readerCount": 0, # 本协议观看人数
// "schema": "rtsp", # 协议
// "stream": "test", # 流id
// "totalReaderCount": 0, # 观看总人数包括hls/rtsp/rtmp/http-flv/ws-flv/rtc
// "tracks": [{
// "channels" : 1, # 音频通道数
// "codec_id" : 2, # H264 = 0, H265 = 1, AAC = 2, G711A = 3, G711U = 4
// "codec_id_name" : "CodecAAC", # 编码类型名称
// "codec_type" : 1, # Video = 0, Audio = 1
// "ready" : true, # 轨道是否准备就绪
// "sample_bit" : 16, # 音频采样位数
// "sample_rate" : 8000 # 音频采样率
// },
// {
// "codec_id" : 0, # H264 = 0, H265 = 1, AAC = 2, G711A = 3, G711U = 4
// "codec_id_name" : "CodecH264", # 编码类型名称
// "codec_type" : 0, # Video = 0, Audio = 1
// "fps" : 59, # 视频fps
// "height" : 720, # 视频高
// "ready" : true, # 轨道是否准备就绪
// "width" : 1280 # 视频宽
// }],
// "vhost": "__defaultVhost__"
// }
type onStreamChangedInput struct {
Regist bool `json:"regist"`
AliveSecond int `json:"aliveSecond"`
App string `json:"app"`
BytesSpeed int `json:"bytesSpeed"`
CreateStamp int `json:"createStamp"`
MediaServerID string `json:"mediaServerId"`
OriginSock OriginSock `json:"originSock"`
OriginType int `json:"originType"`
OriginTypeStr string `json:"originTypeStr"`
OriginURL string `json:"originUrl"`
ReaderCount int `json:"readerCount"`
Schema string `json:"schema"`
Stream string `json:"stream"`
TotalReaderCount int `json:"totalReaderCount"`
Tracks []Tracks `json:"tracks"`
Vhost string `json:"vhost"`
}
type OriginSock struct {
Identifier string `json:"identifier"`
LocalIP string `json:"local_ip"`
LocalPort int `json:"local_port"`
PeerIP string `json:"peer_ip"`
PeerPort int `json:"peer_port"`
}
type Tracks struct {
Channels int `json:"channels,omitempty"`
CodecID int `json:"codec_id"`
CodecIDName string `json:"codec_id_name"`
CodecType int `json:"codec_type"`
Ready bool `json:"ready"`
SampleBit int `json:"sample_bit,omitempty"`
SampleRate int `json:"sample_rate,omitempty"`
Fps float32 `json:"fps,omitempty"`
Height int `json:"height,omitempty"`
Width int `json:"width,omitempty"`
}
// 心跳
// {
// "data" : {
// "Buffer" : 12,
// "BufferLikeString" : 0,
// "BufferList" : 0,
// "BufferRaw" : 12,
// "Frame" : 0,
// "FrameImp" : 0,
// "MediaSource" : 0,
// "MultiMediaSourceMuxer" : 0,
// "RtmpPacket" : 0,
// "RtpPacket" : 0,
// "Socket" : 108,
// "TcpClient" : 0,
// "TcpServer" : 96,
// "TcpSession" : 0,
// "UdpServer" : 12,
// "UdpSession" : 0
// },
// "mediaServerId" : "192.168.255.10"
// }
type onServerKeepaliveInput struct {
Data Data `json:"data"`
HookIndex int `json:"hook_index"`
MediaServerID string `json:"mediaServerId"`
}
type Data struct {
Buffer int `json:"Buffer"`
BufferLikeString int `json:"BufferLikeString"`
BufferList int `json:"BufferList"`
BufferRaw int `json:"BufferRaw"`
Frame int `json:"Frame"`
FrameImp int `json:"FrameImp"`
MediaSource int `json:"MediaSource"`
MultiMediaSourceMuxer int `json:"MultiMediaSourceMuxer"`
RtmpPacket int `json:"RtmpPacket"`
RtpPacket int `json:"RtpPacket"`
Socket int `json:"Socket"`
TCPClient int `json:"TcpClient"`
TCPServer int `json:"TcpServer"`
TCPSession int `json:"TcpSession"`
UDPServer int `json:"UdpServer"`
UDPSession int `json:"UdpSession"`
}
type onPublishInput struct {
MediaServerID string `json:"mediaServerId"`
App string `json:"app"`
ID string `json:"id"` // TCP 链接唯一 ID
IP string `json:"ip"` // 推流器 ip
Params string `json:"params"` // 推流 url 参数
Port int `json:"port"` // 推流器端口号
Schema string `json:"schema"` // 推流的协议,可能是 rtsp、rtmp
Stream string `json:"stream"`
Vhost string `json:"vhost"` // 流虚拟主机
}
type onPublishOutput struct {
DefaultOutput
AddMuteAudio *bool `json:"add_mute_audio,omitempty"`
ContinuePushMs *int `json:"continue_push_ms,omitempty"`
EnableAudio *bool `json:"enable_audio,omitempty"`
EnableFmp4 *bool `json:"enable_fmp4,omitempty"`
EnableHls *bool `json:"enable_hls,omitempty"`
EnableHlsFmp4 *bool `json:"enable_hls_fmp4,omitempty"`
EnableMp4 *bool `json:"enable_mp4,omitempty"`
EnableRtmp *bool `json:"enable_rtmp,omitempty"`
EnableRtsp *bool `json:"enable_rtsp,omitempty"`
EnableTs *bool `json:"enable_ts,omitempty"`
HlsSavePath *string `json:"hls_save_path,omitempty"`
ModifyStamp *bool `json:"modify_stamp,omitempty"`
Mp4AsPlayer *bool `json:"mp4_as_player,omitempty"`
Mp4MaxSecond *int `json:"mp4_max_second,omitempty"`
Mp4SavePath *string `json:"mp4_save_path,omitempty"`
AutoClose *bool `json:"auto_close,omitempty"`
StreamReplace *string `json:"stream_replace,omitempty"`
}
type DefaultOutput struct {
Code int `json:"code"` // 错误代码0 代表允许推流
Msg string `json:"msg"` // 不允许推流时的错误提示
}
func newDefaultOutputOK() DefaultOutput {
return DefaultOutput{Code: 0, Msg: "success"}
}
type onStreamNoneReaderOutput struct {
Code int `json:"code"`
Close bool `json:"close"`
}
type onStreamNoneReaderInput struct {
App string `json:"app"` // 流应用名
Schema string `json:"schema"` // rtsp 或 rtmp
Stream string `json:"stream"` // 流 ID
Vhost string `json:"vhost"` // 流虚拟主机
MediaServerID string `json:"mediaServerId"` // 服务器 id,通过配置文件设置
}
type onRTPServerTimeoutInput struct {
LocalPort int `json:"local_port"` // openRtpServer 输入的参数
ReUsePort bool `json:"re_use_port"` // openRtpServer 输入的参数
SSRC uint32 `json:"ssrc"` // openRtpServer 输入的参数
StreamID string `json:"stream_id"` // openRtpServer 输入的参数
TCPMode int `json:"tcp_mode"` // openRtpServer 输入的参数
MediaServerID string `json:"mediaServerId"` // 服务器 id,通过配置文件设置
}
type onStreamNotFoundInput struct {
MediaServerID string `json:"mediaServerId"` // 服务器 id,通过配置文件设置
App string `json:"app"` // 流应用名
ID string `json:"id"` // TCP链接唯一ID
IP string `json:"ip"` // 播放器ip
Params string `json:"params"` // 播放url参数
Port int `json:"port"` // 播放器端口号
Schema string `json:"schema"` // 播放的协议可能是rtsp、rtmp、http
Stream string `json:"stream"` // 流 ID
Vhost string `json:"vhost"` // 流虚拟主机
}