合并图像与视频与nreco

本文关键字:nreco 视频 合并 图像 | 更新日期: 2023-09-27 18:01:59

我使用以下代码将图像转换为视频

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",
                });

我需要把这两个视频连接起来。我使用了下面的代码。这里SourceVideoList数组包含两个视频(Splite和image video)

var ffMpegConverter = new FFMpegConverter();
            ffMpegConverter.ConcatMedia(SourceVideoList.ToArray(),OutputFile,null,new ConcatSettings());

但是当我尝试这样做时,它给出了错误说"无法在过滤器Parsed_concat_0上找到未标记输入垫3的匹配流"。有人能帮我一下吗?

合并图像与视频与nreco

ConcatMedia方法使用ffmpeg连接过滤器;它期望所有输入视频块具有相同的帧大小和帧速率。在大多数情况下,您面临的错误(无法在过滤器Parsed_concat_0上找到未标记输入pad 3的匹配流)意味着视频块具有不兼容的参数集。您可以通过处理LogReceived事件(以获得ffmpeg控制台日志输出)获得更多信息。

请注意,您可以使用其他方法将ffmpeg (concat demuxer, concat协议-参见https://trac.ffmpeg.org/wiki/Concatenate了解更多详细信息)支持的视频与接受多个输入文件的ConvertMedia方法重载合并。