当我试图将原始图像写入ConvertLiveMedia时,我得到了一个异常
System.IO.IOException:“Каналбылзакрыт. System.IO.IOException:“频道已经关闭了。”
var ffMpeg = new NReco.VideoConverter.FFMpegConverter();
var frame = Bitmap.FromFile("source.jpg");
var bytes = ImageToByte(frame);
using (var fs = new FileStream("output.mp4", FileMode.Create))
{
var mediaTask = ffMpeg.ConvertLiveMedia(Format.raw_video, fs, Format.mp4, new ConvertSettings()
{
});
mediaTask.Start();
for (int f = 0; f < frames; f++)
{
mediaTask.Write(bytes, 0, bytes.Length); //exception here channel was closed
}
mediaTask.Stop();
}发布于 2018-12-03 09:25:39
System.IO.IOException:“频道已经关闭了。”
出现此异常是因为ConvertLiveMedia重定向stdin/stdout,但是ffmpeg进程突然停止,很可能是因为不正确的选项或输入数据。
在您的示例中,原因是"mp4":这种输出格式不能与活动流一起使用,ffmpeg只能将其写入本地文件。为此,您可以使用这个ConvertMedia过载 (如果使用“写”方法提供输入,则可以传递用于inputStream参数的null。
https://stackoverflow.com/questions/53585563
复制相似问题