必要なことを実行するためのプラットフォームに依存しない方法はほとんどないでしょう。存在する場合、それはおそらく適切ではない高級言語を使用することによるものです。
Linux プラットフォームについてはわかりませんが、インターネット ベースのビデオ アプリケーションを扱う C++/windows/COM/DirectShow 開発者です。
Windows プラットフォームでは、キャプチャ デバイスは COM および DirectShow 経由で通信されます。
Windows でのビデオ キャプチャの概要については、MSDNの「ビデオ キャプチャ」セクションを参照してください。
システム上のキャプチャ デバイスを列挙する方法については、キャプチャ デバイスの選択を参照してください。Web カメラをビデオ入力デバイスとして (プログラムで) 検出するには、CLSID_VideoInputDeviceCategory でデバイスを列挙する必要があります。このカテゴリには多くのデバイスが存在する可能性があります。
ビデオ キャプチャ デバイスには、後で使用するためにデバイスを保存および取得できる Web カメラを識別するのに役立つ "FriendlyName" があります。
デバイスを取得すると、デバイスを構成したいというクエリが表示されます。これについては、ビデオ キャプチャ デバイスの構成を確認してください。
DirectShow は、Microsoft の最も包括的な (そして習得が難しい) API の 1 つです。 DirectShow の MSDN 開発者フォーラムは非常に活発で、初心者に優しいので、ぜひチェックしてみてください。
最後に、キャプチャ グラフは DirectShow で作成するのが最も簡単なことではありません。単純な再生グラフから始めます。たとえば、ディスクからメディア ファイルを再生し、そこからキャプチャ グラフに進みます。
VLC プロジェクトはオープン ソースでクロスプラットフォームであり、Windows プラットフォームでの再生には DirectShow を使用します。
幸運を!