c# - C# Windows 服务如何从视频中提取缩略图?
问题描述
我正在编写一个 Windows 服务,观察公司监控摄像头记录的传入视频的网络目录。然后将它们填充到数据库中,并由同事每天早上使用对应的 GUI WPF 应用程序进行检查。
我打算立即为每个视频制作一个小缩略图,因为每天都在制作更多的视频。然后,观看者可以通过浏览缩略图更轻松地将值得观看的视频与不值得观看的视频区分开来。
我的第一个方法是 MediaToolkit NuGet 包(ffmpeg 包装器),但是它会生成一个完整分辨率的缩略图,所以我努力反对使用它。接下来,我尝试了 MediaPlayer 类,它打开视频文件并生成缩放屏幕截图。这在 GUI 测试环境中确实有效,但在 Windows 服务中失败:
var _player = new System.Windows.Media.MediaPlayer { ScrubbingEnabled = true };
var rtb = new RenderTargetBitmap(...);
var dv = new DrawingVisual();
using (DrawingContext dc = dv.RenderOpen())
dc.DrawVideo(_player, new Rect(...));
我的目标是让 MediaPlayer 方法在服务中正常运行。但是,另一种无需用户打开 GUI 应用程序即可生成缩放缩略图的工作方法也对我有利。提前致谢。
解决方案
推荐阅读
- sql - SQL / Excel在字符串中增加值
- node.js - 使用 Mongoose 在 MongoDb 的一个属性中插入所有即将出现的数据
- docker - 如何检查在 Kubernetes pod 的 docker 容器中运行的工人数量?
- case - Cognos Analytics 11.1.x 中具有多个条件的 Case When 函数
- android - 在 Jetpack compose 中添加抽屉切换按钮
- visual-c++ - 有没有办法在 vc++ 中动态调整组合列表宽度
- postgresql-9.5 - 无法按 jsonb 类型的字段中的节点进行过滤
- reactjs - 反应查询,无效的钩子调用
- python - 如何使用 python 关闭 Internet 选项卡
- docker - TLS:验证客户端证书失败:x509:证书指定了不兼容的密钥用法