c# - 从内存中的视频截图,无需将视频或屏幕截图写入磁盘

标签 c# .net video ffmpeg

我正在开发一个处理大量视频文件的应用程序。其中一个处理步骤涉及通过在某些点截取屏幕截图来创建视频内容的 Storyboard。

目前我们是通过将视频从内存写入磁盘,调用ffmpeg在指定时间生成屏幕截图,将屏幕截图读取到内存,然后从磁盘中删除视频和屏幕截图来实现的。

问题在于,这是大量的大型磁盘操作,正在变成瓶颈。

理想情况下,我想做的是在不将视频或屏幕截图写入磁盘的情况下截取屏幕截图;视频在处理时包含在内存中,所有视频都已转码为mp4格式。

有没有办法用或不用 ffmpeg 来完成这个?

最佳答案

我们最终使用 Movie Thumbnailer ( http://moviethumbnail.sourceforge.net/ ) 解决了这个问题,它通过一次通读创建视频 Storyboard,消除了大部分搜索时间。它可以在一秒钟内创建蓝光质量的电影长度视频文件的 Storyboard。

使用 ffmpeg 显然也可以做到这一点,但 MTN 方便地包装了(相当困惑的)ffmpeg 功能。

关于c# - 从内存中的视频截图,无需将视频或屏幕截图写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27383282/

相关文章:

c# - 启用/禁用多个游戏对象的网格渲染器

.NET ListView : event after changing selection

jquery - 在用户点击时通过 jQuery 加载 YouTube 视频的最有效方法是什么?

linux - 不断地将图片添加到视频中

c# - 在 C# 中获取子数组作为引用

c# - 通用抽象类继承

c# - 正则表达式——去掉双空格?

c# - Vb.Net 的 with java 中的关键字?

.net - 安装具有依赖项的 Windows 服务

c++ - cv::VideoWriter 产生不可读的视频