Tag: video处理

C#从video文件的一部分中提取帧

使用AForge ffmpeg包装器,您可以使用VideoFileReader类从video中提取帧并将其另存为位图。 请参阅此示例: 提取.avi文件的帧 我的问题是你无法指定从何处开始阅读框架。 它始终从video文件的开头开始。 但是,如果我想提取两个小时长的video文件中的帧,该怎么办? 使用该类,您必须解析整个第一个小时的juste以获得这些帧。 有谁知道实现这一目标的方法?

在处理大文件时,通过Windows服务运行ffmpeg.exe无法完成

我使用ffmpeg.exe将video文件转换为flv格式 。 为此,我使用Windows服务在后台运行转换过程 。 在尝试通过Windows服务 转换大文件 (我在文件大小> 14MB时经历过)时, 它会卡在启动进程的行 (即process.start(); )。 但是当我试图直接从命令提示符执行ffmpeg.exe时,它解决了任何问题。 我在windows服务中的 代码 如下: private Thread WorkerThread; protected override void OnStart(string[] args) { WorkerThread = new Thread(new ThreadStart(StartHandlingVideo)); WorkerThread.Start(); } protected override void OnStop() { WorkerThread.Abort(); } private void StartHandlingVideo() { FilArgs = string.Format(“-i {0} -ar 22050 -qscale 1 {1}”, InputFile, OutputFile); Process proc; […]

使用EMGUcv进行颜色跟踪

我正在尝试制作一个彩色对象跟踪器,它使用二进制图像和斑点检测器来跟踪目标类型: https : //www.youtube.com/watch?v = 9qky6g8NRmI 。 但是我无法弄清楚ThresholdBinary()方法是如何工作的,以及它是否是正确的。 以下是代码的相关部分: cam._SmoothGaussian(3); blobDetector.Update(cam); Image binaryImage = cam.ThresholdBinary(new Bgr(145,0,145),new Bgr(0,0,0)); Image binaryImageGray = binaryImage.Conver(); blobTracker.Process(cam, binaryImageGray); foreach (MCvBlob blob in blobTracker) { cam.Draw((Rectangle)blob, new Bgr(0,0,255),2); } 当我显示binaryImage时,我甚至没有得到blob。 我只是得到一个黑色的图像。

检测人们穿越OpenCV线

我想计算从两边越过一条线的人数。 我有一个放在天花板上的摄像机,用于拍摄线路所在的地板(因此摄像机只能看到人头顶部;所以它更像物体探测而不是人物探测)。 是否有针对此问题或类似问题的示例解决方案? 所以我可以向他们学习? 编辑1:任何时候都有不止一个人越线。

如何使用Emgu CV(或OpenCV)剪切图像的子部分?

我想使用Emgu CV(或OpenCV)剪切图像的子图像(或裁剪它)并计算该部分的平均颜色; 寻找变化。 谢谢

在WPF中生成和绘制video的快速方法是什么?

我正在编写一个video播放器来播放由我们的ASIC捕获的帧。 它们采用自定义格式,并且我已经提供了解码ASIC状态的function。 video可以是640×480到2560×1200(!!!)的任何大小。 每个状态周期的输出是16×16像素块,我必须在屏幕上看到一个video。 每次需要更新屏幕时,我都会收到以下信息: 块宽 块高 块开始的X坐标 块开始的Y坐标 RGB32像素颜色信息的一维数组 主要限制: .NET 3.5 没有不安全的代码 我今天早上花了一些时间尝试WriteableBitmap,并将其用作Image的源代码,如下所示: private WriteableBitmap ImageSource; public MainWindow() { InitializeComponent(); ImageSource = new WriteableBitmap(FrameWidth, FrameHeight, 96, 96, PixelFormats.Bgr32, null); ImagePanel.Source = ImageSource; } private void DrawBox(byte Red, byte Green, byte Blue, int X, int Y) { int BoxWidth = 16; int BoxHeight = […]

多个video源合并为一个

我正在寻找一种有效的方法来做到以下几点: 使用几个源video(长度大致相同),我需要生成一个输出video,该video由在其自己的区域中运行的所有原始源组成(就像一堆不同大小的PIP )。 因此,最终结果是所有原件并排运行,每个原件都在自己的区域/盒子中。 源和输出需要是flv ,我使用的平台是Windows(Windows 7 64位开发,部署到Windows Server 2008)。 我看过avisynth,但不幸的是它无法处理flv和非插件和我尝试过的flv分离器。 我当前的进程以下列方式使用ffmpeg : 使用ffmpeg为每个video生成每秒25个png,根据需要调整原始大小。 使用System.Drawing命名空间将每组帧组合成一个新图像,从静态背景开始,然后将每个帧加载到一个Image并绘制到背景Graphics对象 – 这给了我组合的帧。 使用ffmpeg将生成的图像合并到video中。 所有这些都是IO密集型(这是我目前的处理瓶颈),我觉得必须有一种更有效的方法来实现我的目标。 我没有太多的video处理经验,也不知道那里有什么选择。 有人能建议一种更有效的方法来处理这些吗?

从CaptureElement和MediaCapture执行实时video流处理

在我的Windows 8商店应用程序中,我倾向于执行实时video流处理(例如,面部检测)。 技术1 在我以前的Windows 7应用程序中,我能够使用以下技术( C#中的相机面部检测使用Emgu CV(OpenCV in .NET)和WPF )来执行实时video处理。 该技术具有固定周期定时器回调,以主动从相机对象查询图像缓冲区 。 void timer_Tick(object sender, EventArgs e) { Image currentFrame = capture.QueryFrame(); // Perform image processing based on currentFrame 技术2 我之前在Android中使用的另一种技术是,我将在相机上安装相机缓冲预览回调。 摄像机将通过传递捕获的摄像机缓冲区定期触发回调 。 从那里,我可以执行图像处理。 public abstract void onPreviewFrame (byte[] data, Camera camera) { // Perform image processing based on data 但是,在谈论Windows 8 Store Application的video处理的文章中,他们大多使用内置处理function 如何旋转捕获的video(使用C#/ […]

提取.avi文件的帧

我正在尝试编写ac#代码来提取.avi文件的每个帧并将其保存到提供的目录中。 你知道任何合适的图书馆用于此目的吗? 注意:最终版本必须适用于所有系统,无论安装的编解码器或系统架构如何。 它不能要求机器上存在其他程序(如MATLAB)。 提前致谢。 Tunc

video捕获+上传+处理+流媒体返回 – .NET和C#

我们正试图找出.NET堆栈中可用的任何技术/库(甚至是第三方dll上的包装器),它们将帮助我们构建一个可以 1 – 从用户的video设备捕获图像 2 – 将其实时上传到服务器 3 – 处理video(在服务器中) – 例如:为video添加水印 4 – 将其流回用户/其他用户 优选地,步骤2和4之间的时间延迟/等待时间应该是最小的 第一个要求(捕获)似乎非常简单。 挑战在于确定一种合适的方式来进行上传,进行处理并将其流回。 任何有效的建议或想法? 最近来了acrsoss FFmpeg库,它有一个C#包装器。 FFmpeg可用于处理方面吗?