【问题标题】:open a video in C# and iterate into frames and save the processed frames as another video在 C# 中打开一个视频并迭代成帧并将处理后的帧另存为另一个视频
【发布时间】:2011-01-20 10:30:22
【问题描述】:

我正在尝试在我的应用程序中打开一个视频以处理帧,然后将结果保存到另一个视频中。我使用OpenCV (Emgu) 进行图像处理,没有任何问题。但我无法正确使用它来处理视频,因为它不时弹出“访问冲突”异常。我还想保留视频的音轨以供输出。所以我只想用简单的 C# 代码遍历帧,并在每个帧上使用我的 Emgu 函数。

这些对于我的应用来说是理想的:

  1. 保留音频
  2. 视频编解码器/压缩支持
  3. 性能快速

【问题讨论】:

  • 您在使用opencvdotnet 并且您尝试过tutorial 吗?
  • 我正在使用 emgucv 但它有错误。如果您说 opencvdotnet 可以很好地处理视频,那么我肯定会继续使用它!谢谢
  • Opencvdotnet 不再处于活动状态。上一次发布是 3 年前。您可以仅依靠 CvInvoke 方法将 Emgu CV 用作纯 opencv 包装器,因此您将确保不会有比 OpenCV 更多的错误。

标签: c# .net video video-processing emgucv


【解决方案1】:

Opencv 是一个主要用于计算机视觉的库,因此没有内置函数可以让您处理音频数据。 在 stackoverflow 上有一个类似的问题,这里有一个解决方案: Adding audio to video produced from OpenCV

要利用 FFMPEG 及其相关软件,请查看此处: http://opencv.willowgarage.com/wiki/FFMPEG

您在使用 Emgu 时遇到的 Access Violation 错误可能与一些 emgu 或 opencv 错误有关,2.2 版本有一些已知的视频保存错误。

【讨论】:

  • 谢谢,这很有帮助。一个简单的 c# 代码迭代帧并提取位图就可以满足我的需要(我将只在位图上使用 opencv)。
猜你喜欢
  • 2019-03-17
  • 1970-01-01
  • 2016-06-13
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
相关资源
最近更新 更多