上記のように、2 つのビデオ プレーヤーを備えた基本的な Windows.Forms GUI を作成しようとしています。1 つは元のビデオを表示し、もう 1 つは編集されたバージョンを表示します。C# の使用を検討していますが、特定の理由があれば C/C++ を使用することにもオープンです。Windows.Forms である必要はありませんが、視覚的に特に印象的である必要はないので、そうなると思いました。シンプルなため最高です/私はそれについて少し経験があります(ただし、何年もの間ではありません)。
現時点では、AxWindowsMediaPlayer コントロールを使用しています。
private void loadMedia_btn_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.AddExtension = true;
openFileDialog1.DefaultExt = "*.*";
openFileDialog1.ShowDialog();
initialVideoPlayer.URL = openFileDialog1.FileName;
string fileName = openFileDialog1.FileName;
}
DirectShow や OpenCV (主に編集用) などの他のものをざっと見ましたが、WMP コントロールからフレームを簡単に抽出できないように見えるため、最善の方法がわかりません。もっときちんとした方法があったかどうか知っていますか?問題の 1 つは、研究室のコンピュータに DirectX が搭載されていないように見えること (または少なくとも新しいバージョンではないこと) で、DirectShow が機能するかどうかわかりません。
次のようなさまざまな質問を見てきました。
C# の Windows Media Player で再生中のビデオから画像を取得する
C# Windows フォームは、埋め込まれた Windows Media Player から画像をキャプチャします
しかし、それらは理想的とは思えない画像を作成しているようです。なぜなら、それらを処理するために各フレームを抽出したいからです (補間、できればモーション推定、エッジ検出の適用)。
そのため、ビデオを再生し、フレームを抽出して処理を実行し、すべてを元に戻して 2 番目のプレーヤーで再生しようとしています。
アドバイスをありがとう:)