Crazyka51 commited on
Commit
822498c
·
verified ·
1 Parent(s): 38a81a3

Create forensic video editor with all functions - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +634 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Editor
3
- emoji: 🏆
4
- colorFrom: pink
5
- colorTo: red
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: editor
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: gray
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,634 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Forensic Video Editor</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .timeline-track {
11
+ height: 100px;
12
+ background-color: #2d3748;
13
+ position: relative;
14
+ }
15
+ .timeline-marker {
16
+ position: absolute;
17
+ width: 2px;
18
+ height: 100%;
19
+ background-color: red;
20
+ cursor: col-resize;
21
+ }
22
+ .video-container {
23
+ background-color: #1a202c;
24
+ }
25
+ .zoom-controls {
26
+ background-color: rgba(0, 0, 0, 0.7);
27
+ }
28
+ .frame-controls {
29
+ background-color: rgba(0, 0, 0, 0.7);
30
+ }
31
+ .enhancement-panel {
32
+ transition: all 0.3s ease;
33
+ }
34
+ .waveform {
35
+ height: 60px;
36
+ background: linear-gradient(90deg, #4a5568 0%, #2d3748 100%);
37
+ position: relative;
38
+ }
39
+ .waveform-bar {
40
+ position: absolute;
41
+ bottom: 0;
42
+ width: 2px;
43
+ background-color: #4299e1;
44
+ }
45
+ .metadata-panel {
46
+ max-height: 300px;
47
+ overflow-y: auto;
48
+ }
49
+ .video-frame {
50
+ border: 1px solid #4a5568;
51
+ cursor: pointer;
52
+ }
53
+ .video-frame.active {
54
+ border-color: #4299e1;
55
+ box-shadow: 0 0 0 2px #4299e1;
56
+ }
57
+ .color-picker {
58
+ width: 30px;
59
+ height: 30px;
60
+ border-radius: 50%;
61
+ cursor: pointer;
62
+ }
63
+ .modal-overlay {
64
+ background-color: rgba(0, 0, 0, 0.8);
65
+ }
66
+ .modal-content {
67
+ max-height: 90vh;
68
+ }
69
+ .filter-slider {
70
+ -webkit-appearance: none;
71
+ width: 100%;
72
+ height: 8px;
73
+ border-radius: 4px;
74
+ background: #4a5568;
75
+ outline: none;
76
+ }
77
+ .filter-slider::-webkit-slider-thumb {
78
+ -webkit-appearance: none;
79
+ appearance: none;
80
+ width: 16px;
81
+ height: 16px;
82
+ border-radius: 50%;
83
+ background: #4299e1;
84
+ cursor: pointer;
85
+ }
86
+ </style>
87
+ </head>
88
+ <body class="bg-gray-900 text-gray-200 font-sans">
89
+ <!-- Header -->
90
+ <header class="bg-gray-800 p-4 flex justify-between items-center border-b border-gray-700">
91
+ <div class="flex items-center space-x-4">
92
+ <h1 class="text-2xl font-bold text-blue-400">
93
+ <i class="fas fa-microscope mr-2"></i>Forensic Video Editor
94
+ </h1>
95
+ <div class="flex space-x-2">
96
+ <button class="px-3 py-1 bg-blue-600 hover:bg-blue-700 rounded flex items-center">
97
+ <i class="fas fa-folder-open mr-2"></i> Open
98
+ </button>
99
+ <button class="px-3 py-1 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
100
+ <i class="fas fa-save mr-2"></i> Save
101
+ </button>
102
+ <button class="px-3 py-1 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
103
+ <i class="fas fa-share-alt mr-2"></i> Export
104
+ </button>
105
+ </div>
106
+ </div>
107
+ <div class="flex items-center space-x-4">
108
+ <div class="relative">
109
+ <input type="text" placeholder="Search metadata..." class="bg-gray-700 px-4 py-1 rounded-full w-64 focus:outline-none focus:ring-2 focus:ring-blue-500">
110
+ <i class="fas fa-search absolute right-3 top-2 text-gray-400"></i>
111
+ </div>
112
+ <button class="px-3 py-1 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
113
+ <i class="fas fa-cog mr-2"></i> Settings
114
+ </button>
115
+ </div>
116
+ </header>
117
+
118
+ <div class="flex h-screen">
119
+ <!-- Left Sidebar -->
120
+ <div class="w-64 bg-gray-800 border-r border-gray-700 flex flex-col">
121
+ <div class="p-4 border-b border-gray-700">
122
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
123
+ <i class="fas fa-layer-group mr-2 text-blue-400"></i> Media Library
124
+ </h2>
125
+ <div class="flex space-x-2 mb-3">
126
+ <button class="px-2 py-1 bg-blue-600 hover:bg-blue-700 rounded text-sm">
127
+ <i class="fas fa-plus mr-1"></i> Add
128
+ </button>
129
+ <button class="px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
130
+ <i class="fas fa-trash mr-1"></i> Remove
131
+ </button>
132
+ </div>
133
+ <div class="bg-gray-700 rounded p-2 h-40 overflow-y-auto">
134
+ <div class="flex items-center p-1 hover:bg-gray-600 rounded cursor-pointer">
135
+ <i class="fas fa-video mr-2 text-red-400"></i>
136
+ <span class="truncate">Surveillance_Camera_1.mp4</span>
137
+ </div>
138
+ <div class="flex items-center p-1 hover:bg-gray-600 rounded cursor-pointer">
139
+ <i class="fas fa-video mr-2 text-red-400"></i>
140
+ <span class="truncate">Bodycam_Officer_Johnson.mp4</span>
141
+ </div>
142
+ <div class="flex items-center p-1 hover:bg-gray-600 rounded cursor-pointer">
143
+ <i class="fas fa-image mr-2 text-green-400"></i>
144
+ <span class="truncate">Crime_Scene_Photo_1.jpg</span>
145
+ </div>
146
+ <div class="flex items-center p-1 hover:bg-gray-600 rounded cursor-pointer">
147
+ <i class="fas fa-file-audio mr-2 text-purple-400"></i>
148
+ <span class="truncate">911_Call_Recording.wav</span>
149
+ </div>
150
+ </div>
151
+ </div>
152
+
153
+ <div class="p-4 border-b border-gray-700">
154
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
155
+ <i class="fas fa-tools mr-2 text-blue-400"></i> Tools
156
+ </h2>
157
+ <div class="grid grid-cols-2 gap-2">
158
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
159
+ <i class="fas fa-eye mb-1 text-yellow-400"></i>
160
+ <span class="text-xs">Enhance</span>
161
+ </button>
162
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
163
+ <i class="fas fa-ruler mb-1 text-green-400"></i>
164
+ <span class="text-xs">Measure</span>
165
+ </button>
166
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
167
+ <i class="fas fa-search-plus mb-1 text-blue-400"></i>
168
+ <span class="text-xs">Zoom</span>
169
+ </button>
170
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
171
+ <i class="fas fa-bezier-curve mb-1 text-purple-400"></i>
172
+ <span class="text-xs">Stabilize</span>
173
+ </button>
174
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
175
+ <i class="fas fa-lightbulb mb-1 text-orange-400"></i>
176
+ <span class="text-xs">Lighting</span>
177
+ </button>
178
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded flex flex-col items-center">
179
+ <i class="fas fa-fingerprint mb-1 text-red-400"></i>
180
+ <span class="text-xs">Identify</span>
181
+ </button>
182
+ </div>
183
+ </div>
184
+
185
+ <div class="p-4 flex-1 overflow-y-auto">
186
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
187
+ <i class="fas fa-info-circle mr-2 text-blue-400"></i> Metadata
188
+ </h2>
189
+ <div class="metadata-panel bg-gray-700 rounded p-2 text-sm">
190
+ <div class="mb-2">
191
+ <div class="font-medium text-blue-300">File Information</div>
192
+ <div class="grid grid-cols-2 gap-1 mt-1">
193
+ <div>Filename:</div>
194
+ <div>Surveillance_Camera_1.mp4</div>
195
+ <div>Format:</div>
196
+ <div>MP4 (H.264)</div>
197
+ <div>Duration:</div>
198
+ <div>00:23:45</div>
199
+ <div>Resolution:</div>
200
+ <div>1920x1080</div>
201
+ <div>Frame Rate:</div>
202
+ <div>30 fps</div>
203
+ <div>Size:</div>
204
+ <div>1.2 GB</div>
205
+ </div>
206
+ </div>
207
+ <div class="mb-2">
208
+ <div class="font-medium text-blue-300">Device Information</div>
209
+ <div class="grid grid-cols-2 gap-1 mt-1">
210
+ <div>Make:</div>
211
+ <div>Axis Communications</div>
212
+ <div>Model:</div>
213
+ <div>AXIS P1365</div>
214
+ <div>Serial:</div>
215
+ <div>AXP1365-987654</div>
216
+ <div>Firmware:</div>
217
+ <div>v5.55.2</div>
218
+ </div>
219
+ </div>
220
+ <div>
221
+ <div class="font-medium text-blue-300">Timestamps</div>
222
+ <div class="grid grid-cols-2 gap-1 mt-1">
223
+ <div>Created:</div>
224
+ <div>2023-05-15 14:23:45</div>
225
+ <div>Modified:</div>
226
+ <div>2023-05-15 14:23:45</div>
227
+ <div>Accessed:</div>
228
+ <div>2023-06-20 09:12:33</div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+ <!-- Main Content -->
236
+ <div class="flex-1 flex flex-col overflow-hidden">
237
+ <!-- Video Display Area -->
238
+ <div class="video-container flex-1 flex items-center justify-center relative">
239
+ <div class="relative">
240
+ <video id="mainVideo" class="max-w-full max-h-[70vh]" controls>
241
+ <source src="" type="video/mp4">
242
+ Your browser does not support the video tag.
243
+ </video>
244
+ <div class="zoom-controls absolute top-2 right-2 flex flex-col space-y-2 p-2 rounded">
245
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
246
+ <i class="fas fa-search-plus"></i>
247
+ </button>
248
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
249
+ <i class="fas fa-search-minus"></i>
250
+ </button>
251
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
252
+ <i class="fas fa-expand"></i>
253
+ </button>
254
+ </div>
255
+ <div class="frame-controls absolute bottom-2 left-0 right-0 flex justify-center space-x-4 p-2 rounded">
256
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
257
+ <i class="fas fa-step-backward"></i>
258
+ </button>
259
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
260
+ <i class="fas fa-backward"></i>
261
+ </button>
262
+ <button class="p-2 bg-blue-600 hover:bg-blue-700 rounded-full">
263
+ <i class="fas fa-play"></i>
264
+ </button>
265
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
266
+ <i class="fas fa-forward"></i>
267
+ </button>
268
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
269
+ <i class="fas fa-step-forward"></i>
270
+ </button>
271
+ <button class="p-2 bg-gray-700 hover:bg-gray-600 rounded-full">
272
+ <i class="fas fa-pause"></i>
273
+ </button>
274
+ </div>
275
+ </div>
276
+ </div>
277
+
278
+ <!-- Enhancement Panel -->
279
+ <div class="enhancement-panel bg-gray-800 border-t border-gray-700 p-4">
280
+ <div class="flex justify-between items-center mb-3">
281
+ <h3 class="font-semibold text-lg flex items-center">
282
+ <i class="fas fa-magic mr-2 text-purple-400"></i> Video Enhancements
283
+ </h3>
284
+ <div class="flex space-x-2">
285
+ <button class="px-3 py-1 bg-blue-600 hover:bg-blue-700 rounded text-sm">
286
+ <i class="fas fa-sliders-h mr-1"></i> Presets
287
+ </button>
288
+ <button class="px-3 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
289
+ <i class="fas fa-redo mr-1"></i> Reset All
290
+ </button>
291
+ </div>
292
+ </div>
293
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
294
+ <div class="bg-gray-700 p-3 rounded">
295
+ <div class="flex justify-between items-center mb-2">
296
+ <span class="font-medium">Brightness</span>
297
+ <span class="text-xs bg-gray-600 px-2 py-1 rounded">+15%</span>
298
+ </div>
299
+ <input type="range" min="-100" max="100" value="15" class="filter-slider w-full">
300
+ </div>
301
+ <div class="bg-gray-700 p-3 rounded">
302
+ <div class="flex justify-between items-center mb-2">
303
+ <span class="font-medium">Contrast</span>
304
+ <span class="text-xs bg-gray-600 px-2 py-1 rounded">+20%</span>
305
+ </div>
306
+ <input type="range" min="-100" max="100" value="20" class="filter-slider w-full">
307
+ </div>
308
+ <div class="bg-gray-700 p-3 rounded">
309
+ <div class="flex justify-between items-center mb-2">
310
+ <span class="font-medium">Saturation</span>
311
+ <span class="text-xs bg-gray-600 px-2 py-1 rounded">+10%</span>
312
+ </div>
313
+ <input type="range" min="-100" max="100" value="10" class="filter-slider w-full">
314
+ </div>
315
+ <div class="bg-gray-700 p-3 rounded">
316
+ <div class="flex justify-between items-center mb-2">
317
+ <span class="font-medium">Sharpness</span>
318
+ <span class="text-xs bg-gray-600 px-2 py-1 rounded">+25%</span>
319
+ </div>
320
+ <input type="range" min="0" max="100" value="25" class="filter-slider w-full">
321
+ </div>
322
+ </div>
323
+ </div>
324
+
325
+ <!-- Timeline Area -->
326
+ <div class="bg-gray-800 border-t border-gray-700 p-2">
327
+ <div class="flex justify-between items-center mb-2">
328
+ <div class="flex space-x-2">
329
+ <button class="px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
330
+ <i class="fas fa-cut mr-1"></i> Split
331
+ </button>
332
+ <button class="px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
333
+ <i class="fas fa-trash-alt mr-1"></i> Delete
334
+ </button>
335
+ <button class="px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
336
+ <i class="fas fa-bookmark mr-1"></i> Mark
337
+ </button>
338
+ </div>
339
+ <div class="text-sm">
340
+ <span class="font-mono">00:12:34:15</span> / <span class="text-gray-400">00:23:45:00</span>
341
+ </div>
342
+ </div>
343
+
344
+ <div class="timeline-track rounded mb-2">
345
+ <div class="waveform">
346
+ <!-- Waveform visualization would be generated here -->
347
+ <div class="absolute inset-0 flex items-end">
348
+ <div class="waveform-bar" style="left: 0%; height: 20%;"></div>
349
+ <div class="waveform-bar" style="left: 1%; height: 45%;"></div>
350
+ <div class="waveform-bar" style="left: 2%; height: 30%;"></div>
351
+ <!-- More waveform bars would be generated dynamically -->
352
+ </div>
353
+ </div>
354
+ <div class="timeline-marker" style="left: 30%;"></div>
355
+ <div class="absolute bottom-0 left-0 right-0 h-6 bg-gray-900 bg-opacity-50 flex">
356
+ <div class="border-r border-gray-600 w-16 flex-shrink-0"></div>
357
+ <div class="border-r border-gray-600 w-16 flex-shrink-0"></div>
358
+ <!-- More timeline ticks would be generated dynamically -->
359
+ </div>
360
+ </div>
361
+
362
+ <div class="flex space-x-2 overflow-x-auto py-2">
363
+ <div class="video-frame w-24 h-16 bg-gray-700 rounded flex-shrink-0">
364
+ <img src="https://via.placeholder.com/96x54/4a5568/ffffff?text=Frame+1" class="w-full h-full object-cover rounded">
365
+ </div>
366
+ <div class="video-frame w-24 h-16 bg-gray-700 rounded flex-shrink-0">
367
+ <img src="https://via.placeholder.com/96x54/4a5568/ffffff?text=Frame+2" class="w-full h-full object-cover rounded">
368
+ </div>
369
+ <div class="video-frame active w-24 h-16 bg-gray-700 rounded flex-shrink-0">
370
+ <img src="https://via.placeholder.com/96x54/4a5568/ffffff?text=Frame+3" class="w-full h-full object-cover rounded">
371
+ </div>
372
+ <div class="video-frame w-24 h-16 bg-gray-700 rounded flex-shrink-0">
373
+ <img src="https://via.placeholder.com/96x54/4a5568/ffffff?text=Frame+4" class="w-full h-full object-cover rounded">
374
+ </div>
375
+ <!-- More frames would be generated dynamically -->
376
+ </div>
377
+ </div>
378
+ </div>
379
+
380
+ <!-- Right Sidebar -->
381
+ <div class="w-64 bg-gray-800 border-l border-gray-700 flex flex-col">
382
+ <div class="p-4 border-b border-gray-700">
383
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
384
+ <i class="fas fa-tags mr-2 text-blue-400"></i> Tags & Annotations
385
+ </h2>
386
+ <div class="flex space-x-2 mb-3">
387
+ <button class="px-2 py-1 bg-blue-600 hover:bg-blue-700 rounded text-sm">
388
+ <i class="fas fa-plus mr-1"></i> Add Tag
389
+ </button>
390
+ <button class="px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-sm">
391
+ <i class="fas fa-highlighter mr-1"></i> Annotate
392
+ </button>
393
+ </div>
394
+ <div class="bg-gray-700 rounded p-2 h-40 overflow-y-auto">
395
+ <div class="flex items-center justify-between p-1 hover:bg-gray-600 rounded cursor-pointer">
396
+ <div class="flex items-center">
397
+ <div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div>
398
+ <span>Suspicious Activity</span>
399
+ </div>
400
+ <span class="text-xs text-gray-400">00:02:15</span>
401
+ </div>
402
+ <div class="flex items-center justify-between p-1 hover:bg-gray-600 rounded cursor-pointer">
403
+ <div class="flex items-center">
404
+ <div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div>
405
+ <span>Weapon Visible</span>
406
+ </div>
407
+ <span class="text-xs text-gray-400">00:05:42</span>
408
+ </div>
409
+ <div class="flex items-center justify-between p-1 hover:bg-gray-600 rounded cursor-pointer">
410
+ <div class="flex items-center">
411
+ <div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div>
412
+ <span>License Plate</span>
413
+ </div>
414
+ <span class="text-xs text-gray-400">00:08:33</span>
415
+ </div>
416
+ <div class="flex items-center justify-between p-1 hover:bg-gray-600 rounded cursor-pointer">
417
+ <div class="flex items-center">
418
+ <div class="w-3 h-3 rounded-full bg-blue-500 mr-2"></div>
419
+ <span>Person of Interest</span>
420
+ </div>
421
+ <span class="text-xs text-gray-400">00:12:07</span>
422
+ </div>
423
+ </div>
424
+ </div>
425
+
426
+ <div class="p-4 border-b border-gray-700">
427
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
428
+ <i class="fas fa-palette mr-2 text-blue-400"></i> Color Correction
429
+ </h2>
430
+ <div class="grid grid-cols-3 gap-2 mb-3">
431
+ <div class="color-picker bg-red-500"></div>
432
+ <div class="color-picker bg-green-500"></div>
433
+ <div class="color-picker bg-blue-500"></div>
434
+ <div class="color-picker bg-yellow-500"></div>
435
+ <div class="color-picker bg-purple-500"></div>
436
+ <div class="color-picker bg-pink-500"></div>
437
+ </div>
438
+ <div class="space-y-3">
439
+ <div>
440
+ <label class="block text-sm mb-1">Temperature</label>
441
+ <input type="range" min="-100" max="100" value="0" class="filter-slider w-full">
442
+ </div>
443
+ <div>
444
+ <label class="block text-sm mb-1">Tint</label>
445
+ <input type="range" min="-100" max="100" value="0" class="filter-slider w-full">
446
+ </div>
447
+ <div>
448
+ <label class="block text-sm mb-1">Exposure</label>
449
+ <input type="range" min="-100" max="100" value="0" class="filter-slider w-full">
450
+ </div>
451
+ </div>
452
+ </div>
453
+
454
+ <div class="p-4 flex-1 overflow-y-auto">
455
+ <h2 class="font-semibold text-lg mb-2 flex items-center">
456
+ <i class="fas fa-chart-line mr-2 text-blue-400"></i> Analysis Tools
457
+ </h2>
458
+ <div class="space-y-3">
459
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
460
+ <i class="fas fa-user-shield mr-2 text-green-400"></i>
461
+ <span>Face Detection</span>
462
+ </button>
463
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
464
+ <i class="fas fa-car mr-2 text-blue-400"></i>
465
+ <span>License Plate Recognition</span>
466
+ </button>
467
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
468
+ <i class="fas fa-route mr-2 text-purple-400"></i>
469
+ <span>Motion Tracking</span>
470
+ </button>
471
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
472
+ <i class="fas fa-arrows-alt mr-2 text-yellow-400"></i>
473
+ <span>Object Measurement</span>
474
+ </button>
475
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
476
+ <i class="fas fa-wave-square mr-2 text-red-400"></i>
477
+ <span>Audio Analysis</span>
478
+ </button>
479
+ <button class="w-full p-2 bg-gray-700 hover:bg-gray-600 rounded flex items-center">
480
+ <i class="fas fa-clock mr-2 text-orange-400"></i>
481
+ <span>Timeline Reconstruction</span>
482
+ </button>
483
+ </div>
484
+ </div>
485
+ </div>
486
+ </div>
487
+
488
+ <!-- Modal for Analysis Results -->
489
+ <div id="analysisModal" class="fixed inset-0 z-50 flex items-center justify-center modal-overlay hidden">
490
+ <div class="bg-gray-800 rounded-lg shadow-xl w-3/4 max-w-4xl modal-content">
491
+ <div class="p-4 border-b border-gray-700 flex justify-between items-center">
492
+ <h3 class="text-xl font-semibold">Analysis Results</h3>
493
+ <button id="closeModal" class="text-gray-400 hover:text-white">
494
+ <i class="fas fa-times"></i>
495
+ </button>
496
+ </div>
497
+ <div class="p-4">
498
+ <div class="grid grid-cols-2 gap-4">
499
+ <div>
500
+ <h4 class="font-medium mb-2 text-blue-300">Detected Faces</h4>
501
+ <div class="grid grid-cols-3 gap-2">
502
+ <div class="bg-gray-700 p-2 rounded flex flex-col items-center">
503
+ <img src="https://via.placeholder.com/80x80/4a5568/ffffff?text=Face+1" class="w-16 h-16 rounded-full mb-1">
504
+ <span class="text-xs">Confidence: 87%</span>
505
+ </div>
506
+ <div class="bg-gray-700 p-2 rounded flex flex-col items-center">
507
+ <img src="https://via.placeholder.com/80x80/4a5568/ffffff?text=Face+2" class="w-16 h-16 rounded-full mb-1">
508
+ <span class="text-xs">Confidence: 92%</span>
509
+ </div>
510
+ <div class="bg-gray-700 p-2 rounded flex flex-col items-center">
511
+ <img src="https://via.placeholder.com/80x80/4a5568/ffffff?text=Face+3" class="w-16 h-16 rounded-full mb-1">
512
+ <span class="text-xs">Confidence: 78%</span>
513
+ </div>
514
+ </div>
515
+ </div>
516
+ <div>
517
+ <h4 class="font-medium mb-2 text-blue-300">Detected Objects</h4>
518
+ <div class="bg-gray-700 rounded p-3">
519
+ <div class="flex justify-between mb-1">
520
+ <span>Person</span>
521
+ <span class="text-blue-300">92%</span>
522
+ </div>
523
+ <div class="flex justify-between mb-1">
524
+ <span>Vehicle</span>
525
+ <span class="text-blue-300">85%</span>
526
+ </div>
527
+ <div class="flex justify-between mb-1">
528
+ <span>Weapon</span>
529
+ <span class="text-blue-300">67%</span>
530
+ </div>
531
+ <div class="flex justify-between">
532
+ <span>Bag</span>
533
+ <span class="text-blue-300">54%</span>
534
+ </div>
535
+ </div>
536
+ </div>
537
+ </div>
538
+ <div class="mt-4">
539
+ <h4 class="font-medium mb-2 text-blue-300">Timeline of Events</h4>
540
+ <div class="bg-gray-700 rounded p-3">
541
+ <div class="flex items-start mb-2">
542
+ <div class="bg-blue-500 rounded-full w-3 h-3 mt-1 mr-2"></div>
543
+ <div>
544
+ <div class="font-medium">00:02:15 - Person enters frame</div>
545
+ <div class="text-sm text-gray-400">Left side of the building</div>
546
+ </div>
547
+ </div>
548
+ <div class="flex items-start mb-2">
549
+ <div class="bg-red-500 rounded-full w-3 h-3 mt-1 mr-2"></div>
550
+ <div>
551
+ <div class="font-medium">00:05:42 - Object exchange</div>
552
+ <div class="text-sm text-gray-400">Between two individuals</div>
553
+ </div>
554
+ </div>
555
+ <div class="flex items-start">
556
+ <div class="bg-yellow-500 rounded-full w-3 h-3 mt-1 mr-2"></div>
557
+ <div>
558
+ <div class="font-medium">00:08:33 - Vehicle departs</div>
559
+ <div class="text-sm text-gray-400">License plate partially visible</div>
560
+ </div>
561
+ </div>
562
+ </div>
563
+ </div>
564
+ </div>
565
+ <div class="p-4 border-t border-gray-700 flex justify-end">
566
+ <button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded mr-2">
567
+ Export Report
568
+ </button>
569
+ <button id="closeModalBtn" class="px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded">
570
+ Close
571
+ </button>
572
+ </div>
573
+ </div>
574
+ </div>
575
+
576
+ <script>
577
+ // Simple demo functionality
578
+ document.addEventListener('DOMContentLoaded', function() {
579
+ // Play/Pause toggle
580
+ const playBtn = document.querySelector('.frame-controls .fa-play').parentElement;
581
+ const pauseBtn = document.querySelector('.frame-controls .fa-pause').parentElement;
582
+
583
+ playBtn.addEventListener('click', function() {
584
+ this.classList.replace('bg-gray-700', 'bg-blue-600');
585
+ pauseBtn.classList.replace('bg-blue-600', 'bg-gray-700');
586
+ document.getElementById('mainVideo').play();
587
+ });
588
+
589
+ pauseBtn.addEventListener('click', function() {
590
+ this.classList.replace('bg-gray-700', 'bg-blue-600');
591
+ playBtn.classList.replace('bg-blue-600', 'bg-gray-700');
592
+ document.getElementById('mainVideo').pause();
593
+ });
594
+
595
+ // Frame selection
596
+ const frames = document.querySelectorAll('.video-frame');
597
+ frames.forEach(frame => {
598
+ frame.addEventListener('click', function() {
599
+ frames.forEach(f => f.classList.remove('active'));
600
+ this.classList.add('active');
601
+ });
602
+ });
603
+
604
+ // Analysis tools buttons
605
+ const analysisButtons = document.querySelectorAll('.analysis-tools button');
606
+ const analysisModal = document.getElementById('analysisModal');
607
+ const closeModalBtns = [document.getElementById('closeModal'), document.getElementById('closeModalBtn')];
608
+
609
+ analysisButtons.forEach(btn => {
610
+ btn.addEventListener('click', function() {
611
+ analysisModal.classList.remove('hidden');
612
+ });
613
+ });
614
+
615
+ closeModalBtns.forEach(btn => {
616
+ btn.addEventListener('click', function() {
617
+ analysisModal.classList.add('hidden');
618
+ });
619
+ });
620
+
621
+ // Slider value display
622
+ const sliders = document.querySelectorAll('.filter-slider');
623
+ sliders.forEach(slider => {
624
+ const valueDisplay = slider.parentElement.querySelector('span');
625
+ if (valueDisplay) {
626
+ slider.addEventListener('input', function() {
627
+ valueDisplay.textContent = `${this.value > 0 ? '+' : ''}${this.value}%`;
628
+ });
629
+ }
630
+ });
631
+ });
632
+ </script>
633
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Crazyka51/editor" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
634
+ </html>