IMediaServerService.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.genersoft.iot.vmp.media.service;
  2. import com.genersoft.iot.vmp.common.CommonCallback;
  3. import com.genersoft.iot.vmp.common.StreamInfo;
  4. import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
  5. import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
  6. import com.genersoft.iot.vmp.media.bean.MediaInfo;
  7. import com.genersoft.iot.vmp.media.bean.MediaServer;
  8. import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
  9. import com.genersoft.iot.vmp.service.bean.SSRCInfo;
  10. import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * 媒体服务节点
  15. */
  16. public interface IMediaServerService {
  17. List<MediaServer> getAllOnlineList();
  18. List<MediaServer> getAll();
  19. List<MediaServer> getAllFromDatabase();
  20. List<MediaServer> getAllOnline();
  21. MediaServer getOne(String generalMediaServerId);
  22. void syncCatchFromDatabase();
  23. MediaServer getMediaServerForMinimumLoad(Boolean hasAssist);
  24. void updateVmServer(List<MediaServer> mediaServerItemList);
  25. SSRCInfo openRTPServer(MediaServer mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck,
  26. boolean isPlayback, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode);
  27. void closeRTPServer(MediaServer mediaServerItem, String streamId);
  28. void closeRTPServer(MediaServer mediaServerItem, String streamId, CommonCallback<Boolean> callback);
  29. Boolean updateRtpServerSSRC(MediaServer mediaServerItem, String streamId, String ssrc);
  30. void closeRTPServer(String mediaServerId, String streamId);
  31. void clearRTPServer(MediaServer mediaServerItem);
  32. void update(MediaServer mediaSerItem);
  33. void addCount(String mediaServerId);
  34. void removeCount(String mediaServerId);
  35. void releaseSsrc(String mediaServerItemId, String ssrc);
  36. void clearMediaServerForOnline();
  37. void add(MediaServer mediaSerItem);
  38. void resetOnlineServerItem(MediaServer serverItem);
  39. MediaServer checkMediaServer(String ip, int port, String secret, String type);
  40. boolean checkMediaRecordServer(String ip, int port);
  41. void delete(String id);
  42. MediaServer getDefaultMediaServer();
  43. MediaServerLoad getLoad(MediaServer mediaServerItem);
  44. List<MediaServer> getAllWithAssistPort();
  45. MediaServer getOneFromDatabase(String id);
  46. boolean stopSendRtp(MediaServer mediaInfo, String app, String stream, String ssrc);
  47. boolean deleteRecordDirectory(MediaServer mediaServerItem, String app, String stream, String date, String fileName);
  48. List<StreamInfo> getMediaList(MediaServer mediaInfo, String app, String stream, String callId);
  49. Boolean connectRtpServer(MediaServer mediaServerItem, String address, int port, String stream);
  50. void getSnap(MediaServer mediaServerItemInuse, String streamUrl, int timeoutSec, int expireSec, String path, String fileName);
  51. MediaInfo getMediaInfo(MediaServer mediaServerItem, String app, String stream);
  52. Boolean pauseRtpCheck(MediaServer mediaServerItem, String streamKey);
  53. boolean resumeRtpCheck(MediaServer mediaServerItem, String streamKey);
  54. String getFfmpegCmd(MediaServer mediaServer, String cmdKey);
  55. void closeStreams(MediaServer mediaServerItem, String app, String stream);
  56. WVPResult<String> addFFmpegSource(MediaServer mediaServerItem, String srcUrl, String dstUrl, int timeoutMs, boolean enableAudio, boolean enableMp4, String ffmpegCmdKey);
  57. WVPResult<String> addStreamProxy(MediaServer mediaServerItem, String app, String stream, String url, boolean enableAudio, boolean enableMp4, String rtpType);
  58. Boolean delFFmpegSource(MediaServer mediaServerItem, String streamKey);
  59. Boolean delStreamProxy(MediaServer mediaServerItem, String streamKey);
  60. Map<String, String> getFFmpegCMDs(MediaServer mediaServer);
  61. /**
  62. * 根据应用名和流ID获取播放地址, 通过zlm接口检查是否存在
  63. * @param app
  64. * @param stream
  65. * @return
  66. */
  67. StreamInfo getStreamInfoByAppAndStreamWithCheck(String app, String stream, String mediaServerId,String addr, boolean authority);
  68. /**
  69. * 根据应用名和流ID获取播放地址, 通过zlm接口检查是否存在, 返回的ip使用远程访问ip,适用与zlm与wvp在一台主机的情况
  70. * @param app
  71. * @param stream
  72. * @return
  73. */
  74. StreamInfo getStreamInfoByAppAndStreamWithCheck(String app, String stream, String mediaServerId, boolean authority);
  75. /**
  76. * 根据应用名和流ID获取播放地址, 只是地址拼接
  77. * @param app
  78. * @param stream
  79. * @return
  80. */
  81. StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServerItem, String app, String stream, MediaInfo mediaInfo, String callId);
  82. /**
  83. * 根据应用名和流ID获取播放地址, 只是地址拼接,返回的ip使用远程访问ip,适用与zlm与wvp在一台主机的情况
  84. * @param app
  85. * @param stream
  86. * @return
  87. */
  88. StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String addr, String callId, boolean isPlay);
  89. Boolean isStreamReady(MediaServer mediaServer, String rtp, String streamId);
  90. void startSendRtpPassive(MediaServer mediaServer, ParentPlatform platform, SendRtpItem sendRtpItem, Integer timeout);
  91. void startSendRtp(MediaServer mediaServer, ParentPlatform platform, SendRtpItem sendRtpItem);
  92. SendRtpItem createSendRtpItem(MediaServer mediaServerItem, String addressStr, int port, String ssrc, String requesterId, String deviceId, String channelId, boolean mediaTransmissionTCP, boolean rtcp);
  93. SendRtpItem createSendRtpItem(MediaServer serverItem, String ip, int port, String ssrc, String platformId,
  94. String app, String stream, String channelId, boolean tcp, boolean rtcp);
  95. }