.net 从一系列图像创建视频流(AVI)

.net 从一系列图像创建视频流(AVI),.net,vb.net,video-streaming,jpeg,avi,.net,Vb.net,Video Streaming,Jpeg,Avi,有一个IP网络摄像头,我在一段时间前为它写了一个.NET类。它基本上是一个计时器实现,每五秒钟从相机ping一个快照CGI脚本。相机本身非常粗糙;它没有任何类型的API供我使用,我唯一能以编程方式(远程)做的就是调用这个脚本。该脚本返回640x480 JPEG图像。简单 现在,我需要做的是花上几天的时间拍摄这些图像,并从中创建一个“延时”AVI视频流,最终将其嵌入到网页中。如何使用VB.NET实现这一点?有几种命令行工具可以获取一系列图像并输出AVI文件。我建议您从应用程序中调用其中一个 我会提

有一个IP网络摄像头,我在一段时间前为它写了一个.NET类。它基本上是一个计时器实现,每五秒钟从相机ping一个快照CGI脚本。相机本身非常粗糙;它没有任何类型的API供我使用,我唯一能以编程方式(远程)做的就是调用这个脚本。该脚本返回640x480 JPEG图像。简单


现在,我需要做的是花上几天的时间拍摄这些图像,并从中创建一个“延时”AVI视频流,最终将其嵌入到网页中。如何使用VB.NET实现这一点?

有几种命令行工具可以获取一系列图像并输出AVI文件。我建议您从应用程序中调用其中一个

我会提供建议的链接,但我已经多年没有使用过了

编辑:显然,您可以使用ffmpeg:

要从许多图像创建视频,请执行以下操作:

ffmpeg-f image2-i foo-%03d.jpeg-r 12-s WxH foo.avi

语法foo-%03d.jpeg指定 使用由三个数字组成的十进制数 用零填充的数字表示 序列号。是一样的 C printf支持的语法 函数,但仅接受 正常整数是合适的


FFMpeg有windows二进制文件,非常流行


您必须检查可用的输出格式是否适合您。

.net不直接支持视频格式。最好的选择是使用第三方工具生成.avi

ffmpeg是一种选择。您可以通过如下命令行直接访问它:

ffmpeg -f image2 -i img%d.jpg /output/a.mpg
Process.Start("ffmpeg.exe", "-f image2 -i img%d.jpg /output/a.mpg")
您需要将图像命名为img1.jpg、img2.jpg等。有关更多详细信息,请参阅。您还应该在常见问题解答中找到有关如何输出不同视频格式的详细信息

您可以使用从vb启动进程。大概是这样的:

ffmpeg -f image2 -i img%d.jpg /output/a.mpg
Process.Start("ffmpeg.exe", "-f image2 -i img%d.jpg /output/a.mpg")
您还可以看看,或者,它们是ffmpeg库的.net包装器。我个人也没有试过,但看起来它可能会帮助你

另一种选择是看一看,它具有类似的功能。您应该能够为该工具查找类似的命令行

[相关SO问题:

这是Codeproject的某人制作的C#包装器:


该包装器应能满足您的需要。

查看此项目:很好!!你是来自MSDN论坛的同一个nobugz吗?看起来是个不错的解决方案。“我希望有一个图书馆,但我可以启动这个单独的过程,没问题。”乔希。我已经添加了一些到包装器库的链接,您可能想查看。ffmpeg-sharp不编译,我找不到任何地方下载Tao。FFmpegI我想我自己启动这个过程。我以前用过LAME MP3音频编码器,所以我对它有点熟悉。TAO下载在这里:,但是如果你对在命令行上使用它感到满意,那可能是最简单的方法。啊,我发布这个答案时它不在那里(没有刷新页面)