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

求助:NReco VideoConverter中图片序列路径的正则写法

解决NReco VideoConverter(FFmpeg)图片序列转视频的路径格式问题

我来帮你搞定这个FFmpeg序列路径的问题!先梳理下核心问题:你的图片命名规则和FFmpeg要求的序列格式不匹配,还有几个小细节需要调整。

首先看你的图片保存代码,先提个小优化:你现在的保存逻辑没指定.bmp扩展名,虽然Bitmap.Save会自动根据格式加,但为了避免意外(比如如果Bitmap是其他格式,扩展名会变),最好手动明确扩展名,同时用Path.Combine来拼接路径更安全:

foreach (Bitmap printscreen in printscreeny) { 
    printscreen.Save(Path.Combine(Path.GetTempPath(), $"{guid}_{i}.bmp")); 
    i++; 
}

接下来是ConvertMedia的路径问题——你写的guid_*%d.bmp是错的,FFmpeg的图片序列语法不需要*通配符,直接用%d来匹配递增的数字即可。正确的写法应该是把路径拼接成{临时目录}/{guid}_%d.bmp,同样用Path.Combine来避免路径分隔符的问题:

var inputSequencePattern = Path.Combine(Path.GetTempPath(), $"{guid}_%d.bmp");
videoConverter.ConvertMedia(inputSequencePattern, null, "test.mp4", null, convertSettings);

关键说明:

  • NReco VideoConverter底层依赖FFmpeg,所以必须遵循FFmpeg的图片序列规则:%d会匹配连续的整数(比如0、1、2...),和你生成的guid_0.bmp、guid_1.bmp完全对应。
  • 要确保你的i是连续递增的(不能跳号,比如0、1、3这样缺了2),否则FFmpeg可能会中断转换或者只处理到缺失的位置。
  • 如果你的数字需要固定位数(比如0001、0002),可以用%04d这样的格式,但你的代码里是直接用i的原始数值,所以%d就足够了。

内容的提问来源于stack exchange,提问作者Vít Hněvkovský

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:33:39