| | |
| | | updateMedia(mediaServerItem, app, streamId); |
| | | } |
| | | |
| | | public void addPush(MediaItem mediaItem) { |
| | | public StreamPushItem addPush(MediaItem mediaItem) { |
| | | // 查找此直播流是否存在redis预设gbId |
| | | StreamPushItem transform = streamPushService.transform(mediaItem); |
| | | // 从streamId取出查询关键值 |
| | |
| | | transform.setName(thirdPartyGB.getName()); |
| | | } |
| | | } |
| | | storager.updateMedia(transform); |
| | | if (!StringUtils.isEmpty(transform.getGbId())) { |
| | | // 如果这个国标ID已经给了其他推流且流已离线,则移除其他推流 |
| | | List<GbStream> gbStreams = gbStreamMapper.selectByGBId(transform.getGbId()); |
| | |
| | | for (GbStream gbStream : gbStreams) { |
| | | // 出现使用相同国标Id的视频流时,使用新流替换旧流, |
| | | gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | platformGbStreamMapper.delByAppAndStream(gbStream.getApp(), gbStream.getStream()); |
| | | if (!gbStream.isStatus()) { |
| | | streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); |
| | | } |
| | | } |
| | | } |
| | | if (gbStreamMapper.selectOne(transform.getApp(), transform.getStream()) != null) { |
| | | StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream()); |
| | | if (streamProxyItem != null) { |
| | | transform.setGbStreamId(streamProxyItem.getGbStreamId()); |
| | | gbStreamMapper.update(transform); |
| | | }else { |
| | | transform.setCreateStamp(System.currentTimeMillis()); |
| | | gbStreamMapper.add(transform); |
| | | } |
| | | |
| | | } |
| | | storager.updateMedia(transform); |
| | | return transform; |
| | | } |
| | | |
| | | |