liusuyi
2025-10-10 b159a0c7dea033f833bcc4554e69ac420ce1d198
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package com.ard.vtdu.client;
 
import com.ard.vtdu.domain.*;
import com.dtflys.forest.annotation.*;
 
/**
 * @Description: mediamtx流媒体客户端
 * @ClassName: client
 * @Author: 刘苏义
 * @Date: 2023年07月06日9:51
 * @Version: 1.0
 **/
@BaseRequest(baseURL = "http://#{mediamtx.apiHost}:9997")
public interface MediaClient {
    /**
     * 增加路径配置
     */
    @Post("/v3/config/paths/add/{name}")
    public String addPath(@Var("name") String name, @JSONBody Conf body);
 
    /**
     * 修改路径配置
     */
    @Patch("/v3/config/paths/patch/{name}")
    public String editPath(@Var("name") String name, @JSONBody Conf body);
 
    /**
     * 移除路径配置
     */
    @Delete("/v3/config/paths/delete/{name}")
    public String removePath(@Var("name") String name);
 
    /**
     * 获取路径配置详情
     */
    @Get(url = "/v3/config/paths/get/{name}")
    public Conf getPathConfig(@Var("name") String name);
 
    /**
     * 获取路径配置列表
     */
    @Get(url = "/v3/config/paths/list?page={pageNum}&itemsPerPage={pageSize}")
    public PathConfig getPathConfigs(@Var("pageNum") Integer pageNum, @Var("pageSize") Integer pageSize);
 
    /**
     * 查询所有路径
     */
    @Get("/v3/paths/list?page={pageNum}&itemsPerPage={pageSize}")
    public Paths paths(@Var("pageNum") Integer pageNum, @Var("pageSize") Integer pageSize);
 
    /**
     * 查询所有rtsp会话
     */
    @Get("/v3/rtspsessions/list?page={pageNum}&itemsPerPage={pageSize}")
    public RtspSessions rtspsessions(@Var("pageNum") Integer pageNum, @Var("pageSize") Integer pageSize);
 
    /**
     * 查询所有webrt会话
     */
    @Get("/v3/webrtcsessions/list?page={pageNum}&itemsPerPage={pageSize}")
    public WebrtcSessions webrtcsessions(@Var("pageNum") Integer pageNum, @Var("pageSize") Integer pageSize);
 
    /**
     * 查询所有rtmp会话
     */
    @Get("/v3/rtmpconns/list?page={pageNum}&itemsPerPage={pageSize}")
    public RtmpSessions rtmpsessions(@Var("pageNum") Integer pageNum, @Var("pageSize") Integer pageSize);
 
    /**
     * 按sessionId查询rtsp会话
     */
    @Get("/v3/rtspsessions/get/{sessionId}")
    public RtspSession getRtspsessionById(@Var("sessionId") String sessionId);
 
    /**
     * 按sessionId查询webrtc会话
     */
    @Get("/v3/webrtcsessions/get/{sessionId}")
    public WebrtcSession getWebrtcsessionById(@Var("sessionId") String sessionId);
 
    /**
     * 按sessionId查询rtmp会话
     */
    @Get("/v3/rtmpconns/get/{sessionId}")
    public RtmpSession getRtmpsessionById(@Var("sessionId") String sessionId);
 
    /**
     * 按sessionId删除rtsp会话
     */
    @Post("/v3/rtspsessions/kick/{sessionId}")
    public String kickRtspSessions(@Var("sessionId") String sessionId);
 
    /**
     * 按sessionId删除rtmp连接
     */
    @Post("/v3/rtmpconns/kick/{sessionId}")
    public String kickRtmpSessions(@Var("sessionId") String sessionId);
 
    /**
     * 按sessionId删除webrtc会话
     */
    @Post("/v3/webrtcsessions/kick/{sessionId}")
    public String kickWebrtcSessions(@Var("sessionId") String sessionId);
 
    /**
     * 录像分段列表
     */
    @Get("/v3/recordings/list/")
    public Paths recordingList(@Query("pageNum") Integer pageNum, @Query("pageSize") Integer pageSize);
 
    /**
     * 通过路径名获取录像分段列表
     */
    @Get("/v3/recordings/get/{name}")
    public Item recordingListByName(@Var("name") String name);
 
    /**
     * 通过路径名和分段录像开始时间删除录像分段
     */
    @Delete("/v3/recordings/deletesegment")
    public String deleteSegment(@Query("path") String name, @Query("start") String start);
 
}