Selaa lähdekoodia

添加获取摄像头封面图功能

qiuzijian 3 vuotta sitten
vanhempi
commit
3cfa1ded0a

+ 105 - 116
.idea/workspace.xml

@@ -2,8 +2,10 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="b5beace6-e4f4-419b-8299-c67e17af5998" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -17,19 +19,10 @@
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="592">
-              <caret line="126" column="30" selection-start-line="126" selection-start-column="10" selection-end-line="126" selection-end-column="30" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="483">
-              <caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
+            <state relative-caret-position="462">
+              <caret line="27" column="8" selection-start-line="27" selection-start-column="8" selection-end-line="28" selection-end-column="20" />
               <folding>
                 <element signature="e#126#164#0#PHP" expanded="true" />
               </folding>
@@ -38,43 +31,46 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="373">
-              <caret line="467" column="21" selection-start-line="467" selection-start-column="12" selection-end-line="467" selection-end-column="21" />
+            <state relative-caret-position="543">
+              <caret line="313" column="43" selection-start-line="313" selection-start-column="43" selection-end-line="313" selection-end-column="43" />
               <folding>
-                <element signature="e#129#150#0#PHP" expanded="true" />
+                <element signature="e#51#107#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/app/Helpers.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="253">
-              <caret line="96" column="25" selection-start-line="96" selection-start-column="20" selection-end-line="96" selection-end-column="25" />
+            <state relative-caret-position="379">
+              <caret line="33" column="28" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="28" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="585">
-              <caret line="84" column="46" selection-start-line="84" selection-start-column="46" selection-end-line="84" selection-end-column="46" />
+            <state relative-caret-position="118">
+              <caret line="816" column="70" selection-start-line="816" selection-start-column="70" selection-end-line="816" selection-end-column="70" />
               <folding>
-                <element signature="e#141#162#0#PHP" expanded="true" />
+                <element signature="e#129#150#0#PHP" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
+        <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="231">
-              <caret line="20" column="47" selection-start-line="20" selection-start-column="47" selection-end-line="20" selection-end-column="47" />
+            <state relative-caret-position="492">
+              <caret line="82" column="50" lean-forward="true" selection-start-line="82" selection-start-column="50" selection-end-line="82" selection-end-column="50" />
+              <folding>
+                <element signature="e#141#162#0#PHP" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -82,8 +78,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="370">
-              <caret line="68" column="74" selection-start-line="68" selection-start-column="64" selection-end-line="68" selection-end-column="74" />
+            <state relative-caret-position="2331">
+              <caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
               <folding>
                 <element signature="e#40#71#0#PHP" expanded="true" />
               </folding>
@@ -91,11 +87,11 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateCameraStatus.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="590">
-              <caret line="83" column="24" selection-start-line="83" selection-start-column="24" selection-end-line="83" selection-end-column="24" />
+            <state relative-caret-position="420">
+              <caret line="24" column="39" selection-start-line="24" selection-start-column="30" selection-end-line="24" selection-end-column="39" />
               <folding>
                 <element signature="e#40#71#0#PHP" expanded="true" />
               </folding>
@@ -106,8 +102,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="571">
-              <caret line="40" column="43" lean-forward="true" selection-start-line="40" selection-start-column="8" selection-end-line="40" selection-end-column="43" />
+            <state relative-caret-position="819">
+              <caret line="40" column="32" selection-start-line="40" selection-start-column="32" selection-end-line="40" selection-end-column="32" />
               <folding>
                 <element signature="e#40#71#0#PHP" expanded="true" />
               </folding>
@@ -119,8 +115,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>camera_source</find>
-      <find>data-href</find>
       <find>oss</find>
       <find>OssClient</find>
       <find>请求上传</find>
@@ -149,6 +143,8 @@
       <find>getCamerasList</find>
       <find>RE</find>
       <find>CAMERA_S</find>
+      <find>cover_picture</find>
+      <find>cameraUploadCpicture</find>
     </findStrings>
   </component>
   <component name="Git.Settings">
@@ -189,7 +185,6 @@
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_02_074532_add_is_show_to_camera_list.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-08-02.log" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_05_095128_add_code_stream_to_camera_list.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Routes/web.php" />
         <option value="$PROJECT_DIR$/config/filesystems.php" />
         <option value="$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2021_08_10_102022_add_cover_picture_to_camera_list.php" />
@@ -204,10 +199,11 @@
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
         <option value="$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Database/Migrations/2022_01_21_151316_add_field_to_camera_list_2021_01_21.php" />
+        <option value="$PROJECT_DIR$/app/Console/Commands/UpdateCameraStatus.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Routes/web.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
         <option value="$PROJECT_DIR$/app/Http/Controllers/TestsController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php" />
-        <option value="$PROJECT_DIR$/app/Console/Commands/UpdateCameraStatus.php" />
       </list>
     </option>
   </component>
@@ -328,7 +324,7 @@
     </include_path>
   </component>
   <component name="ProjectFrameBounds" fullScreen="true">
-    <option name="width" value="1440" />
+    <option name="width" value="714" />
     <option name="height" value="900" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -337,7 +333,6 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
-      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -386,14 +381,6 @@
               <item name="video_system" type="462c0819:PsiDirectoryNode" />
               <item name="Modules" type="462c0819:PsiDirectoryNode" />
               <item name="Camera" type="462c0819:PsiDirectoryNode" />
-              <item name="Database" type="462c0819:PsiDirectoryNode" />
-              <item name="Migrations" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="video_system" type="b2602c69:ProjectViewProjectNode" />
-              <item name="video_system" type="462c0819:PsiDirectoryNode" />
-              <item name="Modules" type="462c0819:PsiDirectoryNode" />
-              <item name="Camera" type="462c0819:PsiDirectoryNode" />
               <item name="Routes" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
@@ -405,6 +392,7 @@
           <select />
         </subPane>
       </pane>
+      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -451,18 +439,19 @@
       <workItem from="1640681616752" duration="486000" />
       <workItem from="1641785500605" duration="61000" />
       <workItem from="1641786030534" duration="477000" />
-      <workItem from="1641800375826" duration="21552000" />
+      <workItem from="1641800375826" duration="26685000" />
+      <workItem from="1643085370753" duration="11882000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="424918000" />
+    <option name="totallyTimeSpent" value="441933000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17310444" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17525035" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
@@ -487,13 +476,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/Modules/Admin/Routes/web.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="126">
-          <caret line="15" column="62" selection-start-line="15" selection-start-column="58" selection-end-line="15" selection-end-column="62" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Routes/web.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="462">
@@ -554,13 +536,6 @@
         <state relative-caret-position="-153" />
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/web.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="336">
-          <caret line="25" column="15" selection-start-line="25" selection-start-column="15" selection-end-line="25" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/vendor/symfony/http-foundation/File/UploadedFile.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="260">
@@ -575,20 +550,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/config/filesystems.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="424">
-          <caret line="69" column="23" selection-start-line="69" selection-start-column="23" selection-end-line="69" selection-end-column="23" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="144">
-          <caret line="1696" column="34" lean-forward="true" selection-start-line="1696" selection-start-column="34" selection-end-line="1696" selection-end-column="34" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/storage/logs/laravel-2021-08-10.log">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-840" />
@@ -700,16 +661,6 @@
         <state relative-caret-position="-393" />
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="825">
-          <caret line="367" column="46" selection-start-line="367" selection-start-column="46" selection-end-line="367" selection-end-column="46" />
-          <folding>
-            <element signature="e#51#107#0#PHP" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Jobs/CameraListExcel.php">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="340">
@@ -777,74 +728,112 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/app/Helpers.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
+        <state relative-caret-position="1911">
           <caret line="96" column="25" selection-start-line="96" selection-start-column="20" selection-end-line="96" selection-end-column="25" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
+    <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="483">
-          <caret line="28" column="26" lean-forward="true" selection-start-line="28" selection-start-column="26" selection-end-line="28" selection-end-column="26" />
+        <state relative-caret-position="2331">
+          <caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
           <folding>
-            <element signature="e#126#164#0#PHP" expanded="true" />
+            <element signature="e#40#71#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
+    <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateCameraStatus.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="585">
-          <caret line="84" column="46" selection-start-line="84" selection-start-column="46" selection-end-line="84" selection-end-column="46" />
+        <state relative-caret-position="420">
+          <caret line="24" column="39" selection-start-line="24" selection-start-column="30" selection-end-line="24" selection-end-column="39" />
           <folding>
-            <element signature="e#141#162#0#PHP" expanded="true" />
+            <element signature="e#40#71#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateHkList.php">
+    <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="370">
-          <caret line="68" column="74" selection-start-line="68" selection-start-column="64" selection-end-line="68" selection-end-column="74" />
+        <state relative-caret-position="819">
+          <caret line="40" column="32" selection-start-line="40" selection-start-column="32" selection-end-line="40" selection-end-column="32" />
           <folding>
             <element signature="e#40#71#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
+    <entry file="jar://$APPLICATION_HOME_DIR$/plugins/php/lib/php.jar!/stubs/standard/standard_2.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="592">
-          <caret line="126" column="30" selection-start-line="126" selection-start-column="10" selection-end-line="126" selection-end-column="30" />
+        <state relative-caret-position="323">
+          <caret line="700" column="40" selection-start-line="700" selection-start-column="40" selection-end-line="700" selection-end-column="40" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+    <entry file="file://$PROJECT_DIR$/vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="119">
+          <caret line="1691" column="20" selection-start-line="1691" selection-start-column="20" selection-end-line="1691" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/config/filesystems.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="522">
+          <caret line="71" column="40" lean-forward="true" selection-start-line="71" selection-start-column="40" selection-end-line="71" selection-end-column="40" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="373">
-          <caret line="467" column="21" selection-start-line="467" selection-start-column="12" selection-end-line="467" selection-end-column="21" />
+        <state relative-caret-position="492">
+          <caret line="82" column="50" lean-forward="true" selection-start-line="82" selection-start-column="50" selection-end-line="82" selection-end-column="50" />
           <folding>
-            <element signature="e#129#150#0#PHP" expanded="true" />
+            <element signature="e#141#162#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/Console/Commands/StopStreamDelFiles.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/web.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="571">
-          <caret line="40" column="43" lean-forward="true" selection-start-line="40" selection-start-column="8" selection-end-line="40" selection-end-column="43" />
+        <state relative-caret-position="336">
+          <caret line="25" column="86" selection-start-line="25" selection-start-column="66" selection-end-line="25" selection-end-column="86" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/CameraController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="543">
+          <caret line="313" column="43" selection-start-line="313" selection-start-column="43" selection-end-line="313" selection-end-column="43" />
           <folding>
-            <element signature="e#40#71#0#PHP" expanded="true" />
+            <element signature="e#51#107#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/app/Console/Commands/UpdateCameraStatus.php">
+    <entry file="file://$PROJECT_DIR$/app/Http/Controllers/TestsController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="462">
+          <caret line="27" column="8" selection-start-line="27" selection-start-column="8" selection-end-line="28" selection-end-column="20" />
+          <folding>
+            <element signature="e#126#164#0#PHP" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Enum/CameraEnum.php">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="590">
-          <caret line="83" column="24" selection-start-line="83" selection-start-column="24" selection-end-line="83" selection-end-column="24" />
+        <state relative-caret-position="379">
+          <caret line="33" column="28" selection-start-line="33" selection-start-column="10" selection-end-line="33" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="118">
+          <caret line="816" column="70" selection-start-line="816" selection-start-column="70" selection-end-line="816" selection-end-column="70" />
           <folding>
-            <element signature="e#40#71#0#PHP" expanded="true" />
+            <element signature="e#129#150#0#PHP" expanded="true" />
           </folding>
         </state>
       </provider>

+ 3 - 0
Modules/Camera/Enum/CameraEnum.php

@@ -30,6 +30,9 @@ class CameraEnum
     //ts文件后缀
     const TS_FILE_SUFFIX = '*.ts';
 
+    //封面图输出名称
+    const COVER_PICTURE_NAME = 'out.png';
+
     //视频服务器反向代理url
     const VIDEO_AGENCY_URL = 'http://video.nxjiewei.com:8011/';
 

+ 31 - 5
Modules/Camera/Services/CameraServices.php

@@ -800,14 +800,10 @@ class CameraServices
             if (!is_dir('/www/wwwroot/video.nxjiewei.com/public/' . CameraEnum::M3U8_FILE_PATH . '/' . $path)) {
                 mkdir('/www/wwwroot/video.nxjiewei.com/public/' . CameraEnum::M3U8_FILE_PATH . '/' . $path, 0777, true);
             }
+            //取流进程
             $exec = 'nohup /usr/bin/ffmpeg -i ' . $result_hk['data']['url'] . ' -vcodec copy -acodec copy -vbsf h264_mp4toannexb -f hls -hls_flags delete_segments -segment_list_size 10 -hls_list_size 2 /www/wwwroot/video.nxjiewei.com/public/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . ' >/dev/null &';
             shell_exec($exec);
 
-            $result['data'] = [
-                'camera_id' => $camera_id,
-                'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
-            ];
-
             //sleep10秒生成文件
             $i = 1;
             while ($i <= 10) {
@@ -817,7 +813,32 @@ class CameraServices
                 $ts_exists = glob(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::TS_FILE_SUFFIX);
 
                 if ($file_exists && $ts_exists) {
+                    //查询是否存在封面图
+                    if (!$camera->cover_picture && $camera_id == 12032) {
+                        //获取第一帧作为封面图
+                        $cover_exec = 'ffmpeg -i ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . ' -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" ' . public_path() . '/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::COVER_PICTURE_NAME;
+                        exec($cover_exec);
+
+                        //判断图片是否存在
+                        $j = 1;
+                        while ($j <= 3) {
+                            $picture_exists = file_exists(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::COVER_PICTURE_NAME);
+
+                            if ($picture_exists) {
+                                Log::info(111);
+                            } else {
+                                Log::info(222);
+                            }
+                        }
+                    }
+
+                    $result['data'] = [
+                        'camera_id' => $camera_id,
+                        'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
+                    ];
+
                     CameraList::where('id', $camera_id)->update(['revert_id' => CameraEnum::CAMERA_FILE_EXIST]);
+
                     return $result;
                 } else {
                     sleep(1);
@@ -834,6 +855,11 @@ class CameraServices
             $result['msg'] = ApiEnum::HK_REQUEST_FAIL;
         }
 
+        $result['data'] = [
+            'camera_id' => $camera_id,
+            'url' => env('VIDEO_SYSTEM_URL') . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::M3U8_FILE_NAME . '?' . time(),
+        ];
+
         return $result;
     }
 

+ 15 - 3
app/Http/Controllers/TestsController.php

@@ -25,8 +25,20 @@ class TestsController {
 
     public function test()
     {
-        $path = '梅花井煤矿/采煤工作面监控/6110二带机头11434/20220121';
-        $ts_exists = glob(public_path() . '/' . CameraEnum::M3U8_FILE_PATH . '/' . $path . '/' . CameraEnum::TS_FILE_SUFFIX);
-        dd($ts_exists);
+        $result = exec('ffmpeg -i /www/wwwroot/video.nxjiewei.com/public/files/video/m3u8/羊场湾煤矿/一号井工业电视系统/主运输胶带机/主井机尾/20220125/out.m3u8 -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" /www/wwwroot/video.nxjiewei.com/public/files/video/output.png &');
+        dd($result);
+        $file = '/www/wwwroot/video.nxjiewei.com/public/files/video/m3u8/羊场湾煤矿/一号井工业电视系统/主运输胶带机/主井机尾/20220125/out.m3u8';
+//        $file = './out.m3u8';
+        $image_path = '/www/wwwroot/video.nxjiewei.com/public/files/video/';
+        $str = 'ffmpeg -i ' . $file . ' -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" ' . $image_path . 'output-%04d.png';
+        $result = exec($str, $output, $return_var);
+        var_dump($result);
+        echo '<br/>';
+        var_dump($output);
+        echo '<br/>';
+        var_dump($return_var);
+
+        'ffmpeg -i /www/wwwroot/video.nxjiewei.com/public/files/video/m3u8/羊场湾煤矿/一号井工业电视系统/主运输胶带机/主井机尾/20220125/out.m3u8 -vf "select=(gte(t\,120))*(isnan(prev_selected_t)+gte(t-prev_selected_t\,120))" -vsync 0 /www/wwwroot/video.nxjiewei.com/public/files/video/image_%05d.jpg';
+//        'ffmpeg -i /www/wwwroot/video.nxjiewei.com/public/files/video/m3u8/羊场湾煤矿/一号井工业电视系统/主运输胶带机/主井机尾/20220125/out.m3u8 -vf "select=between(mod(n\, 25)\, 0\, 0), setpts=N/24/TB" output-%04d.png';
     }
 }