おはようございます。ようやく次男の発熱が長引いた次男と実家で奥さん長男と離れての生活が終わって、自宅に戻って来た@kjunichiです。
背景
クッキングタイマーくらいしか便利な役目がなかったSiri。しかし、
IFTTTでアレクサと連携させる方法知ったが、実家に来てるのですぐ試せないから、homebridgeを知ってsiriに偽物デバイスの操作をさせようとこっちを試してみてるという。homebridgeとりあえず動かすだけなら、sudoを-gもやはり不要だった。普通のnodeアプリっぽい
— kjunichi (@kjunichi) 2018年2月9日
このツイートちょっと込み入っているが、子供達にも評判のいいアマゾンのアレクサに追加機能を自作しようと調べていたら、 AppleのHomeKitをサポートするhomebridgeを知った。
開発者登録等をせずにhomebridgeであれこれできるのが非常に驚きだった。
Mac miniにつないでるMicrosoft® LifeCam HD-3000をHomeKitに対応したカメラデバイスにした
以下の、homebridge-camera-isightをhomebridgeのプラグインとして追加するとHomeKitに対応した カメラデバイスができることを知った。
外付けのWebカメラでも使えそうな説明があった
iSightと名前に入ってはいるが、READMEにはmacOSであれば、外付けのカメラでも 以下のように、カメラのデバイスインデックスを調べて、設定ファイルの指定すれば 使えそうだった。
ffmpeg -f avfoundation -list_devices true -i ""
ffmpegのエラーが出る
上記のffmpegのコマンドでカメラのデバイスインデックスを設定ファイルに記入したところ、 Homeアプリに表示されるカメラの静止画は正常に表示された。
しかし、画像をクリックすると、 以下のように、「The activeVideoMinFrameDuration passed is not supported by the device.」と文句を言われ、 ストリーミング映像が出てこなかった。まぁ、静止画だけでも大満足だったけど。。
解決した
結果的にはFPSを下げればよかった。もともと30の指定を半分の15にしてダメでさらに下げて10にしたらエラーが解消された。
{ "platform": "Camera-iSight", "name": "iSight Camera", "fps": 10, "video_device": 0, "audio_device": 0 }
参考資料
関連記事
- MacBook AirのiSightをハック
- VAIO type PのMOTION EYEをハック
- MOTION EYEをProcessingで使う
- Windows 7 64ビット版でProcessingでJMyron使えた!
- VirtualBox上のUbuntuでFaceTime HD カメラが使えた
- GoでFaceTime HDカメラやWebカメラを使う
- mruby-webcamにWebカメラで取得する画像サイズを指定できるメソッドを追加した
- RustでWebカメラの映像をコマンドプロンプトに出すコマンドを作った
- アレクサで「iPhoneを探す」をpuppeteerを使って出来るようにした
- 久々にhomebridge-iSightを動かそうとしてmojaveにやられた