web-dev-qa-db-ja.com

LinuxでハンディカムをWebカメラとして使用する方法

GstreamerでビデオカメラをV4L2srcとして使用できますか? Linuxでビデオカメラをウェブカメラとして使用できますか?もしそうなら、どのモデルがスポーツされていますか?前もって感謝します。

2

そこにはいくつかの異なるビデオ取得APIがあります。

  • v4l2(これはLinuxの一般的なビデオAPIです。次の2つを除くほとんどすべてをカバーしています)
  • iidc(これは、産業用の「video over ieee1394」プロトコルであり、通常、民生用ハードウェアにはありません)
  • dv(これは、消費者向けの「ファイアワイヤカムコーダー」で通常見られる「ieee1394上のA/V信号」です。おそらくこれが「カムコーダー」の意味です。

「ビデオカメラ」のフレーバーに応じて、これらの1つ(または一部、またはまったく)を使用できます。

アナログ出力

古くから、まともなカムコーダーにはログアウトが付属しています(例:「コンポジット」)。これを任意のコンピューターで使用するには、最初に信号をデジタル化する必要があります。これは通常、コンピューターのフレームグラバーカードを介して行われます。 bttv(bt878)およびコネクサントベースのグラバーPCI(e)-カードはLinuxで非常によくサポートされています(他のカードはおそらく問題ありませんが、私はそれらを使用したことはありません)。 、しかし残念ながら、これらのカードはまばらになっています。これらのカードは通常v4l2-APIでカバーされているため、v4l2srcは正常に機能します。

v4l2src ! ...

外部analog2usbおよびanalog2dvグラバーが市場に出回っています。以下を参照してください。

デジタル出力(USB)

そこで、すべてのWebカメラ、おそらくいくつかの外部analog2usbデバイス、おそらくいくつかの「カムコーダー」が登場します。デバイスがサポートされているかどうかは、使用しているチップセットによって異なります。 isがサポートされている場合、これらは通常v4l2-APIを使用するため、次のように機能します。

v4l2src ! ...

デジタル出力(DV/HDV)

これらのデバイスはv4l2の対象外ですが、代わりに別のAPIがあります。 DVストリームにはオーディオとビデオの両方が含まれているため、画像を取得するには、最初にDVストリームを取得し、次に2つの(オーディオとビデオ)ストリームを分割して(別名「デマルチプレクサ/デマルチプレクサ」)、デコードする必要があります。結果のビデオストリーム。このようなことをする必要があります:

dv1394src ! dvdemux ! dvdec ! ...

hDVストリーム(実際にはieee1394を介したMPEG-TSストリーム)を取得している場合は、別のhdv1394srcオブジェクトがあります。

 hdv1394src ! decodebin ! ...

デジタル出力(IIDC)

産業用ファイアワイヤカメラ(主に画像認識などに使用されます。このプロトコルを使用する「カムコーダー」は市場に出回っていないため、完全を期すために追加するだけです)は「IIDC」と呼ばれるプロトコルを使用しました。

gstreamerで使用するには、次のようにします。

dc1394src ! ...

その他

そこにある他のほとんどのプロトコル(例:GigE)は、独自仕様の工業用グレードのプロトコルです(「カムコーダー」ハードウェアは提供していません)。

4
umläute