File size: 5,529 Bytes
8876673
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ScreenStream Studio 📹</title>
    <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
    <script src="https://unpkg.com/feather-icons"></script>
    <link rel="stylesheet" href="style.css">
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        primary: '#3B82F6',
                        secondary: '#10B981'
                    }
                }
            }
        }
    </script>
</head>
<body class="bg-gray-50 min-h-screen">
    <custom-header></custom-header>
    
    <main class="container mx-auto px-4 py-8">
        <!-- Live Preview Section -->
        <section class="mb-8">
            <div class="bg-white rounded-xl shadow-lg p-6">
                <h2 class="text-2xl font-bold text-gray-800 mb-4 flex items-center gap-2">
                    <i data-feather="video"></i>
                    Live Preview
                </h2>
                <div id="livePreview" class="aspect-video bg-gray-900 rounded-lg overflow-hidden flex items-center justify-center">
                    <img id="thumbnail" src="" alt="Live Camera Feed" class="w-full h-full object-contain hidden">
                    <div id="noFeed" class="text-gray-400 text-center">
                        <i data-feather="camera-off" class="w-16 h-16 mx-auto mb-2"></i>
                        <p>Camera is not recording</p>
                    </div>
                </div>
                <div class="mt-4 flex items-center justify-between">
                    <div id="recordingStatus" class="flex items-center gap-2">
                        <div id="statusDot" class="w-3 h-3 bg-red-500 rounded-full animate-pulse hidden"></div>
                        <span id="statusText" class="text-gray-600">Not Recording</span>
                    </div>
                    <div id="duration" class="text-gray-600 font-mono"></div>
                </div>
            </div>
        </section>

        <!-- Controls Section -->
        <section class="mb-8">
            <div class="bg-white rounded-xl shadow-lg p-6">
                <h2 class="text-2xl font-bold text-gray-800 mb-4 flex items-center gap-2">
                    <i data-feather="settings"></i>
                    Recording Controls
                </h2>
                <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
                    <div>
                        <label for="filename" class="block text-sm font-medium text-gray-700 mb-2">
                            Filename
                        </label>
                        <input type="text" id="filename" placeholder="recording_001" 
                               class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-transparent">
                    </div>
                    <div>
                        <label for="format" class="block text-sm font-medium text-gray-700 mb-2">
                            Format
                        </label>
                        <select id="format" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-transparent">
                            <option value="mkv">MKV</option>
                            <option value="mp4">MP4</option>
                            <option value="webm">WebM</option>
                            <option value="avi">AVI</option>
                            <option value="mov">MOV</option>
                        </select>
                    </div>
                </div>
                <div class="flex gap-3 mt-6">
                    <button id="startBtn" 
                            class="flex-1 bg-primary hover:bg-blue-600 text-white py-3 px-6 rounded-lg font-semibold transition-colors flex items-center justify-center gap-2">
                        <i data-feather="play"></i>
                        Start Recording
                    </button>
                    <button id="stopBtn" 
                            class="flex-1 bg-red-500 hover:bg-red-600 text-white py-3 px-6 rounded-lg font-semibold transition-colors flex items-center justify-center gap-2" 
                            disabled>
                        <i data-feather="square"></i>
                        Stop Recording
                    </button>
                </div>
            </div>
        </section>

        <!-- Recordings Section -->
        <section>
            <div class="bg-white rounded-xl shadow-lg p-6">
                <h2 class="text-2xl font-bold text-gray-800 mb-4 flex items-center gap-2">
                    <i data-feather="film"></i>
                    Recorded Videos
                </h2>
                <div id="recordingsList" class="space-y-3">
                    <!-- Recordings will be populated here -->
                </div>
            </div>
        </section>
    </main>

    <custom-footer></custom-footer>

    <script src="components/header.js"></script>
    <script src="components/footer.js"></script>
    <script src="script.js"></script>
    <script>
        feather.replace();
    </script>
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
</body>
</html>