Access webcam without Flash

Tamer El-Nasser picture Tamer El-Nasser · Mar 10, 2012 · Viewed 28.8k times · Source

I want to create a video chat application using HTML 5 elements and JavaScript, and I don't want to use Flash to access the user's webcams.

How can I accomplish this using only HTML and JavaScript?

Answer

Pawel Miech picture Pawel Miech · Jan 27, 2014

At the moment of writing this the best solution is WebRTC. It is supported in Chrome, Mozilla and Opera, but still unavaialble in Internet Explorer and Safari.

Minimalistic demo.

Index.html

<!DOCTYPE html>
<head>
</head>
<body>
    <video></video>
    <script src="webcam.js"></script>
</body>

webcam.js

(function () {
    navigator.getMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia);

    navigator.getMedia(
        // constraints
        {video:true, audio:false},

        // success callback
        function (mediaStream) {
            var video = document.getElementsByTagName('video')[0];
            video.src = window.URL.createObjectURL(mediaStream);
            video.play();
        },   
        //handle error
        function (error) {
            console.log(error);
        })   
})();

Read more here or there