首页 > 解决方案 > 如何在 C# 中从带有过渡的图像创建视频?

问题描述

使用 C# 代码,我想拍摄一些图像,添加一些音乐并创建一个视频。

我想我可以最好地用伪代码解释我想要什么......:

var video = new Video(1080, 1920); //create a video 1080*1920px 
video.AddFrame("C:\temp\frame01.jpg", 2000); //show frame for 2000ms
video.AddTransition(Transitions.Fade, 500); //fade from first to second frame for 500ms
video.AddFrame("C:\temp\frame02.jpg", 1000); //show frame for 1000ms
video.AddTransition(Transitions.Fade, 500); //fade from second to third frame for 500ms
video.AddFrame("C:\temp\frame03.jpg", 2000); //show frame for 2000ms
video.AddSound("C:\temp\mymusic.mp3"); //added from start of video
video.Save("C:\temp\MyAwesomeVideo.avi", Format.MP4);

这样的事情存在吗?

我知道有几个较旧的库,可以用 ffmpeg 做一些东西来创建幻灯片,但我看了其中一些,它们很难开始工作——而且是为完全不同的东西而设计的。

背景故事:

我为电影院创建了一个系统,该系统每周使用电影海报、放映时间等生成 x 数量的图像 - 并且想拍摄这些图像,将它们变成将在社交媒体上共享的视频。

标签: c#videoffmpeg

解决方案


可能检查AForge.NET

我以前用过这个,结果已经足够了,特别是考虑到你不能轻松地构建视频。它在后台使用 FFMPEG,因此您无需担心大量的终端命令。

一个可能的缺点是没有立即可用的选项(据我所知)来添加过渡/在屏幕上保持静止图像超过一帧。这意味着您需要自己实现这些功能。

请记住,AForge.NET 在 GPLv3 下获得许可

查看VideoFileWriter类的示例


推荐阅读