优化拉流代理

This commit is contained in:
648540858
2024-07-19 17:54:14 +08:00
parent 78088ba53f
commit 9f4e66a38b
23 changed files with 607 additions and 351 deletions

View File

@@ -82,7 +82,8 @@ public class CommonChannelController {
@Operation(summary = "增加通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@ResponseBody
@PostMapping("/add")
public void add(@RequestBody CommonGBChannel channel){
public CommonGBChannel add(@RequestBody CommonGBChannel channel){
channelService.add(channel);
return channel;
}
}

View File

@@ -95,8 +95,8 @@ public class MediaController {
return new StreamContent(streamInfo);
}else {
//获取流失败,重启拉流后重试一次
streamProxyService.stop(app,stream);
boolean start = streamProxyService.start(app, stream);
streamProxyService.stopByAppAndStream(app,stream);
boolean start = streamProxyService.startByAppAndStream(app, stream);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
@@ -117,4 +117,30 @@ public class MediaController {
}
}
}
/**
* 获取推流播放地址
* @param app 应用名
* @param stream 流id
* @return
*/
@GetMapping(value = "/getPlayUrl")
@ResponseBody
@Operation(summary = "获取推流播放地址", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "app", description = "应用名", required = true)
@Parameter(name = "stream", description = "流id", required = true)
@Parameter(name = "mediaServerId", description = "媒体服务器id")
public StreamContent getPlayUrl(@RequestParam String app, @RequestParam String stream,
@RequestParam(required = false) String mediaServerId){
boolean authority = false;
// 是否登陆用户, 登陆用户返回完整信息
LoginUser userInfo = SecurityUtils.getUserInfo();
if (userInfo!= null) {
authority = true;
}
StreamInfo streamInfo = mediaServerService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
if (streamInfo == null){
throw new ControllerException(ErrorCode.ERROR100.getCode(), "获取播放地址失败");
}
return new StreamContent(streamInfo);
}
}