You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中通过图片生成带转场效果和音频的视频?

适用于C#图片转视频场景的类库推荐

目前有两个成熟的C#类库可以完全覆盖你的需求,封装度高不需要复杂配置,和你写的伪代码逻辑高度匹配:

1. Xabe.FFmpeg

这是目前维护最活跃的FFmpeg封装库,对幻灯片生成、转场、音视频合并场景做了专门的简化封装,所有参数都是强类型,不需要手动拼接FFmpeg命令行,内置十几种常用转场效果,完全适配影院宣传视频的制作需求。
实现你需求的示例代码如下:

// 全局仅需配置一次FFmpeg可执行文件路径,提前下载好FFmpeg二进制文件即可,无需安装
FFmpeg.SetExecutablesPath("你的FFmpeg二进制文件存放目录");

// 初始化幻灯片生成作业,指定输出路径、分辨率、帧率
var conversion = await FFmpeg.Conversions.FromSnippet.CreateSlideshow(
    outputPath: @"C:\temp\MyAwesomeVideo.mp4",
    width: 1080,
    height: 1920,
    frameRate: 30
);

// 添加图片帧、设置停留时长、转场效果与转场时长
conversion.AddSlideshowFrame(@"C:\temp\frame01.jpg", TimeSpan.FromMilliseconds(2000), Transition.Fade, TimeSpan.FromMilliseconds(500));
conversion.AddSlideshowFrame(@"C:\temp\frame02.jpg", TimeSpan.FromMilliseconds(1000), Transition.Fade, TimeSpan.FromMilliseconds(500));
conversion.AddSlideshowFrame(@"C:\temp\frame03.jpg", TimeSpan.FromMilliseconds(2000));

// 添加背景音乐
conversion.AddStream(@"C:\temp\mymusic.mp3");

// 执行视频生成
await conversion.Start();

2. Accord.Video.FFMPEG

如果你完全不想接触FFmpeg相关配置,也可以使用Accord框架的FFMPEG模块,直接面向视频对象操作,和你写的伪代码逻辑完全一致:

using (var writer = new VideoFileWriter())
{
    // 打开输出文件,指定分辨率、帧率、编码格式
    writer.Open(@"C:\temp\MyAwesomeVideo.mp4", 1080, 1920, 30, VideoCodec.MPEG4);
    
    // 按需求的停留时长写入对应帧数的图片,转场效果可通过内置的像素混合计算工具快速实现淡入淡出等效果
    // 背景音乐可以配合NAudio库合并到生成的视频文件中,相关实现代码不超过10行
}

场景适配建议

针对影院每周生成宣传视频的使用场景,有两个优化点可以参考:

  • 提前将所有海报图片批量缩放到目标分辨率,避免生成视频时出现拉伸或黑边,用System.Drawing.Common或者ImageSharp都可以快速完成批量处理
  • 如果需要生成竖版短视频适配社交媒体平台,直接调整分辨率参数为7201280或者10801920即可,不需要修改其他逻辑

内容的提问来源于stack exchange,提问作者Kjensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:09:02