소스 검색

硬盘录像机首帧图片

任敬轩 3 년 전
부모
커밋
0dce13b2c3
1개의 변경된 파일52개의 추가작업 그리고 52개의 파일을 삭제
  1. 52 52
      Modules/Camera/Services/CameraServices.php

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

@@ -438,62 +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]);
-//                    }
-//                }
-//
-//                //更新拉流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;
+        //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');
 
-        //查询是否存在封面图
-        $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);
 
-        if (!$cover_picture) {
-            register_shutdown_function(array(new CameraServices(), "getFirstPicture"),$camera_id,$path);
+                    //判断图片是否存在
+                    $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;
+
+        //查询是否存在封面图
+//        $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture');
+//
+//        if (!$cover_picture) {
+//            register_shutdown_function(array(new CameraServices(), "getFirstPicture"),$camera_id,$path);
+//        }
+
         return $result;
     }