使用nreco

时间:2016-08-12 05:46:05

标签: c# ffmpeg

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

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的匹配流。 有人可以帮助我吗

1 个答案:

答案 0 :(得分:0)

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

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

相关问题