Tải Cli obs websocket
https://github.com/grigio/obs-cmd
mkdir obs-control
cd obs-control
npm init -y
npm install express
Tạo file server.js với nội dung sau:
const express = require('express');
const { exec } = require('child_process');
const app = express();
const port = 3000;
app.use(express.static('public'));
app.get('/start-stream', (req, res) => {
exec('obs-cmd-windows-amd64.exe streaming start', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return res.status(500).send('Error starting stream');
}
res.send('Stream started');
});
});
app.get('/stop-stream', (req, res) => {
exec('obs-cmd-windows-amd64.exe streaming stop', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return res.status(500).send('Error stopping stream');
}
res.send('Stream stopped');
});
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
Chạy server:
node server.js
Tạo một thư mục public trong dự án của bạn và thêm một file HTML ví dụ, index.html, với nội dung sau:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bonding Control</title>
</head>
<center>
<body>
<h1>Bonding Control</h1>
<button onclick="startStream()">Start Stream</button>
<button onclick="stopStream()">Stop Stream</button>
<p><span id="timer">00:00:00</span></p>
<p>
<script>
let timerInterval;
let startTime;
function startStream() {
fetch('/start-stream')
.then(response => response.text())
.then(text => {
alert(text);
startTimer();
})
.catch(error => console.error('Error:', error));
}
function stopStream() {
fetch('/stop-stream')
.then(response => response.text())
.then(text => {
alert(text);
stopTimer();
})
.catch(error => console.error('Error:', error));
}
function startTimer() {
startTime = Date.now();
timerInterval = setInterval(updateTimer, 1000);
}
function stopTimer() {
clearInterval(timerInterval);
document.getElementById('timer').textContent = "00:00:00";
}
function updateTimer() {
const currentTime = Date.now();
const elapsedTime = currentTime - startTime;
const hours = Math.floor(elapsedTime / (1000 * 60 * 60));
const minutes = Math.floor((elapsedTime % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((elapsedTime % (1000 * 60)) / 1000);
document.getElementById('timer').textContent =
`${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
}
</script>
</p>
<iframe src="http://27.74.246.165:5678/1b1aa6a1-c743-4d53-a0b6-29b7af68526c.html" width="640" height="360" frameborder="no" scrolling="no" allowfullscreen="true"></iframe>
</body>
</center>
</html>
Mở trình duyệt và điều hướng đến http://localhost:3000.
2024-08-17