我经历过多个图书馆并且一直在浏览和研究,每次图书馆都没有完成,没有文档或它不起作用。如何在C#应用程序中打开视频文件并转储随机屏幕截图?
答案 0 :(得分:5)
我不确定如何使用VLC播放器执行此操作,但您可以使用ffmpeg:
从这里下载ffpmeg:http://www.ffmpeg.org/download.html
如果您正在使用Windows从Windows版本下载static
版本:http://ffmpeg.zeranoe.com/builds/
这为您提供了一个独立的.exe文件,而不是整堆文件。
在没有C#的情况下使用它可以打开控制台窗口并运行命令,如下所示:
ffmpeg -i "AngularJS - Part 1 - Hello Angular.mp4" -ss 00:02:25.435 -f image2 -vframes 1 screenshot.jpg
00:02:25.435
部分实际上是长时间代码,格式如下:
小时:分钟:秒。帧百分比
如果您希望框架在5秒后传入:00:00:05.000
如果您想要2分38秒,第12帧。你会做00:02:38.480
要计算帧百分比,请执行frame / frame rate
,即12 / 25
,即0.48
生成屏幕抓取。
现在,如果你想在一个应用程序中这样做,你可以这样做:
static void Main(string[] args)
{
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
WorkingDirectory = "C:/Users/Phillip/Desktop/ffpmeg sample/",
FileName = "cmd.exe",
Arguments = "/C ffmpeg -i \"AngularJS - Part 1 - Hello Angular.mp4\" -ss " +
"00:02:25.435 -f image2 -vframes 1 \"screenshot-from-app.jpg\""
};
process.StartInfo = startInfo;
process.Start();
Console.ReadKey();
}
所以我们创建一个新进程,运行一个命令,它恰好是我们手动运行的命令,除了我们前缀/C
导致它运行命令然后终止控制台窗口
您可以从ffmpeg网站获取有关获取屏幕抓取的更多信息: