如上所述,我希望创建一个带有两个视频播放器的基本 Windows.Forms GUI,一个显示原始视频,另一个显示编辑后的版本。考虑使用 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 控件中提取帧,我没有知道是否有更简洁的方法吗?一个问题是实验室中的计算机似乎没有 DirectX(或者至少不是新版本),所以我不确定 DirectShow 是否可以工作。
我查看了各种问题,例如:
从 C# 中 Windows 媒体播放器上播放的视频中获取图像
C# Windows 窗体从嵌入的 Windows Media Player 捕获图像
但他们似乎创建的图像看起来并不理想,因为我想要提取每一帧以便处理它们(应用插值,希望运动估计,边缘检测可能)。
所以我正在寻找播放视频,提取帧并执行一些处理,然后将所有内容重新组合在一起以在第二个播放器中播放。
感谢您的任何建议:)