public Task <ExecutionOutput> GetFrameAsync(string path, TimeSpan start, string fps, string dir, CancellationToken token = default(CancellationToken)) { Directory.CreateDirectory(dir); var argumentStr = $"ffmpeg.exe -i \"{path}\" -ss {start} -r {fps} -q:v 2 -f image2 \"{dir}/pic_%5d.jpg\""; using (var cli = new Cli("cmd")) { var handler = new BufferHandler( stdOut => Logger.Log(stdOut), stdErr => Logger.Log(stdErr) ); return(cli.Execute1Async(argumentStr, cancellationToken: token, bufferHandler: handler)); } }
//ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg public void GetFrame(string path, TimeSpan start, string fps, string name) { var videoName = name ?? Path.GetFileNameWithoutExtension(path); var dir = $"./images/{videoName}"; Directory.CreateDirectory(dir); var argumentStr = $"ffmpeg.exe -i \"{path}\" -ss {start} -r {fps} -q:v 2 -f image2 \"{dir}/pic_%5d.jpg\""; using (var cli = new Cli("cmd")) { var handler = new BufferHandler( stdOut => Logger.Log(stdOut), stdErr => Logger.Log(stdErr) ); var output = cli.Execute1Async(argumentStr, bufferHandler: handler); //output.GetAwaiter().GetResult(); } }