Takumi Sueda

WORK

Nikon製一眼レフをWebカメラにするマルチプラットフォーム対応ツール "mtplvcap" を開発

カメラとの通信を libusb で実装してライブビューを取得し、OBS (Open Broadcaster Software) の仮想カメラ機能でWebカメラ化するツールを実装しました。

f:id:puhitaku:20200727221049j:plain

2020年の世界的パンデミックによりリモートワーク需要が急増し、Web カメラの入手が大変困難となったことから、一眼レフを Web カメラとして使用するテクニックが急激に一般的になりました。

しかしながら、対応に積極的な Canon のようなベンダーでも対応が Windows のみ(良くて後日 macOS に対応)が一般的で、Nikon を含むいくつかの消極的な一眼レフベンダーはそもそも対応発表が大きくずれ込む事態となりました。

このような状況を打開するため、というかそもそも私自身が所有する Nikon D5300 をWebカメラにしたかったため、マルチプラットフォーム対応なツールの自力開発に踏み切りました。

ポイント

  • マルチプラットフォームに対応した OSS である libusb と OBS を利用することで、同一のコードで主要な3 OS である Windows/macOS/Linux に対応
  • Go の強力な並行処理バックエンドを駆使し、USB通信・WebSocket・静的ファイル配信などの非同期処理を1プロセスに実装
  • 通信の実際の内容や既存 OSS を参考に、ライブビュー画像の連続取得だけでなくオートフォーカスや絞りなど必要な調整を行えるように実装
  • 機種間の動作の差異をコントリビューターと一緒に調べ、多くの機種(2020年9月現在 12機種)での動作を実現

リポジトリ

GitHub: puhitaku/mtplvcap

github.com

解説記事

NikonのカメラをWebカメラにする方法(もちろんマルチOSで) - Zopfcode

CONTACT

Takumi Sueda a.k.a. puhitaku

末田 卓巳 (puhitaku)
屋号: ヨツハック
個人事業主 / フリーランス

FROM A COMPUTER WITH