| | |
| | | @Override |
| | | public ResponseResult liveStart(LiveTypeDTO liveParam) { |
| | | String rtmpPublishUrl = |
| | | "rtmp://" + mediamtxConfig.getApiHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + liveParam.getVideoId(); |
| | | "rtmp://" + mediamtxConfig.getPushHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + liveParam.getVideoId(); |
| | | liveParam.setUrl(rtmpPublishUrl); |
| | | // Check if this lens is available live. |
| | | ResponseResult responseResult = this.checkBeforeLive(liveParam.getVideoId()); |
| | |
| | | // 如果没有,插入新的记录 |
| | | ArdVtdu vtdu = |
| | | ArdVtdu.builder().name(name).rtspSource("publisher").rtspUrl(rtspUrl).rtmpUrl(rtmpUrl).webrtcUrl(webrtcUrl).build(); |
| | | int i = ardVtduService.insertArdVtdu(vtdu); // 保存到媒体表 |
| | | if (i > 0) { |
| | | // 在停止直播时不删除Vtdu表记录,所以在开启直播时再插入会报错, |
| | | // 所以要先查询是否存在该记录,如果已经存在记录,直接返回直播地址 |
| | | // 查询是否已经存在该记录 |
| | | ArdVtdu ardVtdu = ardVtduService.selectArdVtduByName(vtdu.getName()); |
| | | int i = 0; |
| | | if(ardVtdu == null){ |
| | | i = ardVtduService.insertArdVtdu(vtdu); // 保存到媒体表 |
| | | if (i > 0) { |
| | | live.setRtmpUrl(rtmpUrl); |
| | | live.setRtspUrl(rtspUrl); |
| | | live.setWebrtcUrl(webrtcUrl); |
| | | } |
| | | } |
| | | else{ |
| | | live.setRtmpUrl(rtmpUrl); |
| | | live.setRtspUrl(rtspUrl); |
| | | live.setWebrtcUrl(webrtcUrl); |
| | | } |
| | | //int i = ardVtduService.insertArdVtdu(vtdu); // 保存到媒体表 |
| | | // if (i > 0) { |
| | | // live.setRtmpUrl(rtmpUrl); |
| | | // live.setRtspUrl(rtspUrl); |
| | | // live.setWebrtcUrl(webrtcUrl); |
| | | // } |
| | | |
| | | break; |
| | | case RTSP: |
| | |
| | | if (receiveReply.getResult() != 0) { |
| | | return ResponseResult.error(LiveErrorEnum.find(receiveReply.getResult())); |
| | | } |
| | | ardVtduService.deleteArdVtduByName(videoId); |
| | | //注释掉删除流媒体管理库中的信息 |
| | | // ardVtduService.deleteArdVtduByName(videoId); |
| | | return ResponseResult.success(); |
| | | } |
| | | |