保存C#VLC截图

use*_*259 0 c# vlc

我经历过多个图书馆,并且一直在浏览和研究,每次图书馆都没有完成,没有文档或它不起作用.如何在C#应用程序中打开视频文件并转储随机屏幕截图?

Phi*_*ill 5

我不确定如何使用VLC Player执行此操作,但您可以使用ffmpeg:

从这里下载ffpmeg:http://www.ffmpeg.org/download.html

如果您正在使用Windows static从Windows版本下载该版本:http://ffmpeg.zeranoe.com/builds/

这为您提供了一个独立的.exe文件,而不是整堆文件.


手动运行ffmpeg

在没有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 rateie即12 / 250.48

生成屏幕抓取.


在C-Sharp中运行ffmpeg

现在,如果您想在应用程序中执行此操作,您可以执行以下操作:

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();
}
Run Code Online (Sandbox Code Playgroud)

所以我们创建一个新进程,运行一个命令,它恰好是我们手动运行的命令,除了我们的前缀/C使它运行命令然后终止控制台窗口.

您可以从ffmpeg网站获得有关获取屏幕抓取的更多信息:

http://ffmpeg.org/trac/ffmpeg/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video

http://ffmpeg.org/trac/ffmpeg/wiki