Parcourir la source

添加宇视摄像头

任敬轩 il y a 3 ans
Parent
commit
91b44bb0f0

+ 9 - 1
Modules/Camera/Enum/CameraEnum.php

@@ -66,7 +66,7 @@ class CameraEnum
     const CAMERA_SOURCE_3 = 3;  //内网服务器
 
     const CAMERA_SOURCE_EXCHANGE = [
-        self::CAMERA_SOURCE_1 => '视频录像机',
+        self::CAMERA_SOURCE_1 => '硬盘录像机',
         self::CAMERA_SOURCE_2 => '视频服务器',
         self::CAMERA_SOURCE_3 => '内网服务器',
     ];
@@ -74,10 +74,12 @@ class CameraEnum
     //视频服务器来源
     const VIDEO_RECORDER_HK = 1;  //海康
     const VIDEO_RECORDER_DH = 2;  //大华
+    const VIDEO_RECORDER_YS = 3;  //宇视
 
     const VIDEO_RECORDER_EXCHANGE = [
         self::VIDEO_RECORDER_HK => '海康',
         self::VIDEO_RECORDER_DH => '大华',
+        self::VIDEO_RECORDER_YS => '宇视',
     ];
 
     //乐橙接口url
@@ -126,6 +128,12 @@ class CameraEnum
         self::CODE_STREAM_MAIN => '0',  //主码流
     ];
 
+    //宇视视频码流转义
+    const CODE_STREAM_YS = [
+        self::CODE_STREAM_SUB  => '1',  //子码流
+        self::CODE_STREAM_MAIN => '0',  //主码流
+    ];
+
     //摄像头状态
     const CAMERA_STATUS_ONLINE  = '1';  //在线
     const CAMERA_STATUS_OFFLINE = '2';  //离线

+ 1 - 1
Modules/Camera/Http/Controllers/CameraController.php

@@ -176,7 +176,7 @@ class CameraController extends BaseController
         $formObj->input('camera_name', '摄像头名称');
         $formObj->select('camera_type', '摄像头类型', CameraEnum::CAMERA_TYPE_EXCHANGE, CameraEnum::CAMERA_TYPE_NORMAL);
         $formObj->select('camera_source', '摄像头来源', CameraEnum::CAMERA_SOURCE_EXCHANGE, CameraEnum::CAMERA_SOURCE_1);
-        $formObj->radio('video_recorder', '视频服务器来源',CameraEnum::VIDEO_RECORDER_EXCHANGE, CameraEnum::VIDEO_RECORDER_HK);
+        $formObj->radio('video_recorder', '硬盘录像机品牌',CameraEnum::VIDEO_RECORDER_EXCHANGE, CameraEnum::VIDEO_RECORDER_HK);
         $formObj->input('camera_url', '摄像头链接');
         $formObj->input('user_name', '用户名');
         $formObj->input('password', '密码');

+ 16 - 4
Modules/Camera/Services/CameraServices.php

@@ -32,7 +32,6 @@ class CameraServices
     {
         $result['status'] = true;
         $result['msg']    = AdminEnum::RETURN_SUCCESS;
-
         //通过ip+端口+通道号作为唯一标识判断数据是否存在
         if ($params['ip'] && $params['port'] && $params['com_number']) {
             $query = CameraList::where(
@@ -42,7 +41,6 @@ class CameraServices
                     'com_number' => $params['com_number'],
                 ]
             )->first();
-
             if ($query) {
                 $result['status'] = false;
                 $result['msg']    = AdminEnum::RECORD_ALREADY_EXIST;
@@ -55,7 +53,6 @@ class CameraServices
         } else {
             $camera_url = self::makeCameraUrl($params);
         }
-
         //入库动作
         $res = CameraList::insert(
             [
@@ -105,7 +102,7 @@ class CameraServices
             } else {
                 $url = '';
             }
-        } else {
+        } elseif($params['video_recorder'] == CameraEnum::VIDEO_RECORDER_DH){
             if (isset($params['code_stream'])) {
                 $code_stream = CameraEnum::CODE_STREAM_DH[$params['code_stream']];
             } else {
@@ -116,6 +113,21 @@ class CameraServices
                 $url  = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
                 $url .= $params['ip'] . ':' . $params['port'] . '/cam/realmonitor?channel=' . $params['com_number'] . '&';
                 $url .= 'subtype=' . $code_stream;
+                dd($url);exit;
+            } else {
+                $url = '';
+            }
+        }elseif($params['video_recorder'] == CameraEnum::VIDEO_RECORDER_YS){
+            if (isset($params['code_stream'])) {
+                $code_stream = CameraEnum::CODE_STREAM_DH[$params['code_stream']];
+            } else {
+                $code_stream = 'sub';
+            }
+
+            if ($params['user_name'] && $params['password'] && $params['ip'] && $params['port'] && $params['com_number']) {
+                $url  = 'rtsp://' . $params['user_name'] . ':' . $params['password'] . '@';
+                $url .= $params['ip'] . ':' . $params['port'] . '/unicast/c' . $params['com_number'] . '/s';
+                $url .= $code_stream.'/live';
             } else {
                 $url = '';
             }