是否有人知道从一系列图像文件创建视频的可靠方法?在你发布问题之前没有搜索答案,然后在发出诸如“使用FFMPEG”之类的简单消息之前,请先阅读其余信息。
我正在尝试创建一个视频,只要它得到广泛支持,从一系列图像(.jpg,.bmp等)开始,格式无关紧要。我的平台是Windows Server 2008,64位。如果我可以在我的C#程序中制作视频,那很好,但我不反对将一系列图像文件写入目录,然后启动外部程序从这些图像制作视频。
唯一的限制是:它必须在我的Windows Server 2008系统上运行,并且可以编写脚本。也就是说,没有需要操作员干预的GUI程序。
我在StackOverflow上发现了许多类似的问题,并且已经尝试了几种解决方案,所有这些解决方案都有不同程度的挫败感,没有任何类似的成功。
FFMPEG看起来很棒。也许是在Linux上。我下载的两个Windows版本已损坏。给定此命令行:
ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi
其中一个版本会读取图像,然后由于数据执行阻止而崩溃。另一个读取第一个文件然后吐出一条错误消息“无法找到合适的文件jpeg / image2.jpg编解码器”。有帮助,那。在任何情况下,FFMPEG在Windows下看起来都是非首发。
对之前发布的帖子Splicer的一个答案。它看起来很不错。我编译了示例并尝试运行,但是收到了一些关于未找到文件的神秘错误消息。看起来COM类没有注册。我想我需要安装一些东西(DirectShow,也许,虽然我认为已经安装了?)。根据需要,我可能很难在服务器上安装它。 (“什么?为什么在服务器上需要它?”)
另一个答案建议来自Code Project的AviFile库。这看起来很简单:围绕Windows AviFile子系统的包装器。除了包创建的AVI文件似乎具有所有帧,但只有第一帧显示我在Windows Media Player中播放AVI。那么,如果您尝试创建压缩视频,程序会抛出异常。
所以,我想知道是否有一种好的,可靠的方式来做我想要的:在Windows系统上,通过.NET API从一系列图像创建AVI或其他常见的视频文件格式或使用外部程序。有什么帮助吗?
答案 0 :(得分:10)
在使用了一段时间并看了x264和VideoLan之后,我又回到了Splicer。事实证明,隐秘的错误消息是由于我的代码中的错误。
看起来Splicer会做我想做的事情:以编程方式从一系列图像创建视频。
感谢所有回复的人。
答案 1 :(得分:6)
您可以使用VideoLan,我会推荐它。
我在使用VideoLan的C#应用程序方面有直接的经验:
VideoLan具有命令行界面这一事实是一件好事。 VLC支持禁用任何可视元素的命令行选项;因此VLC GUI不会弹出,也不会弹出命令行窗口。因此,在C#应用程序中,您可以将与视频相关的工作分配给VLC客户端。 C#具有Process类,可以为您管理vlc.exe实例。它最终成为一个非常巧妙的解决方案。
答案 2 :(得分:1)
在Windows上处理视频(编码和播放)是一个真正的泥潭。 .NET根本不会对你有所帮助 - 你总是要么是PInvoking / COM-interoping本机API,要么是使用其他人已经构建的.NET包装器来做同样的事情。
无论如何,我不能说我已经使用过它,但好的赌注似乎是x264 library that is part of the videolan project。这为您提供了一个可以PInvoke的自包含C库,您不必担心在服务器上安装和DirectShow垃圾。据我所知,它会生成可在Flash中播放的H.264格式视频。
答案 3 :(得分:0)
我已经使用mplayer的mencoder来创建AVI(带编解码器msmpeg4 / mp3,默认情况下可以通过Windows Media Player读取)来自Linux上的TGA文件,如下所示:
mencoder mf://*.tga -mf fps=25:type=tga \
-audiofile /tmp/test.mp3 -oac copy \
-of lavf -ovc lavc \
-lavcopts vcodec=msmpeg4v2:mbd=2:mv0:trell:cbp:last_pred=3:vbitrate=3000 \
-o /tmp/test.avi
我知道mplayer确实有Windows版本。
答案 4 :(得分:-2)
您可以将所有想要包含在视频中的图像打印到剪贴板中,然后将其导入到Windows Live Movie Maker中(当然是动态的!)并将其编译好,而不是仅仅完成所有麻烦。为你服务!
所有这些都可以通过代码完成,但这样一来,您无需自己创建。正如您所说的那样,该平台是Windows,并且所有Windows组件都安装了Windows Live Movie Maker,因此对于使用您的应用程序的任何人来说都不应该是一个问题,除非
a)他们卸载了Windows Live Movie Maker
b)他们正在使用运行Windows版本超过8或9年的计算机......