Ver código fonte

硬盘录像机获取首帧图片修改

任敬轩 3 anos atrás
pai
commit
7b4d352e3f
1 arquivos alterados com 52 adições e 44 exclusões
  1. 52 44
      Modules/Camera/Services/CameraServices.php

+ 52 - 44
Modules/Camera/Services/CameraServices.php

@@ -438,54 +438,62 @@ class CameraServices
             'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
         ];
 
-        //sleep10秒生成文件
-        $i = 1;
-        while ($i <= 10) {
-            //判断m3u8文件是否存在
-            $file_exists = file_exists(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::M3U8_FILE_NAME);
-            //判断ts文件是否存在
-            $ts_exists = glob(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::TS_FILE_SUFFIX);
-            //查询是否存在封面图
-            $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
-
-            if ($file_exists && $ts_exists) {
-                //查询是否存在封面图
-                if (!$cover_picture) {
-                    //获取第一帧作为封面图
-                    $file_name = time() . CameraEnum::COVER_PICTURE_NAME;
-                    $cover_exec = 'ffmpeg -i ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::M3U8_FILE_NAME . ' -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . $file_name;
-                    exec($cover_exec);
-
-                    //判断图片是否存在
-                    $picture_exists = file_exists(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . $file_name);
-
-                    if ($picture_exists) {
-                        //上传图片到oss并更新数据库
-                        $picture_path = self::uploadOssFile($file_name, public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/');
-                        CameraList::where('id', $camera_id)->update(['cover_picture' => $picture_path]);
-                    }
-                }
+//        //sleep10秒生成文件
+//        $i = 1;
+//        while ($i <= 10) {
+//            //判断m3u8文件是否存在
+//            $file_exists = file_exists(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::M3U8_FILE_NAME);
+//            //判断ts文件是否存在
+//            $ts_exists = glob(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::TS_FILE_SUFFIX);
+//            //查询是否存在封面图
+//            $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
+//
+//            if ($file_exists && $ts_exists) {
+//                //查询是否存在封面图
+//                if (!$cover_picture) {
+//                    //获取第一帧作为封面图
+//                    $file_name = time() . CameraEnum::COVER_PICTURE_NAME;
+//                    $cover_exec = 'ffmpeg -i ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . CameraEnum::M3U8_FILE_NAME . ' -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . $file_name;
+//                    exec($cover_exec);
+//
+//                    //判断图片是否存在
+//                    $picture_exists = file_exists(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/' . $file_name);
+//
+//                    if ($picture_exists) {
+//                        //上传图片到oss并更新数据库
+//                        $picture_path = self::uploadOssFile($file_name, public_path() . '/' . CameraEnum::M3U8_FILE_PATH . $path . '/' . date('Ymd', time()) . '/');
+//                        CameraList::where('id', $camera_id)->update(['cover_picture' => $picture_path]);
+//                    }
+//                }
+//
+//                //更新拉流id
+//                CameraList::where('id', $camera_id)->update(
+//                    [
+//                        'revert_id'  => trim($curl_res, '"'),
+//                        'updated_at' => date('Y-m-d H:i:s'),
+//                    ]
+//                );
+//                return $result;
+//            } else {
+//                sleep(1);
+//            }
+//
+//            $i++;
+//        }
+//
+//        //标记摄像头为异常状态
+//        CameraList::where('id', $camera_id)->update(['camera_status' => CameraEnum::CAMERA_STATUS_ERROR]);
+//
+//        $result['status'] = false;
+//        $result['msg']    = ApiEnum::EASY_DAWIN_REQUEST_FAIL;
 
-                //更新拉流id
-                CameraList::where('id', $camera_id)->update(
-                    [
-                        'revert_id'  => trim($curl_res, '"'),
-                        'updated_at' => date('Y-m-d H:i:s'),
-                    ]
-                );
-                return $result;
-            } else {
-                sleep(1);
-            }
+        //查询是否存在封面图
+        $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
 
-            $i++;
+        if (!$cover_picture) {
+            register_shutdown_function(array(new HaiKangController(), "getFirstPicture"),$path,$query->camera_url);
         }
 
-        //标记摄像头为异常状态
-        CameraList::where('id', $camera_id)->update(['camera_status' => CameraEnum::CAMERA_STATUS_ERROR]);
-
-        $result['status'] = false;
-        $result['msg']    = ApiEnum::EASY_DAWIN_REQUEST_FAIL;
         return $result;
     }