WebカメラからC#でH.264にビデオをエンコードする方法は? [閉まっている]
質問
C#でWebcamのビデオをH.264にエンコードするにはどうすればよいですか?
必要なもの
- これについて何か助けがあればMSDN。
- エンコード/デコード用のオープンソースのライブラリ/ラッパー。
- その方法に関するチュートリアルとブログ記事。
3GPやFLV、またはファイルサイズが小さい他の何かにエンコードする方法のいくつかの例はありがたいです。
解決
DirectShow SDKを調べる必要があります。
H.264に直接エンコードすることはできませんが、役立つ市販のactivexコントロールがあります。しかし、いくつかのことを理解する必要があります。
DirectShowはオーディオ/ビデオ処理フレームワークであり、グラフ編集ツールを使用してデバイスをグラフに配置してテストできます。また、グラフを作成するために同様のコードを作成する必要があります。グラフは、相互作用して最終出力を生成するデバイス/オブジェクトのチェーンです。
DirectShowは.NETで使用できます。GraphEditPlusツールを使用してグラフを作成し、それを.NETで使用できますが、DirectShowはCOMに密接にバインドされているため、。ネイティブC ++でActiveXコントロールを作成し、DirectShowを使用して記録全体を実行し、WPFでActiveXを使用すると、プログラムは難しくなりますが、より安定します。
通常、次のようなグラフが必要になります
Video Source => Demux -> Audio Stream + Video Stream -> MP4Muxer
x264は無料のオープンソースであり、優れたMP4Muxerを持っていますが、合法ではありません。コードでH264を使用するには、特許ライセンスを取得する必要があります。
代替手段として、多くの商用コントロールを使用できます。これまでのところ、IntelのIPPはH264の最良の実装ですが、directshowに入れるのは少し難しいです。
他のヒント
以下は、.NETのビデオキャプチャ用CodeProjectの2つのサンプルです。
- http://www.codeproject.com/KB/directx/DirXVidStrm.aspx
- http://www.codeproject.com/KB/cs/WebCamService.aspx
特にH.264は含まれていません。そのために、サードパーティのコンポーネントを使用して、キャプチャ後にビデオを後処理したい場合があります: http://www.elecard.com/products/ products-pc / sdk / codec-.net-sdk /