首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NReco.VideoConverter.ConvertLiveMedia

NReco.VideoConverter.ConvertLiveMedia
EN

Stack Overflow用户
提问于 2018-12-02 23:16:28
回答 1查看 1K关注 0票数 0

当我试图将原始图像写入ConvertLiveMedia时,我得到了一个异常

System.IO.IOException:“Каналбылзакрыт. System.IO.IOException:“频道已经关闭了。”

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-03 09:25:39

System.IO.IOException:“频道已经关闭了。”

出现此异常是因为ConvertLiveMedia重定向stdin/stdout,但是ffmpeg进程突然停止,很可能是因为不正确的选项或输入数据。

在您的示例中,原因是"mp4":这种输出格式不能与活动流一起使用,ffmpeg只能将其写入本地文件。为此,您可以使用这个ConvertMedia过载 (如果使用“写”方法提供输入,则可以传递用于inputStream参数的null

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53585563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档