2013-12-20 20 views
5

skypeのようなプログラムで合成ビデオストリームを取得する必要があります。オーディオ部分は簡単です。アダプタであるSoundflowerというプロジェクトがあります。一方の側に仮想オーディオ宛先デバイスを提示し、他方の側にビデオソースを提示する。私はOSXのための同じ解決策を探しています。私はそれを仮想カメラとして提示する方法だけが必要です。誤解しないでください、私は "使用する準備ができていない"ツールは必要ありません、私はそれを開発する方法が必要です。したがって、すぐに使用できるツールは、ソースコードでのみ役立ちます。OS X用の仮想カメラを構築する

私が来たWindowsの世界では、すでにDirectShowを使ってそのようなバーチャルカメラをプログラミングしました。今私はOSXの世界で同様のソリューションを探しています。

+0

仮想ビデオの宛先デバイスを作成できましたか?私はあなたがこれをどのように達成したかを知りたいです。 thx – user1988824

+0

いいえ、プロジェクトが削除されたので、解決策を探すのをやめました。 –

答えて

7

これは、インタフェースを適用するアプリケーションにある程度依存します。古い学校のQuickTimeアプリ(32ビット、10.8以前)の場合は、QuickTime vdig(ビデオデジタイザ)コンポーネントを作成する必要があります。これは、基本的に、QT互換のアプリケーションで動的に列挙して呼び出すことができる特定のインターフェイスを提供するプラグインです。しかし、これは現在廃止予定です(10.9時点)!

現代のアプローチは、コアメディアI/Oフレームワークを使用することです。残念ながら、他のフレームワークのほとんどと同じように完全に文書化されているわけではありません。ハードウェアインターフェイスを作成する必要がある開発者ベースのほんの一部でしか使用されていないためです。

CoreMediaフレームワークに加えて、いくつかのサンプルコードが含まれている可能なSDKプロジェクト、あります:

はで特異的に見てみましょう。

kext(カーネル拡張)は、実際のハードウェアとのインターフェイスを取らないため、必要ありません。だからうまくいけば、必要なインターフェイスを実装し、デバイスタイプを登録するだけで十分に使えるようになります。

OS XとiOS用のドライバ開発をカバーして利用できる素晴らしい本があります:

(免責事項:著者は私のカレッジや友人です。)

QuickTimeは以前はDirectShowの同等品でした。今、CoreMediaと友人たちは、はるかにモダンでフレキシブルなAPIをもってこれに取って代わりました。

+0

ありがとうございます。私は誰かがあなたの答えを上げることはできないと信じていますが、私は答えを期待してチャンスを与えます: "確かに、あなたが望むものを正確に行い、ソースがBSDであるプロジェクトXYがあります。 :-)あなたは私にストーン・ダーク・バレーを見せてくれる:-) QuickTimeのように、DirectShowは現在、開発者を何年も苦しめた後で置き換えられている(QuickTimeが同様の混乱であるかどうかわからない)。私はあなたの提案を既にダウンロードし始めました。私は約1時間であなたの緑のチェックマークを取得すると思います。 –

+0

確かに。 :)あなたのリクエストはちょっとニッチな話題なので、ちょうどこれを行う既製のプロジェクトがあれば、私はやや驚くかもしれません。私はQTのためのそのようなサンプルを見ましたが、CMIOは見ませんでした。しかし、このSDKには完全な例がありますので、必要なもののほとんどを抽出することができます。DirectShowとQuickTimeの両方で作業していたので、私はDSのより多くの傷跡があります! QuickTimeは昔ながらですが、DSは悪夢です。 – gavinb

+1

2015年10月現在、上記のCoreMediaIO SDKプロジェクトは、ヨセミテまたはエルキャピタンではコンパイルされません。私はそれを動作させようとし、 "ソース"フォルダ内の古いソースコードを削除し、フレームワークにバンドルされているようなので、相当なフレームワークを追加することで多くの問題を解決することができました(アクセラレーション、evenkit、audiotoolbox、コアアウディオ、コアアウディオック、カーボン、audiounit)。その後、私は数時間以内に逃げることのできなかったコアC++エラーに遭遇し、Appleの従業員がサンプルソースコードを修正してくれることを願っています。 – user1988824

関連する問題