c# - 如何在 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 数量的图像 - 并且想拍摄这些图像,将它们变成将在社交媒体上共享的视频。
解决方案
可能检查AForge.NET。
我以前用过这个,结果已经足够了,特别是考虑到你不能轻松地构建视频。它在后台使用 FFMPEG,因此您无需担心大量的终端命令。
一个可能的缺点是没有立即可用的选项(据我所知)来添加过渡/在屏幕上保持静止图像超过一帧。这意味着您需要自己实现这些功能。
请记住,AForge.NET 在 GPLv3 下获得许可
查看VideoFileWriter类的示例
推荐阅读
- typescript - 尝试使用angularfire以角度加入一对多的firebase文档
- c++ - 无法发现使用另一个类 C++ 的“朋友”函数的错误
- c# - 获取所有相关食谱,无需过滤位置
- modulo - 为什么 BlueJ 说模数不是语句?
- python - Convert json format to dataframe frame
- python - Get source from image from webpage
- c - 指针作为 for 循环中的索引值
- python - 如何制作列表列表中元素的有序频率列表
- gradle - Gradle: automatically choose GRADLE_HOME depending on the project
- django - Django 使用 MySQL DB 搜索日期字段