![](/img/trans.png)
[英](c#) Playing and controlling multiple sound files using DirectShow
[英]Playing, editing then replaying a video in c# using directshow
如上所述,我正在寻找一个具有两个视频播放器的基本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 Media Player上播放的视频中获取图像
C#Windows窗体从嵌入式Windows Media Player捕获图像
但是它们似乎创建的图像看起来并不理想,因为我要提取每个帧以便对其进行处理(应用插值,希望进行运动估计,可能进行边缘检测)。
因此,我希望播放视频,提取帧并执行一些处理,然后将所有内容放回一起以在第二个播放器中播放。
感谢您的任何建议:)
您可以使用自定义transform DirectShow过滤器来执行视频处理,或者使用带有回调的Sample Grabber过滤器来直接在代码中执行处理(在C#中可能很慢,但是可以使用Intel IPP调用使其非常快)。
要编辑视频,您可以使用带有源代码,样本采集器和编码器/复用器或DirectShow Editing Services的简单图形(如果您计划将来提供更多功能)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.