Class ZlmApiController
java.lang.Object
io.github.lunasaw.zlm.api.controller.ZlmApiController
@RestController
@ConditionalOnProperty(value="zlm.enable",
havingValue="true")
@RequestMapping("/zlm/api")
public class ZlmApiController
extends Object
- Version:
- 1.0
- Author:
- luna
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddFFmpegSource(StreamFfmpegItem streamFfmpegItem) 添加FFmpeg拉流代理添加探针addStreamProxy(StreamProxyItem streamProxyItem) 添加代理拉流addStreamPusherProxy(StreamPusherItem streamPusherItem) 添加推流代理addWebrtcRoomKeeper(Map<String, String> params) WebRTC 注册到信令服务器broadcastMessage(Map<String, String> params) 广播webrtc datachannel消息closeRtpServer(String streamId) 关闭RTP服务器closeStream(MediaReq mediaReq) 关断单个流closeStreams(CloseStreamsReq closeStreamsReq) 批量关断流连接RTP服务器deleteRecordDirectory(Map<String, String> params) 删除录像文件夹deleteSnapDirectory(MediaReq mediaReq) 删除截图文件夹deleteWebrtc(String id, String token) 删除 WebRTC 连接delFFmpegSource(String key) 关闭FFmpeg拉流代理delStreamProxy(String key) 关闭拉流代理关闭推流代理delWebrtcRoomKeeper(String roomKey) WebRTC 从信令服务器注销下载二进制(如配置文件 downloadBin,下载到服务器临时目录)downloadFile(String filePath, String saveName) 下载文件(下载到服务器临时目录,返回落盘绝对路径)获取所有节点列表getAllSession(String localPort, String peerIp) 获取所有TcpSession列表getApiList(Map<String, String> params) 获取API列表getMediaInfo(MediaReq mediaReq) 获取流信息getMediaList(MediaReq mediaReq) 获取流列表getMediaListByNode(String nodeId, MediaReq mediaReq) 指定节点获取流列表getMediaPlayerList(MediaReq mediaReq) 获取媒体流播放器列表getMp4RecordFile(RecordReq recordReq) 获取录制文件列表getMp4RecordSummary(Map<String, String> params) 查询文件概览getOnvifStreamUrl(String onvifUrl) 获取 ONVIF 设备流地址getPlaybackUrls(MediaReq mediaReq) 获取播放地址getProxyInfo(Map<String, String> params) 获取拉流代理信息getProxyPusherInfo(Map<String, String> params) 获取推流代理信息getRtpInfo(String streamId) 获取rtp推流信息获取服务器配置getSnap(SnapshotReq snapshotReq) 获取截图getSnapUrl(SnapshotReq snapshotReq) 获取截图URL - 返回可访问的URL路径获取主要对象个数getStorageSpace(Map<String, String> params) 获取存储信息获取网络线程负载获取版本信息getVersionByNode(String nodeId) 指定节点获取版本信息WebRTC 代理播放器信息获取后台线程负载处理节点不存在异常isMediaOnline(MediaReq mediaReq) 流是否在线isRecording(RecordReq recordReq) 是否正在录制kickSession(String sessionId) 断开tcp连接kickSessions(Map<String, String> params) 批量断开tcp连接获取FFmpeg拉流代理列表listRtpSender(MediaReq mediaReq) 获取rtp发送列表获取RTP服务器列表获取拉流代理列表获取推流代理列表WebRTC 房间守护者列表WebRTC 房间列表loadMP4File(Map<String, String> params) 点播mp4文件登录鉴权logout()注销鉴权创建RTP服务器创建多路复用RTP服务器pauseRtpCheck(String streamId) 暂停RTP超时检查restartServer(Map<String, String> params) 重启服务器resumeRtpCheck(String streamId) 恢复RTP超时检查searchOnvifDevice(String subnetPrefix) 搜索 ONVIF 设备seekRecordStamp(RecordReq recordReq) 设置录像流播放位置setRecordSpeed(RecordReq recordReq) 设置录像速度setServerConfig(Map<String, String> params) 设置服务器配置stackReset(StackReq req) 多屏拼接 - 重置stackStart(StackReq req) 多屏拼接 - 开始多屏拼接 - 停止startMultiMp4Publish(Map<String, String> params) 多文件推流startRecord(RecordReq recordReq) 开始录制startRecordTask(RecordTaskReq recordTaskReq) 添加录制任务(支持回溯录制)开始发送rtp开始tcp passive被动发送rtpRTP 双向对讲推流stopMultiMp4Publish(Map<String, String> params) 关闭多文件推流stopRecord(RecordReq recordReq) 停止录制停止发送rtpupdateRtpServerSSRC(String streamId, String ssrc) 更新RTP服务器过滤SSRCWebRTC 交互(body 为 SDP offer,返回 SDP answer)WebRTC WHEP 播放(body 为 SDP offer)WebRTC WHIP 推流(body 为 SDP offer)
-
Constructor Details
-
ZlmApiController
public ZlmApiController()
-
-
Method Details
-
getVersion
获取版本信息 -
getApiList
@GetMapping("/api/list") public ServerResponse<List<String>> getApiList(@RequestParam(required=false) Map<String, String> params) 获取API列表 -
getThreadsLoad
获取网络线程负载 -
getStatistic
获取主要对象个数 -
getWorkThreadsLoad
获取后台线程负载 -
getServerConfig
获取服务器配置 -
setServerConfig
@PostMapping("/server/config") public ServerResponse<String> setServerConfig(@RequestBody Map<String, String> params) 设置服务器配置 -
restartServer
@PostMapping("/server/restart") public ServerResponse<Object> restartServer(@RequestBody Map<String, String> params) 重启服务器 -
getMediaList
@PostMapping("/media/list") public ServerResponse<List<MediaData>> getMediaList(@RequestBody MediaReq mediaReq) 获取流列表 -
closeStream
@PostMapping("/media/close") public ServerResponse<String> closeStream(@RequestBody MediaReq mediaReq) 关断单个流 -
closeStreams
@PostMapping("/media/close-batch") public ServerResponse closeStreams(@RequestBody CloseStreamsReq closeStreamsReq) 批量关断流 -
isMediaOnline
@PostMapping("/media/online") public MediaOnlineStatus isMediaOnline(@RequestBody MediaReq mediaReq) 流是否在线 -
getMediaPlayerList
@PostMapping("/media/player/list") public ServerResponse<MediaPlayer> getMediaPlayerList(@RequestBody MediaReq mediaReq) 获取媒体流播放器列表 -
getMediaInfo
@PostMapping("/media/info") public ServerResponse<MediaInfo> getMediaInfo(@RequestBody MediaReq mediaReq) 获取流信息 -
getPlaybackUrls
@PostMapping("/media/play-urls") public ServerResponse<PlayUrl> getPlaybackUrls(@RequestBody MediaReq mediaReq) 获取播放地址 -
broadcastMessage
@PostMapping("/broadcast/message") public ServerResponse broadcastMessage(@RequestBody Map<String, String> params) 广播webrtc datachannel消息 -
getAllSession
@GetMapping("/session/list") public ServerResponse<List<TcpLink>> getAllSession(@RequestParam(required=false) String localPort, @RequestParam(required=false) String peerIp) 获取所有TcpSession列表 -
kickSession
@DeleteMapping("/session/{sessionId}") public ServerResponse<String> kickSession(@PathVariable("sessionId") String sessionId) 断开tcp连接 -
kickSessions
@PostMapping("/session/kick-batch") public ServerResponse<String> kickSessions(@RequestBody Map<String, String> params) 批量断开tcp连接 -
addStreamProxy
@PostMapping("/proxy/add") public ServerResponse<StreamKey> addStreamProxy(@RequestBody StreamProxyItem streamProxyItem) 添加代理拉流 -
delStreamProxy
@DeleteMapping("/proxy/{key}") public ServerResponse<StreamKey.StringDelFlag> delStreamProxy(@PathVariable("key") String key) 关闭拉流代理 -
getProxyInfo
@PostMapping("/proxy/info") public ServerResponse getProxyInfo(@RequestBody Map<String, String> params) 获取拉流代理信息 -
addStreamPusherProxy
@PostMapping("/pusher/add") public ServerResponse<StreamKey> addStreamPusherProxy(@RequestBody StreamPusherItem streamPusherItem) 添加推流代理 -
delStreamPusherProxy
@DeleteMapping("/pusher/{key}") public ServerResponse<StreamKey.StringDelFlag> delStreamPusherProxy(@PathVariable("key") String key) 关闭推流代理 -
getProxyPusherInfo
@PostMapping("/pusher/info") public ServerResponse getProxyPusherInfo(@RequestBody Map<String, String> params) 获取推流代理信息 -
addFFmpegSource
@PostMapping("/ffmpeg/add") public ServerResponse<StreamKey> addFFmpegSource(@RequestBody StreamFfmpegItem streamFfmpegItem) 添加FFmpeg拉流代理 -
delFFmpegSource
@DeleteMapping("/ffmpeg/{key}") public ServerResponse<StreamKey.StringDelFlag> delFFmpegSource(@PathVariable("key") String key) 关闭FFmpeg拉流代理 -
listFFmpegSource
获取FFmpeg拉流代理列表 -
listStreamProxy
获取拉流代理列表 -
listStreamPusherProxy
获取推流代理列表 -
getMp4RecordFile
@PostMapping("/record/files") public ServerResponse<Mp4RecordFile> getMp4RecordFile(@RequestBody RecordReq recordReq) 获取录制文件列表 -
deleteRecordDirectory
@PostMapping("/record/delete-directory") public DeleteRecordDirectory deleteRecordDirectory(@RequestBody Map<String, String> params) 删除录像文件夹 -
startRecord
@PostMapping("/record/start") public ServerResponse<String> startRecord(@RequestBody RecordReq recordReq) 开始录制 -
setRecordSpeed
@PostMapping("/record/speed") public ServerResponse<String> setRecordSpeed(@RequestBody RecordReq recordReq) 设置录像速度 -
seekRecordStamp
@PostMapping("/record/seek") public ServerResponse<String> seekRecordStamp(@RequestBody RecordReq recordReq) 设置录像流播放位置 -
stopRecord
@PostMapping("/record/stop") public ServerResponse<String> stopRecord(@RequestBody RecordReq recordReq) 停止录制 -
isRecording
@PostMapping("/record/status") public ServerResponse<String> isRecording(@RequestBody RecordReq recordReq) 是否正在录制 -
getMp4RecordSummary
@PostMapping("/record/summary") public ServerResponse<String> getMp4RecordSummary(@RequestBody Map<String, String> params) 查询文件概览 -
startRecordTask
@PostMapping("/record/task/start") public ServerResponse<String> startRecordTask(@RequestBody RecordTaskReq recordTaskReq) 添加录制任务(支持回溯录制) -
getSnap
获取截图 -
getSnapUrl
@PostMapping("/snapshot-url") public ServerResponse<String> getSnapUrl(@RequestBody SnapshotReq snapshotReq) 获取截图URL - 返回可访问的URL路径 -
deleteSnapDirectory
@PostMapping("/snapshot/delete") public ServerResponse<String> deleteSnapDirectory(@RequestBody MediaReq mediaReq) 删除截图文件夹 -
addProbe
@PostMapping("/probe/add") public ServerResponse<String> addProbe(@RequestBody MediaReq mediaReq, @RequestParam("probeMs") int probeMs) 添加探针 -
getRtpInfo
@GetMapping("/rtp/info/{streamId}") public RtpInfoResult getRtpInfo(@PathVariable("streamId") String streamId) 获取rtp推流信息 -
openRtpServer
@PostMapping("/rtp/server/open") public OpenRtpServerResult openRtpServer(@RequestBody OpenRtpServerReq req) 创建RTP服务器 -
openRtpServerMultiplex
@PostMapping("/rtp/server/open-multiplex") public OpenRtpServerResult openRtpServerMultiplex(@RequestBody OpenRtpServerReq req) 创建多路复用RTP服务器 -
connectRtpServer
@PostMapping("/rtp/server/connect") public OpenRtpServerResult connectRtpServer(@RequestBody ConnectRtpServerReq req) 连接RTP服务器 -
closeRtpServer
@DeleteMapping("/rtp/server/{streamId}") public CloseRtpServerResult closeRtpServer(@PathVariable("streamId") String streamId) 关闭RTP服务器 -
updateRtpServerSSRC
@PutMapping("/rtp/server/{streamId}/ssrc/{ssrc}") public ServerResponse<String> updateRtpServerSSRC(@PathVariable("streamId") String streamId, @PathVariable("ssrc") String ssrc) 更新RTP服务器过滤SSRC -
pauseRtpCheck
@PostMapping("/rtp/server/{streamId}/pause-check") public ServerResponse<String> pauseRtpCheck(@PathVariable("streamId") String streamId) 暂停RTP超时检查 -
resumeRtpCheck
@PostMapping("/rtp/server/{streamId}/resume-check") public ServerResponse<String> resumeRtpCheck(@PathVariable("streamId") String streamId) 恢复RTP超时检查 -
listRtpServer
获取RTP服务器列表 -
startSendRtp
@PostMapping("/rtp/send/start") public StartSendRtpResult startSendRtp(@RequestBody StartSendRtpReq req) 开始发送rtp -
startSendRtpPassive
@PostMapping("/rtp/send/start-passive") public StartSendRtpResult startSendRtpPassive(@RequestBody StartSendRtpReq req) 开始tcp passive被动发送rtp -
stopSendRtp
@PostMapping("/rtp/send/stop") public ServerResponse<String> stopSendRtp(@RequestBody CloseSendRtpReq req) 停止发送rtp -
listRtpSender
@PostMapping("/rtp/sender/list") public ServerResponse<List<String>> listRtpSender(@RequestBody MediaReq mediaReq) 获取rtp发送列表 -
startSendRtpTalk
@PostMapping("/rtp/send/start-talk") public StartSendRtpResult startSendRtpTalk(@RequestBody StartSendRtpTalkReq req) RTP 双向对讲推流 -
startMultiMp4Publish
@PostMapping("/mp4/publish/start") public ServerResponse startMultiMp4Publish(@RequestBody Map<String, String> params) 多文件推流 -
stopMultiMp4Publish
@PostMapping("/mp4/publish/stop") public ServerResponse stopMultiMp4Publish(@RequestBody Map<String, String> params) 关闭多文件推流 -
loadMP4File
点播mp4文件 -
getStorageSpace
@PostMapping("/storage/space") public ServerResponse<String> getStorageSpace(@RequestBody Map<String, String> params) 获取存储信息 -
downloadFile
@GetMapping("/download/file") public ServerResponse<String> downloadFile(@RequestParam("filePath") String filePath, @RequestParam(value="saveName",required=false) String saveName) 下载文件(下载到服务器临时目录,返回落盘绝对路径) -
downloadBin
下载二进制(如配置文件 downloadBin,下载到服务器临时目录) -
stackStart
多屏拼接 - 开始 -
stackReset
多屏拼接 - 重置 -
stackStop
@DeleteMapping("/stack/{id}") public ServerResponse<String> stackStop(@PathVariable("id") String id) 多屏拼接 - 停止 -
addWebrtcRoomKeeper
@PostMapping("/webrtc/room-keeper/add") public ServerResponse<String> addWebrtcRoomKeeper(@RequestBody Map<String, String> params) WebRTC 注册到信令服务器 -
delWebrtcRoomKeeper
@DeleteMapping("/webrtc/room-keeper/{roomKey}") public ServerResponse<String> delWebrtcRoomKeeper(@PathVariable("roomKey") String roomKey) WebRTC 从信令服务器注销 -
listWebrtcRoomKeepers
WebRTC 房间守护者列表 -
listWebrtcRooms
WebRTC 房间列表 -
getWebrtcProxyPlayerInfo
@GetMapping("/webrtc/proxy-player/{key}") public ServerResponse<String> getWebrtcProxyPlayerInfo(@PathVariable("key") String key) WebRTC 代理播放器信息 -
webrtc
@PostMapping(value="/webrtc", consumes="text/plain", produces="text/plain") public String webrtc(@RequestParam("type") String type, @RequestParam("app") String app, @RequestParam("stream") String stream, @RequestBody String sdpOffer) WebRTC 交互(body 为 SDP offer,返回 SDP answer) -
whip
@PostMapping(value="/webrtc/whip", consumes="application/sdp", produces="application/sdp") public String whip(@RequestParam("app") String app, @RequestParam("stream") String stream, @RequestBody String sdpOffer) WebRTC WHIP 推流(body 为 SDP offer) -
whep
@PostMapping(value="/webrtc/whep", consumes="application/sdp", produces="application/sdp") public String whep(@RequestParam("app") String app, @RequestParam("stream") String stream, @RequestBody String sdpOffer) WebRTC WHEP 播放(body 为 SDP offer) -
deleteWebrtc
@DeleteMapping("/webrtc/{id}") public ServerResponse<String> deleteWebrtc(@PathVariable("id") String id, @RequestParam("token") String token) 删除 WebRTC 连接 -
searchOnvifDevice
@GetMapping("/onvif/search") public ServerResponse<List<String>> searchOnvifDevice(@RequestParam("subnetPrefix") String subnetPrefix) 搜索 ONVIF 设备 -
getOnvifStreamUrl
@GetMapping("/onvif/stream-url") public ServerResponse<String> getOnvifStreamUrl(@RequestParam("onvifUrl") String onvifUrl) 获取 ONVIF 设备流地址 -
login
@GetMapping("/auth/login") public ServerResponse<String> login(@RequestParam("cookie") String cookie) 登录鉴权 -
logout
注销鉴权 -
getVersionByNode
@GetMapping("/node/{nodeId}/version") public ServerResponse<Version> getVersionByNode(@PathVariable("nodeId") String nodeId) 指定节点获取版本信息 -
getMediaListByNode
@PostMapping("/node/{nodeId}/media/list") public ServerResponse<List<MediaData>> getMediaListByNode(@PathVariable("nodeId") String nodeId, @RequestBody MediaReq mediaReq) 指定节点获取流列表 -
getAllNodes
获取所有节点列表 -
handleIllegalArgumentException
@ExceptionHandler(java.lang.IllegalArgumentException.class) public ServerResponse<String> handleIllegalArgumentException(IllegalArgumentException e) 处理节点不存在异常
-