首页 > 解决方案 > 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 应用程序即可生成缩放缩略图的工作方法也对我有利。提前致谢。

标签: c#.netwindows-services

解决方案


推荐阅读