Próbuję napisać serwer nodejs, który zajmie trochę czasu (prawdopodobnie część ścieżki URL), a następnie udostępnić klatkę wideo w tym indeksie czasu jako obraz jpeg.Jak uzyskać migawkę wideo w Nodejs?
Mogę to zrobić z łatwością w prostym JavaScript, ale nie widzę sposobu, aby to zrobić w nodejs. Wiem, że prawdopodobnie będę musiał użyć plugin canvas, jak węzeł-canvas, aby zrobić migawkę.
Wszelkie pomysły mile widziane.
Oto jak to zrobić w JavaScript w tej chwili:
myjavascript.js
function capture(video, scaleFactor) {
if(scaleFactor == null){
scaleFactor = 1;
}
var w = video.videoWidth * scaleFactor;
var h = video.videoHeight * scaleFactor;
stdout("<br/> w: "+ w+ "<br/> h: "+ h);
var canvas = document.createElement('canvas');
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, w, h);
return canvas;
}
function shoot(){
var video = document.getElementById("videoTag");
var output = document.getElementById("output");
var canvas = capture(video, 1);
output.innerHTML = '';
output.appendChild(canvas);
}
index.html
<html>
<head>
<title>video snap</title>
<script type="text/javascript" src="myjavascript.js"></script>
</head>
<body>
<div id="video_container" >
<video id="videoTag" width="640" height="360" autobuffer="" controls="true">
<source src="frozenplanet.mp4" type="video/mp4">
<source src="frozenplanet.ogv" type="video/ogg">
</video>
</div>
<div id="output"></div>
</body>
</html>
Node.js nie ma narzędzia do przetwarzania wideo i nie zaleca się przetwarzania wideo przez aplikację internetową. Jeśli chcesz przetwarzać wideo po stronie serwera, potrzebujesz odpowiedniego narzędzia do tego i niektórych realizacji kolejki (być może w węźle). –