LoginSignup
31
31

More than 5 years have passed since last update.

html5のvideoタグからcanvasに画像を出力して遊ぶ【JavaScript】

Last updated at Posted at 2015-08-27

概要

html5のvideoタグでwebカメラを起動する.
videoタグの動画をcanvasに出力(スクショみたいに).

環境

windows10+Firefox or Chrome.
ハードは変更せずubuntu+Firefoxで起動したところ動かなかった←解決方法Linux + motion + webcamでライブ監視カメラを設置する.

ソース

index.js

var video = document.getElementById("video");

document.getElementById("draw").onclick = function(){
    try{
        drawVideo();
    }catch(e){
        alert(e);
    }
};


var localstream;

/*webカメラを起動する*/
function start() {
    if (navigator.webkitGetUserMedia) {

        navigator.webkitGetUserMedia({
            audio: false,
            video: true
        }, function(stream) {
            localstream = stream;
            console.dir(stream.getVideoTracks()[0]);
            var url = window.webkitURL.createObjectURL(stream);
            video.src = url;
        }, function(error) {});

    } else if (navigator.mozGetUserMedia) {

        navigator.mozGetUserMedia({
            video: true
        }, function(stream) {
            video.mozSrcObject = stream;
            video.play();
            streaming = true;
        }, function(err) {
            alert("An error occured! " + err);
        });

    } else if (navigator.getUserMedia) {
        navigator.getUserMedia("audio, video", success, error);
    }
}


/*canvasにvideoを展開*/
function drawVideo(){
    var video = document.getElementById("video");
    var canvas = document.getElementById("canvas");
    var context = canvas.getContext("2d");
    context.drawImage(video, 0, 0, 260, 260);
}

/*videoをstop*/
function stop() {
    if (video.mozSrcObject) {
        xvideo.pause();
        video.mozSrcObject = null;
    } else {
        if (localstream) {
            localstream.stop();
        }
    }
}
index.html
<video id='world' width="256" height="256" autoplay></video>
<canvas id="canvas"></canvas>
<button onClick="start()">start</button>
<button onClick="stop()">stop</button>
<button id="draw">set canvas</button>

補足

setIntervalでdrawVideoを回すと動的なものを作ることも可能.

31
31
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
31