質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

1回答

1555閲覧

openFrameworksでvideoGrabberExampleが作動しない

Kazum

総合スコア1

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2020/08/18 02:47

前提・実現したいこと

openframeworksのexamplesを実行していたのですが、videoGrabberExampleなど、webカメラを用いるプログラムが作動しませんでした。

発生している問題・エラーメッセージ

2020-08-18 11:13:41.689287+0900 videoGrabberExampleDebug[6942:228171] Metal API Validation Enabled 2020-08-18 11:13:42.611766+0900 videoGrabberExampleDebug[6942:228171] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000260b60> F8BB1C28-BAE8-11D6-9C31-00039315CD46 2020-08-18 11:13:42.682790+0900 videoGrabberExampleDebug[6942:228171] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine 2020-08-18 11:13:42.683333+0900 videoGrabberExampleDebug[6942:228171] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine 2020-08-18 11:13:42.731054+0900 videoGrabberExampleDebug[6942:228171] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x60000025da40> 30010C1C-93BF-11D8-8B5B-000A95AF9C6A [notice ] Device: 0: FaceTime HD Camera [notice ] 0: FaceTime HD Camera [warning] ofAvFoundationGrabber: requested width and height aren't supported. Setting capture size to closest match: 1280 by 720 [ error ] ofAvFoundationGrabber: could not set framerate to: 60. Device supports: [ error ] framerate range of: 1 to 30 (lldb)

該当のソースコード

videoGrabberExampleのまま

試したこと

errorに出たframerateを30に下げると[error]の行は無くなりましたが、カメラの映像は表示されないままでした。
自身で簡単なwebカメラをキャプチャするプログラムを書いてみたところ、カメラ映像は表示されましたが、キャプチャサイズが変更されないままでした。そこで、カメラのキャプチャサイズが変更できていないのが原因かと考え、カメラアプリなどを消したり、sudo killall AppleCameraAssistantを試したり、セーフブートをしたり、別のユーザのアカウントで試したりしてみましたがうまくいきませんでした。
processingのcaptureだとキャプチャサイズの変更は行うことができました。

補足情報(FW/ツールのバージョンなど)

MacBook Pro(2017)
macOS Catalina ver.10.15.6
xcode ver.11.6
openFrameworks ver.0.11.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

推測ですが、お使いのPCの解像度の縦横比率に合わせてsetup()のcamWidth/camHeightを変える必要があるのではないかと思います。

一応、自分の環境(iMac)では、もともとのcamWidth=320/camHeight=240で普通に動作したのですが、その場合とのエラーログの違いは、以下の部分です。自分の環境では、このログが出ません。

[warning] ofAvFoundationGrabber: requested width and height aren't supported. Setting capture size to closest match: 1280 by 720

試しにcamWidth/camHeightを4:3以外の適当な値にしてみたら、これと同じようなログ(1280 by 720の数値が異なる)が出力されました。ただ、映像が出ないという現象は再現できず、一応映像がでるけどノイズ画像みたいな画が出る状態になりました。

ちなみに[error]となっているログは正しく動作していても出ます。
おそらくこれは以下のようにフレームレートの期待値を60にしているからだと思います。60fpsを期待しているけど、そんなに出てないということを意味するログだと思われます。なぜ[error]なのかはわかりません。

vidGrabber.setDesiredFrameRate(60);

他に思いつくのはofからのカメラアクセスが許可されているかどうかとかですかね。

現象が再現できなかったので、推測になっちゃいますが、この辺りをチェックしてみてはいかがでしょうか。

投稿2020/08/18 10:54

hytNInE

総合スコア133

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kazum

2020/08/18 12:08

ご回答ありがとうございます! ofからのカメラアクセスは許可されていることを確認し、camWidth/camHeight をいろいろと変えてみたのですが、どのような比や値にしても [warning] ofAvFoundationGrabber: requested width and height aren't supported. Setting capture size to closest match: 1280 by 720 のログはなくならず、キャプチャサイズも1280×720 のままでした。一応 800×450より大きなサイズのときは、キャプチャサイズは1280×720のままでしたが、映像は表示されました。それ以下のときはofApp.cppの42行目にEXC_BAD_ACCESSと表示され、映像が出ないので、videoInverted.allocateで確保しているメモリの関係だと思われます。 いろいろと他にも試したり調べたりしてみたのですが、解像度が変更できないのは、おそらくMacBook ProのFaceTime HDカメラが1280×720 の解像度しか対応できないからではないかという気がしています。ご協力いただきありがとうございました。
Kazum

2020/08/19 11:09

ffmpegをダウンロードして確認してみましたが、やはり1280×720しか対応していないようでした。 入力 ffmpeg -f avfoundation -i "0" out.mpg 出力 [avfoundation @ 0x7fead100a200] Supported modes: [avfoundation @ 0x7fead100a200] 1280x720@[1.000000 30.000000]fps
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問