|
@@ -972,7 +972,7 @@ class CameraServices
|
|
|
}
|
|
|
|
|
|
//海康easydrawin获取回放rtsp流
|
|
|
- public static function getPlaybackByEasy($camera_id,$start_time,$end_time)
|
|
|
+ public static function getPlaybackByEasy($camera_id,$start_time,$end_time,$time)
|
|
|
{
|
|
|
$query = CameraList::where('id', $camera_id)->first();
|
|
|
|
|
@@ -989,6 +989,7 @@ class CameraServices
|
|
|
'camera_id' => $camera_id,
|
|
|
'start_time' => $start_time,
|
|
|
'end_time' => $end_time,
|
|
|
+ 'time'=>$time,
|
|
|
]
|
|
|
);
|
|
|
|
|
@@ -998,7 +999,7 @@ class CameraServices
|
|
|
}
|
|
|
|
|
|
//海康ffmpeg获取回放rtmp流
|
|
|
- public static function getPlaybackRtmp($camera_id,$start_time,$end_time)
|
|
|
+ public static function getPlaybackRtmp($camera_id,$start_time,$end_time,$time)
|
|
|
{
|
|
|
$result['status'] = true;
|
|
|
$result['msg'] = ApiEnum::RETURN_SUCCESS;
|
|
@@ -1014,14 +1015,22 @@ class CameraServices
|
|
|
}
|
|
|
$path .= $query->camera_name . '/回放/' . $start_time.'-'.$end_time;
|
|
|
|
|
|
+ $playback = DB::table('playback')
|
|
|
+ ->where('camera_id',$camera_id)
|
|
|
+ ->where('start_time',$time['start_time'])
|
|
|
+ ->where('end_time',$time['end_time'])
|
|
|
+ ->where('deleted_at',null)->get();
|
|
|
+
|
|
|
//如果m3u8文件已拉取,直接返回播放链接
|
|
|
-// if ($query->revert_id == CameraEnum::CAMERA_FILE_EXIST) {
|
|
|
-// $result['data'] = [
|
|
|
-// 'camera_id' => $camera_id,
|
|
|
-// 'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
|
|
|
-// ];
|
|
|
-// return $result;
|
|
|
-// }
|
|
|
+ if(count($playback)>0){
|
|
|
+ if ($playback[0]->revert_back_id == CameraEnum::CAMERA_FILE_EXIST) {
|
|
|
+ $result['data'] = [
|
|
|
+ 'camera_id' => $camera_id,
|
|
|
+ 'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
|
|
|
+ ];
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
$mine_ext = DB::table('mine_list_ext')->where('mine_id',$degree[0])->get();
|
|
|
|
|
@@ -1041,7 +1050,7 @@ class CameraServices
|
|
|
$result_hk = $haikang->getPlaybackRtmp();
|
|
|
|
|
|
if ($result_hk['data']['url']) {
|
|
|
- $res = self::getVideoBackStream($result_hk['data']['url'], $path, $camera_id);
|
|
|
+ $res = self::getVideoBackStream($result_hk['data']['url'], $path, $camera_id,$time);
|
|
|
if($res != false){
|
|
|
$result['data'] = $res['data'];
|
|
|
}else{//切换码流
|
|
@@ -1059,7 +1068,7 @@ class CameraServices
|
|
|
);
|
|
|
$result_hk = $haikang->getPlaybackRtmp();
|
|
|
if ($result_hk['data']['url']) {
|
|
|
- $res = self::getVideoBackStream($result_hk['data']['url'], $path, $camera_id);
|
|
|
+ $res = self::getVideoBackStream($result_hk['data']['url'], $path, $camera_id,$time);
|
|
|
if($res != false){
|
|
|
$result['data'] = $res['data'];
|
|
|
}else{
|
|
@@ -1213,7 +1222,7 @@ class CameraServices
|
|
|
|
|
|
//清空海康视频服务器已存在id
|
|
|
CameraList::where('revert_id', CameraEnum::CAMERA_FILE_EXIST)->update(['revert_id' => CameraEnum::CAMERA_DEFAULT_REVERT_ID]);
|
|
|
-
|
|
|
+ DB::table('playback')->where('revert_back_id',CameraEnum::CAMERA_FILE_EXIST)->update(['revert_back_id' => CameraEnum::CAMERA_DEFAULT_REVERT_ID]);
|
|
|
//递归删除目录
|
|
|
$dir = public_path() . '/files/video/m3u8/';
|
|
|
if (is_dir($dir)) {
|
|
@@ -1256,12 +1265,8 @@ class CameraServices
|
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
|
]
|
|
|
);
|
|
|
- CameraList::where('revert_back_id', $val['id'])->update(
|
|
|
- [
|
|
|
- 'revert_back_id' => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
|
|
|
- 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
- ]
|
|
|
- );
|
|
|
+ $back_data['revert_back_id'] = CameraEnum::CAMERA_DEFAULT_REVERT_ID;
|
|
|
+ DB::table('playback')->where('revert_back_id',$val['id'])->update($back_data);
|
|
|
$success_jf++;
|
|
|
} else {
|
|
|
Log::info('流媒体服务器停止推流失败id:' . $val['id']);
|
|
@@ -1278,12 +1283,8 @@ class CameraServices
|
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
|
]
|
|
|
);
|
|
|
- CameraList::where('revert_back_id', '!=', CameraEnum::CAMERA_DEFAULT_REVERT_ID)->update(
|
|
|
- [
|
|
|
- 'revert_back_id' => CameraEnum::CAMERA_DEFAULT_REVERT_ID,
|
|
|
- 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
- ]
|
|
|
- );
|
|
|
+ $back_data['revert_back_id'] = CameraEnum::CAMERA_DEFAULT_REVERT_ID;
|
|
|
+ DB::table('playback')->where('revert_back_id', '!=', CameraEnum::CAMERA_DEFAULT_REVERT_ID)->update($back_data);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1796,7 +1797,7 @@ class CameraServices
|
|
|
}
|
|
|
|
|
|
//回放获取视频流
|
|
|
- public static function getVideoBackStream($video_url, $path, $camera_id)
|
|
|
+ public static function getVideoBackStream($video_url, $path, $camera_id,$time)
|
|
|
{
|
|
|
$result = [];
|
|
|
|
|
@@ -1860,6 +1861,15 @@ class CameraServices
|
|
|
];
|
|
|
|
|
|
// CameraList::where('id', $camera_id)->update(['revert_id' => CameraEnum::CAMERA_FILE_EXIST]);
|
|
|
+ $playback = DB::table('playback')
|
|
|
+ ->where('camera_id',$camera_id)
|
|
|
+ ->where('start_time',$time['start_time'])
|
|
|
+ ->where('end_time',$time['end_time'])
|
|
|
+ ->where('deleted_at',null)->get();
|
|
|
+ if(count($playback)>0){
|
|
|
+ $back_data['revert_back_id'] = CameraEnum::CAMERA_FILE_EXIST;
|
|
|
+ DB::table('playback')->where('id',$playback[0]->id)->update($back_data);
|
|
|
+ }
|
|
|
|
|
|
return $result;
|
|
|
} else {
|