Browse Source

海康获取rtsp流

任敬轩 3 years ago
parent
commit
5b479e671d

+ 1 - 2
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -118,8 +118,7 @@ class CameraApiController extends BaseController
         $camera_url = CameraList::where('id', $camera_id)->value('camera_url');
 
         if ($is_hak == 1 && !$camera_url) {
-            $haikang = new HaiKangController();
-            $result = $haikang->getHkRtsp($camera_id);
+            $result = CameraServices::getHkRtsp($camera_id,$parent_id);
             return $result;
         }else{
             $result['status'] = false;

+ 27 - 2
Modules/Camera/Http/Controllers/Api/HaiKangController.php

@@ -311,11 +311,11 @@ class HaiKangController extends BaseController
         return $result;
     }
 
-    public function getHkRtsp($camera_id){
+    public function getHikRtsp($camera_id){
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
 
-        $query = CameraList::where('id',$camera_id)->first();
+        $query = CameraList::where('id',Input::get('camera_id'))->first();
 
         if (!$query) {
             $result['status'] = false;
@@ -323,6 +323,30 @@ class HaiKangController extends BaseController
             return $result;
         }
 
+        $degree = MineList::where('id', $query->mine_id)->value('degree');
+
+        $mine_list = MineList::whereIn('id', explode('|', $degree))->select(['title'])->get()->toArray();
+
+        $path = '';
+        foreach ($mine_list as $key => $val) {
+            $path .= '/' . $val['title'];
+        }
+        $new_camera_name = str_replace('-','',$query->camera_name);
+        $new_camera_name = str_replace('#','号',$new_camera_name);
+        $path .= '/' . $new_camera_name;
+
+        //标记摄像头为在线状态
+        CameraList::where('id', Input::get('camera_id'))->update(['camera_status' => CameraEnum::CAMERA_STATUS_ONLINE]);
+
+        //已有拉流id,直接返回拉流链接
+        if($query->revert_id != 'NullId'){
+            $result['data'] = [
+                'camera_id' => Input::get('camera_id'),
+                'url' => env('EASY_DARWIN_JF_RTSP') .  $path
+            ];
+            return  $result;
+        }
+
         if($query->code_stream == 2){
             $code_stream = 0;
         }else{
@@ -344,6 +368,7 @@ class HaiKangController extends BaseController
 
         $data = [
             'url'        => $rtsp['data']['url'],
+            'customPath' => $path,
         ];
 
         return $data;

+ 20 - 0
Modules/Camera/Services/CameraServices.php

@@ -879,6 +879,26 @@ class CameraServices
         return $result;
     }
 
+    //海康获取rtsp流
+    public static function getHkRtsp($camera_id,$parent_id)
+    {
+        $mine_ext = DB::table('mine_list_ext')->where('mine_id',$parent_id)->get();
+
+        Input::replace(
+            [
+                'url'      => trim($mine_ext[0]->ip, '/') . ':' . $mine_ext[0]->port,
+                'key' => $mine_ext[0]->key,
+                'secret' => $mine_ext[0]->secret,
+                'camera_id' => $camera_id,
+                'parent_id' => $parent_id,
+            ]
+        );
+
+        $haikang = new HaiKangController();
+        $result = $haikang->getHikRtsp();
+        return $result;
+    }
+
     //根据摄像头id获取摄像头播放链接
     public static function getRtspHaiKang($camera_id,$parent_id)
     {