15-04-2025, 18:09
0
Bez dodatkowego softu który będzie swego rodzaju serwerem do kamery tego nie zrobisz, bo linux tego nie ma. Trzeba coś samemu zrobić.
Chatgpt podpowiada tak:
Po uruchomieniu ostatniej komendy powinieneś zobaczyć:
Serwer działa na http://localhost:3000
Wejdź w przeglądarce na http://localhost:3000 i oglądaj swoją kamerę w czasie rzeczywistym!
Chatgpt podpowiada tak:
Kod:
# 1. Instalacja wymaganych pakietów
sudo apt update
sudo apt install -y ffmpeg nodejs npm
# 2. Tworzenie katalogu projektu
mkdir rtsp-hls-viewer
cd rtsp-hls-viewer
# 3. Tworzenie folderów pomocniczych
mkdir public hls
# 4. Tworzenie pliku serwera Node.js
cat << 'EOF' > server.js
const express = require('express');
const { spawn } = require('child_process');
const fs = require('fs');
const path = require('path');
const app = express();
const PORT = 3000;
const HLS_DIR = path.join(__dirname, 'hls');
if (!fs.existsSync(HLS_DIR)) {
fs.mkdirSync(HLS_DIR);
}
const ffmpeg = spawn('ffmpeg', [
'-i', 'rtsp://admin:[email protected]/video',
'-c:v', 'libx264',
'-preset', 'ultrafast',
'-tune', 'zerolatency',
'-f', 'hls',
'-hls_time', '2',
'-hls_list_size', '5',
'-hls_flags', 'delete_segments',
path.join(HLS_DIR, 'stream.m3u8')
]);
ffmpeg.stderr.on('data', data => {
console.log('FFmpeg log:', data.toString());
});
app.use(express.static('public'));
app.use('/hls', express.static(HLS_DIR));
app.listen(PORT, () => {
console.log(\`Serwer działa na http://localhost:\${PORT}\`);
});
EOF
# 5. Tworzenie pliku HTML (player HLS)
cat << 'EOF' > public/index.html
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>HLS Kamera IP</title>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<style>
body { background: #111; color: #fff; text-align: center; font-family: sans-serif; }
video { width: 90%; max-width: 800px; margin-top: 20px; border-radius: 10px; box-shadow: 0 0 20px #000; }
</style>
</head>
<body>
<h1>Podgląd z kamery przez HLS</h1>
<video id="video" controls autoplay muted></video>
<script>
const video = document.getElementById('video');
const hls = new Hls();
hls.loadSource('/hls/stream.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, function () {
video.play();
});
</script>
</body>
</html>
EOF
# 6. Uruchomienie aplikacji
node server.js
Po uruchomieniu ostatniej komendy powinieneś zobaczyć:
Serwer działa na http://localhost:3000
Wejdź w przeglądarce na http://localhost:3000 i oglądaj swoją kamerę w czasie rzeczywistym!
![[Obrazek: userbar.png]](https://l0calh0st.pl/obrazki/userbar.png)
Prowadzę to forum od roku 2007. Przez ten czas projekt minta bardzo negatywnie się zmienił, stąd mogą w moich postach być opinie z którymi można się nie zgadzać.