代码之家  ›  专栏  ›  技术社区  ›  Josh Stodola

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

  •  12
  • Josh Stodola  · 技术社区  · 15 年前

    有一个IP网络摄像头,我以前写过一个.NET类。它基本上是一个计时器实现,每5秒钟从相机中发出一个快照CGI脚本。相机本身是非常粗鲁的;它没有任何类型的API可供我使用,我只能通过编程方式(远程)调用这个脚本。脚本返回640x480 jpeg图像。简单。

    现在我需要做的是花上几天的时间来制作这些图片,并从中创建一个“延时”的AVI视频流,最终将嵌入到网页中。如何使用vb.net完成此操作?

    4 回复  |  直到 12 年前
        1
  •  15
  •   Community dbr    7 年前

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

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

    ffmpeg -f image2 -i img%d.jpg /output/a.mpg
    

    您需要将图像命名为img1.jpg、img2.jpg等。有关详细信息,请参见 ffmpeg faq . 您还应该在常见问题解答中找到有关如何输出不同视频格式的详细信息。

    您可以使用vb启动一个进程 Process.Start() . 像这样:

    Process.Start("ffmpeg.exe", "-f image2 -i img%d.jpg /output/a.mpg")
    

    你也可以看看 ffmpeg-sharp Tao.FFmpeg 它们是用于ffmpeg库的.NET包装器。我也没有亲自尝试过,但看起来可能对你有所帮助。

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

    [相关问题: 271003 ]

        2
  •  4
  •   Pekka    15 年前

    ffmpeg有Windows二进制文件,非常流行。

    Making movies from image files using ffmpeg/mencoder

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

        3
  •  1
  •   Crowe T. Robot    15 年前

    这是一个C包装器,由codeproject的某人提供:

    http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx

    这个包装器应该为您提供所需的。

        4
  •  0
  •   Jermismo    15 年前

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

    我会提供到建议的链接,但我已经用了很多年了。

    编辑:显然,您可以使用ffmpeg: http://ffmpeg.org/ffmpeg-doc.html

    从许多图像创建视频:

    ffmpeg-f图像2-i foo-%03d.jpeg-r 12-S宽x高foo.avi

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