| | |
| | | void startSendRtpPassive(MediaServer mediaServer, SendRtpItem sendRtpItem, Integer timeout); |
| | | |
| | | void startSendRtpStream(MediaServer mediaServer, SendRtpItem sendRtpItem); |
| | | |
| | | Long updateDownloadProcess(MediaServer mediaServer, String app, String stream); |
| | | } |
| | |
| | | String app, String stream, String channelId, boolean tcp, boolean rtcp); |
| | | |
| | | MediaServer getMediaServerByAppAndStream(String app, String stream); |
| | | |
| | | Long updateDownloadProcess(MediaServer mediaServerItem, String app, String stream); |
| | | } |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public Long updateDownloadProcess(MediaServer mediaServer, String app, String stream) { |
| | | IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType()); |
| | | if (mediaNodeServerService == null) { |
| | | logger.info("[updateDownloadProcess] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType()); |
| | | throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到mediaServer对应的实现类"); |
| | | } |
| | | return mediaNodeServerService.updateDownloadProcess(mediaServer, app, stream); |
| | | } |
| | | } |
| | |
| | | throw new ControllerException(jsonObject.getInteger("code"), jsonObject.getString("msg")); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public Long updateDownloadProcess(MediaServer mediaServer, String app, String stream) { |
| | | MediaInfo mediaInfo = getMediaInfo(mediaServer, app, stream); |
| | | if (mediaInfo == null) { |
| | | logger.warn("[获取下载进度] 查询进度失败, 节点Id: {}, {}/{}", mediaServer.getId(), app, stream); |
| | | return null; |
| | | } |
| | | return mediaInfo.getDuration(); |
| | | } |
| | | } |
| | |
| | | return null; |
| | | } |
| | | String app = "rtp"; |
| | | MediaInfo mediaInfo = mediaServerService.getMediaInfo(mediaServerItem, app, stream); |
| | | if (mediaInfo == null) { |
| | | logger.warn("[获取下载进度] 查询进度失败, 节点Id: {}, {}/{}", mediaServerId, app, stream); |
| | | return null; |
| | | } |
| | | if (mediaInfo.getDuration() == 0) { |
| | | Long duration = mediaServerService.updateDownloadProcess(mediaServerItem, app, stream); |
| | | if (duration == null || duration == 0) { |
| | | inviteInfo.getStreamInfo().setProgress(0); |
| | | } else { |
| | | String startTime = inviteInfo.getStreamInfo().getStartTime(); |
| | |
| | | long start = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime); |
| | | long end = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime); |
| | | |
| | | BigDecimal currentCount = new BigDecimal(mediaInfo.getDuration()); |
| | | BigDecimal currentCount = new BigDecimal(duration); |
| | | BigDecimal totalCount = new BigDecimal((end - start) * 1000); |
| | | BigDecimal divide = currentCount.divide(totalCount, 2, RoundingMode.HALF_UP); |
| | | double process = divide.doubleValue(); |