优化拉流代理播放机制
This commit is contained in:
@@ -64,7 +64,7 @@ public interface IMediaNodeServerService {
|
||||
|
||||
Long updateDownloadProcess(MediaServer mediaServer, String app, String stream);
|
||||
|
||||
StreamInfo startProxy(MediaServer mediaServer, StreamProxy streamProxy);
|
||||
void startProxy(MediaServer mediaServer, StreamProxy streamProxy);
|
||||
|
||||
void stopProxy(MediaServer mediaServer, String streamKey);
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ public interface IMediaServerService {
|
||||
|
||||
Long updateDownloadProcess(MediaServer mediaServerItem, String app, String stream);
|
||||
|
||||
StreamInfo startProxy(MediaServer mediaServer, StreamProxy streamProxy);
|
||||
void startProxy(MediaServer mediaServer, StreamProxy streamProxy);
|
||||
|
||||
void stopProxy(MediaServer mediaServer, String streamKey);
|
||||
|
||||
|
||||
@@ -952,13 +952,13 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public StreamInfo startProxy(MediaServer mediaServer, StreamProxy streamProxy) {
|
||||
public void startProxy(MediaServer mediaServer, StreamProxy streamProxy) {
|
||||
IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
|
||||
if (mediaNodeServerService == null) {
|
||||
log.info("[startProxy] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType());
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到mediaServer对应的实现类");
|
||||
}
|
||||
return mediaNodeServerService.startProxy(mediaServer, streamProxy);
|
||||
mediaNodeServerService.startProxy(mediaServer, streamProxy);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -425,7 +425,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public StreamInfo startProxy(MediaServer mediaServer, StreamProxy streamProxy) {
|
||||
public void startProxy(MediaServer mediaServer, StreamProxy streamProxy) {
|
||||
String dstUrl;
|
||||
if ("ffmpeg".equalsIgnoreCase(streamProxy.getType())) {
|
||||
|
||||
@@ -463,10 +463,6 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||
MediaInfo mediaInfo = getMediaInfo(mediaServer, streamProxy.getApp(), streamProxy.getStream());
|
||||
|
||||
if (mediaInfo != null) {
|
||||
if (mediaInfo.getOriginUrl() != null && mediaInfo.getOriginUrl().equals(streamProxy.getSrcUrl())) {
|
||||
log.info("[启动拉流代理] 已存在, 直接返回, app: {}, stream: {}", mediaInfo.getApp(), streamProxy.getStream());
|
||||
return getStreamInfoByAppAndStream(mediaServer, streamProxy.getApp(), streamProxy.getStream(), mediaInfo, null, true);
|
||||
}
|
||||
closeStreams(mediaServer, streamProxy.getApp(), streamProxy.getStream());
|
||||
}
|
||||
|
||||
@@ -490,15 +486,6 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
if (data == null) {
|
||||
throw new ControllerException(jsonObject.getInteger("code"), "代理结果异常: " + jsonObject);
|
||||
}else {
|
||||
streamProxy.setStreamKey(data.getString("key"));
|
||||
// 由于此时流未注册,手动拼装流信息
|
||||
mediaInfo = new MediaInfo();
|
||||
mediaInfo.setApp(streamProxy.getApp());
|
||||
mediaInfo.setStream(streamProxy.getStream());
|
||||
mediaInfo.setOriginType(4);
|
||||
mediaInfo.setOriginTypeStr("pull");
|
||||
return getStreamInfoByAppAndStream(mediaServer, streamProxy.getApp(), streamProxy.getStream(), mediaInfo, null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user