有没有人知道从一系列图像文件创建视频的可靠方法?在你发布问题之前没有搜索答案之前,在你发出诸如"使用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编解码器".有帮助,那.无论如何,在Windows下,FFMPEG看起来像一个非首发.
以前发布的一个答案推荐Splicer.它看起来很不错.我编译了示例并尝试运行,但是收到了一些关于未找到文件的神秘错误消息.看起来COM类没有注册.我想我需要安装一些东西(DirectShow,也许,虽然我认为已经安装了?).根据需要,我可能很难在服务器上安装它.("什么?为什么在服务器上需要它?")
另一个答案提出了Code Project 的AviFile库.这看起来很简单:围绕Windows AviFile子系统的包装器.除了包创建的AVI文件似乎具有所有帧,但只有第一帧显示我在Windows Media Player中播放AVI.那么,如果您尝试创建压缩视频,该程序会抛出异常.
所以,我想知道是否有一种好的,可靠的方式来做我想要的:在Windows系统上,通过一系列图像创建AVI或其他常见的视频文件格式,通过.NET API或使用外部计划.有帮助吗?
在使用了一段时间并看了x264和VideoLan之后,我又回到了Splicer.事实证明,神秘的错误消息是由于我的代码中的错误.
看起来Splicer会做我想做的事情:以编程方式从一系列图像中创建视频.
感谢所有回复的人.
你可以使用VideoLan,我推荐它.
我有一个C#应用程序的直接经验,VideoLan做这两件事:
在我的C#应用程序中嵌入VLC查看器(VLC veiwer有3-4个C#"包装器").
通过发送命令行参数在单独的进程中使用vlc.exe.
VideoLan具有命令行界面这一事实是一件好事.VLC支持禁用任何可视元素的命令行选项; 因此VLC GUI不会弹出,也不会弹出命令行窗口.因此,在C#应用程序中,您可以将与视频相关的工作分配给VLC客户端.C#具有Process类,可以为您管理vlc.exe实例.它最终成为一个非常巧妙的解决方案.