我已使用以下代码将图像转换为视频
NReco.VideoConverter.ConvertSettings setting = new NReco.VideoConverter.ConvertSettings();
setting.SetVideoFrameSize(FrameSizeWidth, FrameSizeHeight);
setting.VideoCodec = "libx264";
setting.AudioCodec = "mp3";
setting.CustomInputArgs = " -framerate 1/"+imageDuration;
setting.CustomOutputArgs = " -profile:v high -r 30";
FFMpegConv.ConvertMedia(inputFilePath, null, outputFIlePath, null, setting);
我还有一个mp4视频和我一起使用以下代码分割。
var ffMpegConverter = new FFMpegConverter();
ffMpegConverter.ConvertMedia(SourceFile, Format.mp4, DestinationFile, Format.mp4,
new ConvertSettings()
{
Seek = StartTime,
MaxDuration = (EndTime-StartTime),
VideoCodec = "libx264",
AudioCodec = "mp3",
});
我需要连接这两个视频。我使用了fllowing代码。这里有SourceVideoList数组包含两个视频(Splite和图像视频)
var ffMpegConverter = new FFMpegConverter();
ffMpegConverter.ConcatMedia(SourceVideoList.ToArray(),OutputFile,null,new ConcatSettings());
但是,当我尝试这样做时,会给出错误说"在过滤器Parsed_concat_0"上找不到未标记输入板3的匹配流。 有人可以帮助我吗
答案 0 :(得分:0)
ConcatMedia方法使用ffmpeg concat过滤器;它期望所有输入视频块具有相同的帧大小和帧速率。在大多数情况下,您遇到的错误(无法在过滤器Parsed_concat_0上找到未标记的输入板3的匹配流)意味着视频块具有不兼容的参数集。您可以通过处理LogReceived事件来获取更多信息(以获取ffmpeg控制台日志输出)。
请注意,您可以使用另一种方法将ffmpeg支持的视频(concat demuxer,concat协议 - 请参阅https://trac.ffmpeg.org/wiki/Concatenate以获取更多详细信息)与可接受多个输入文件的ConvertMedia方法重载合并。