FFmpeg 获取截图(vb.net,音视频处理基础需要使用的,类库——12)

20 篇文章 1 订阅
17 篇文章 1 订阅

相信网上的教程时非常的多,不管使用什么语言去编写,都少不了process类的调用。

我们在之前写计时器的时候,就使用了ProgressBar控件,其中是反应倒计时的进度,把所有的秒数算出来,才可以进行倒计时

 这是还在开发的计时器3.0

这里也是这样:

                        t = S + M * 60 + H * 3600

写之前请把基础代码写上(我几乎每一期都会写这一段!!)

Public Shared Function SharedP(s As String, Arguments As String, nowindow As Boolean)
        Dim p As New Process
        p.StartInfo.FileName = s
        p.StartInfo.Arguments = Arguments
        p.StartInfo.UseShellExecute = False
        p.StartInfo.RedirectStandardError = True
        p.StartInfo.CreateNoWindow = nowindow
        p.Start()
        p.StandardError.ReadToEnd()
        Return p.StandardError.ReadToEnd()
        p.WaitForExit()
        p.Kill()
        p.Close()
        p.Dispose()
    End Function

代码:

 Public Function GetImage(input As String, H As Integer, M As Integer, S As Integer) As Bitmap
        Dim t As Integer
        t = S + M * 60 + H * 3600
        SharedP(ffmpeg, "-i " & input & " -ss " & t & " -f image2 " & Application.StartupPath & "\a.png -y", True)
        Return New Bitmap(Application.StartupPath & "\a.png")
    End Function

但是,这只局限于秒,我们是否可以精确到100毫秒?

来吧,写一个重载:

Public Overridable Function GetImage(input As String, H As Integer, M As Integer, S As Integer, MS As Integer) As Bitmap
        SharedP(ffmpeg, "-i " & input & " -ss " & H & ":" & M & ":" & S & "." & MS & " -f image2 " & Application.StartupPath & "\a.png -y", True)
        Return New Bitmap(Application.StartupPath & "\a.png")
    End Function

这不比那么多代码来得简单易懂? 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值