今回はWebカメラやラップトップパソコンのカメラを使って映像を取得し、適当な画像処理フィルターをかけ、ブラウザに表示する方法をまとめる。(筆者環境はMBP)
基本: カメラの映像をブラウザに表示する
単純に表示するだけの場合は、video要素(HTMLMediaElement)とMediaStreamを使う。
<video id="camera"></video>
async function main() {
const video = document.querySelector("video#camera");
// MediaStreamを取得する(Promiseが返る)
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
video.srcObject = stream;
// MediaStreamが取得できたら再生する
video.onloadedmetadata = () => video.play();
}
main();
今回は映像だけを使いたいので、mediaDevices.getUserMediaに{video: true}を指定したが、音声も使いたい場合は{video: true, audio: true}のように指定する。詳細はMediaDevices.getUserMediaを参照してください。
※ 執筆時点では日本語ドキュメントが古いため、英語ドキュメントを読んだほうが良い。






