@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject ;
import com.genersoft.iot.vmp.common.StreamInfo ;
import com.genersoft.iot.vmp.common.SystemAllInfo ;
import com.genersoft.iot.vmp.common.SystemInfoDto ;
import com.genersoft.iot.vmp.common.VideoManagerConstants ;
import com.genersoft.iot.vmp.conf.UserSetting ;
import com.genersoft.iot.vmp.gb28181.bean.* ;
@@ -18,6 +17,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper ;
import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo ;
import com.genersoft.iot.vmp.utils.DateUtil ;
import com.genersoft.iot.vmp.utils.SystemInfoUtils ;
import com.genersoft.iot.vmp.utils.redis.RedisUtil ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -89,8 +89,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
*/
@Override
public boolean startPlay ( StreamInfo stream ) {
return RedisUtil . set ( String . format ( " %S_%S_%s_%s_%s " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServerId ( ) ,
stream . g etStream ( ) , stream . getDeviceID ( ) , stream . getChannel Id ( ) ) ,
return RedisUtil . s et( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServer Id ( ) ,
stream . getMediaServerId ( ) , stream . getStream ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) ) ,
stream ) ;
}
@@ -104,8 +105,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( streamInfo = = null ) {
return false ;
}
return RedisUtil . del ( String . format ( " %S_%s_%s_%s_%s " , VideoManagerConstants . PLAYER_PREFIX ,
return RedisUtil . del ( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAYER_PREFIX ,
userSetting . getServerId ( ) ,
streamInfo . getMediaServerId ( ) ,
streamInfo . getStream ( ) ,
streamInfo . getDeviceID ( ) ,
streamInfo . getChannelId ( ) ) ) ;
@@ -117,17 +119,17 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
*/
@Override
public StreamInfo queryPlay ( StreamInfo streamInfo ) {
return ( StreamInfo ) RedisUtil . get ( String . format ( " %S_%s_%s_%s_%s " ,
return ( StreamInfo ) RedisUtil . get ( String . format ( " %S_%s_%s_%s_%s_%s " ,
VideoManagerConstants . PLAYER_PREFIX ,
userSetting . getServerId ( ) ,
streamInfo . getMediaServerId ( ) ,
streamInfo . getStream ( ) ,
streamInfo . getDeviceID ( ) ,
streamInfo . getChannelId ( ) ) ) ;
}
@Override
public StreamInfo queryPlayByStreamId ( String streamId ) {
System . out . printl n( String . format ( " %S_%s_%s_* " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServerId ( ) , streamId ) ) ;
List < Object > playLeys = RedisUtil . scan ( String . format ( " %S_%s_%s_* " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServerId ( ) , streamId ) ) ;
List < Object > playLeys = RedisUtil . sca n( String . format ( " %S_%s_*_ %s_* " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServerId ( ) , streamId ) ) ;
if ( playLeys = = null | | playLeys . size ( ) = = 0 ) {
return null ;
}
@@ -136,7 +138,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public StreamInfo queryPlayByDevice ( String deviceId , String channelId ) {
List < Object > playLeys = RedisUtil . scan ( String . format ( " %S_%s_*_%s_%s " , VideoManagerConstants . PLAYER_PREFIX ,
List < Object > playLeys = RedisUtil . scan ( String . format ( " %S_%s_*_*_ %s_%s " , VideoManagerConstants . PLAYER_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ) ) ;
@@ -149,8 +151,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public Map < String , StreamInfo > queryPlayByDeviceId ( String deviceId ) {
Map < String , StreamInfo > streamInfos = new HashMap < > ( ) ;
// List<Object> playLeys = RedisUtil.keys( String. format("%S _*_%S _*", VideoManagerConstants. PLAYER_PREFIX, deviceId)) ;
List < Object > players = RedisUtil . scan ( String . format ( " %S_%s_*_%S_* " , VideoManagerConstants . PLAYER_PREFIX , userSetting . getServerId ( ) , deviceId ) ) ;
List < Object > players = RedisUtil . scan ( String. format( " %S_%s_* _*_%s _*" , VideoManagerConstants. PLAYER_PREFIX, userSetting . getServerId ( ) , deviceId ) ) ;
if ( players . size ( ) = = 0 ) {
return streamInfos ;
}
@@ -165,21 +166,19 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public boolean startPlayback ( StreamInfo stream , String callId ) {
System . out . println ( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) ) ;
return RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream ) ;
return RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) , stream . getMediaServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream );
}
@Override
public boolean startDownload ( StreamInfo stream , String callId ) {
boolean result ;
if ( stream . getProgress ( ) = = 1 ) {
result = RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream ) ;
result = RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) , stream . getMediaServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream ) ;
} else {
result = RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream , 60 * 60 ) ;
result = RedisUtil . set ( String . format ( " %S_%s_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) , stream . getMediaServerId ( ) , stream . getDeviceID ( ) , stream . getChannelId ( ) , stream . getStream ( ) , callId ) , stream , 60 * 60 ) ;
}
return result ;
}
@@ -203,7 +202,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
String key = String . format ( " %S_%s_*_ %s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ,
@@ -239,7 +238,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
String key = String . format ( " %S_%s_*_ %s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ,
@@ -272,7 +271,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
String key = String . format ( " %S_%s_*_ %s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ,
@@ -304,7 +303,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
String key = String . format ( " %S_%s_*_ %s_%s_%s_%s " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ,
@@ -369,9 +368,14 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public void updateSendRTPSever ( SendRtpItem sendRtpItem ) {
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ "
+ sendRtpItem . getPlatformId ( ) + " _ " + sendRtpItem . getChannelId ( ) + " _ "
+ sendRtpItem . getStream Id ( ) + " _ " + sendRtpItem . getCallId ( ) ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX +
userSetting . getServer Id ( ) + " _ "
+ sendRtpItem . getMediaServerId ( ) + " _ "
+ sendRtpItem . getPlatformId ( ) + " _ "
+ sendRtpItem . getChannelId ( ) + " _ "
+ sendRtpItem . getStreamId ( ) + " _ "
+ sendRtpItem . getCallId ( ) ;
RedisUtil . set ( key , sendRtpItem ) ;
}
@@ -389,8 +393,12 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + platformGbId
+ " _ " + channelId + " _ " + streamId + " _ " + callId ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ "
+ platformGbId + " _ "
+ channelId + " _ "
+ streamId + " _ "
+ callId ;
List < Object > scan = RedisUtil . scan ( key ) ;
if ( scan . size ( ) > 0 ) {
return ( SendRtpItem ) RedisUtil . get ( ( String ) scan . get ( 0 ) ) ;
@@ -407,8 +415,12 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
String platformGbId = " * " ;
String callId = " * " ;
String streamId = " * " ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + platformGbId
+ " _ " + channelId + " _ " + streamId + " _ " + callId ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ "
+ platformGbId + " _ "
+ channelId + " _ "
+ streamId + " _ "
+ callId ;
List < Object > scan = RedisUtil . scan ( key ) ;
List < SendRtpItem > result = new ArrayList < > ( ) ;
for ( Object o : scan ) {
@@ -425,8 +437,12 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
String platformGbId = " * " ;
String callId = " * " ;
String channelId = " * " ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + platformGbId
+ " _ " + channelId + " _ " + stream + " _ " + callId ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ "
+ platformGbId + " _ "
+ channelId + " _ "
+ stream + " _ "
+ callId ;
List < Object > scan = RedisUtil . scan ( key ) ;
List < SendRtpItem > result = new ArrayList < > ( ) ;
for ( Object o : scan ) {
@@ -440,7 +456,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( platformGbId = = null ) {
platformGbId = " * " ;
}
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + platformGbId + " _* " + " _* " + " _* " ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ "
+ platformGbId + " _* " + " _* " + " _* " ;
List < Object > queryResult = RedisUtil . scan ( key ) ;
List < SendRtpItem > result = new ArrayList < > ( ) ;
@@ -465,8 +483,12 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + platformGbId
+ " _ " + channelId + " _ " + streamId + " _ " + callId ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ "
+ platformGbId + " _ "
+ channelId + " _ "
+ streamId + " _ "
+ callId ;
List < Object > scan = RedisUtil . scan ( key ) ;
if ( scan . size ( ) > 0 ) {
for ( Object keyStr : scan ) {
@@ -475,7 +497,20 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
}
@Override
public List < SendRtpItem > queryAllSendRTPServer ( ) {
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _* " ;
List < Object > queryResult = RedisUtil . scan ( key ) ;
List < SendRtpItem > result = new ArrayList < > ( ) ;
for ( Object o : queryResult ) {
String keyItem = ( String ) o ;
result . add ( ( SendRtpItem ) RedisUtil . get ( keyItem ) ) ;
}
return result ;
}
/**
* 查询某个通道是否存在上级点播( RTP推送)
@@ -483,7 +518,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
*/
@Override
public boolean isChannelSendingRTP ( String channelId ) {
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX + userSetting . getServerId ( ) + " _ " + " *_ " + channelId + " *_ " + " *_ " ;
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_*_ "
+ channelId + " *_ " + " *_ " ;
List < Object > RtpStreams = RedisUtil . scan ( key ) ;
if ( RtpStreams . size ( ) > 0 ) {
return true ;
@@ -503,7 +540,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
}
List < Object > playBackers = RedisUtil . scan ( String . format ( " %S_%s_%s_*_*_* " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
List < Object > playBackers = RedisUtil . scan ( String . format ( " %S_%s_*_ %s_*_*_* " , VideoManagerConstants . PLAY_BLACK_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ) ) ;
if ( playBackers . size ( ) > 0 ) {
@@ -569,7 +606,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
if ( callId = = null ) {
callId = " * " ;
}
String key = String . format ( " %S_%s_%s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
String key = String . format ( " %S_%s_*_ %s_%s_%s_%s " , VideoManagerConstants . DOWNLOAD_PREFIX ,
userSetting . getServerId ( ) ,
deviceId ,
channelId ,
@@ -739,15 +776,26 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
}
@Override
public void addDiskInfo ( List < Map < String , Object > > diskInfo ) {
String key = VideoManagerConstants . SYSTEM_INFO_DISK_PREFIX + userSetting . getServerId ( ) ;
RedisUtil . set ( key , diskInfo ) ;
}
@Override
public SystemAllInfo getSystemInfo ( ) {
String cpuKey = VideoManagerConstants . SYSTEM_INFO_CPU_PREFIX + userSetting . getServerId ( ) ;
String memKey = VideoManagerConstants . SYSTEM_INFO_MEM_PREFIX + userSetting . getServerId ( ) ;
String netKey = VideoManagerConstants . SYSTEM_INFO_NET_PREFIX + userSetting . getServerId ( ) ;
String diskKey = VideoManagerConstants . SYSTEM_INFO_DISK_PREFIX + userSetting . getServerId ( ) ;
SystemAllInfo systemAllInfo = new SystemAllInfo ( ) ;
systemAllInfo . setCpu ( RedisUtil . lGet ( cpuKey , 0 , - 1 ) ) ;
systemAllInfo . setMem ( RedisUtil . lGet ( memKey , 0 , - 1 ) ) ;
systemAllInfo . setNet ( RedisUtil . lGet ( netKey , 0 , - 1 ) ) ;
systemAllInfo . setDisk ( RedisUtil . get ( diskKey ) ) ;
systemAllInfo . setNetTotal ( SystemInfoUtils . getNetworkTotal ( ) ) ;
return systemAllInfo ;
}
@@ -786,4 +834,32 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
jsonObject . put ( key , key ) ;
RedisUtil . convertAndSend ( key , jsonObject ) ;
}
@Override
public int getPushStreamCount ( String id ) {
String key = VideoManagerConstants . WVP_SERVER_STREAM_PREFIX + userSetting . getServerId ( ) + " _PUSH_*_*_ " + id ;
return RedisUtil . scan ( key ) . size ( ) ;
}
@Override
public int getProxyStreamCount ( String id ) {
String key = VideoManagerConstants . WVP_SERVER_STREAM_PREFIX + userSetting . getServerId ( ) + " _PULL_*_*_ " + id ;
return RedisUtil . scan ( key ) . size ( ) ;
}
@Override
public int getGbReceiveCount ( String id ) {
String playKey = VideoManagerConstants . PLAYER_PREFIX + " _ " + userSetting . getServerId ( ) + " _ " + id + " _* " ;
String playBackKey = VideoManagerConstants . PLAY_BLACK_PREFIX + " _ " + userSetting . getServerId ( ) + " _ " + id + " _* " ;
String downloadKey = VideoManagerConstants . DOWNLOAD_PREFIX + " _ " + userSetting . getServerId ( ) + " _ " + id + " _* " ;
return RedisUtil . scan ( playKey ) . size ( ) + RedisUtil . scan ( playBackKey ) . size ( ) + RedisUtil . scan ( downloadKey ) . size ( ) ;
}
@Override
public int getGbSendCount ( String id ) {
String key = VideoManagerConstants . PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting . getServerId ( ) + " _*_ " + id + " _* " ;
return RedisUtil . scan ( key ) . size ( ) ;
}
}