Как мне получить снимок видео в nodejs?

Я пытаюсь написать сервер nodejs, который будет вводить время (возможно, часть пути URL), а затем предоставлять кадр видеокадра в этом временном индексе как изображение jpeg .

Я легко могу сделать это в простом Javascript, но не вижу способа сделать это в nodejs. Я знаю, что мне, вероятно, потребуется использовать плагин холста, например node-canvas, чтобы сделать снимок.

Любые идеи приветствуются.

Сейчас я делаю это в Javascript следующим образом:

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>
16
задан MYR 10 January 2012 в 11:23
поделиться