node-webcamをmacOS HighSierraで使おうとしてハマった
node-webcamというパッケージをHighSierra環境で使おうとして少し躓いたのでまとめます。
Node.jsからWebカメラの映像をキャプチャする案件があって、いい感じのパッケージを探していたところ、こちらを発見しました。
どうやらimagesnap
等の、ターミナルからWebカメラを操作できる系のコマンドをいい感じにラップしてるみたいです。
とりあえず、imagesnapのインストール。
$ brew install imagesnap
imagesnapは既にインストールされていたので、
$ npm install --save node-webcam
でパッケージをインストール。
ひとまずbase64で画像データを取得できるかチェック。
var NodeWebcam = require('node-webcam'); NodeWebcam.capture("hoge", {callbackReturn: "base64"}, (err, data) => { console.log(data); });
しかしundefined
が出力されて、一向にキャプチャされず...
imagesnapに問題あり?と思い、imagesnapのGithubを見に行くとmacOS High Sierra
での不具合に関してのIssueが解決されたバージョンが新しくリリースされており、
$ brew upgrade imagesnap
で imagesnap
のバージョンを上げてあげるとちゃんと動きました。。。