我现在可以从 cmd 窗口中执行的 FFmpeg 过程中读取最后一行。
使用脚本主机模型对象引用此源。
Private Sub Command1_Click()
Dim oExec As WshExec
Dim sRow As String
With New WshShell
Set oExec = .Exec("ffmpeg.exe")
End With
Do While oExec.Status = WshRunning
sRow = oExec.StdOut.ReadLine
Loop
End Sub
这条线是这样的。它是 cmd 窗口中的最后一行(在底部)。
frame= 2816 fps=667 q=11.0 Lsize= 13036kB time=187.66 bitrate= 569.1kbits/s
我削减了时间的一部分,以便在我的 vb 6.0 应用程序中构建一个进度条。但是在 cmd 进程中存在一个值 13 排列这个值,它称为总持续时间。但是我看不懂这一行,有人有代码或任何想法可以从 ffmpeg 的 cmd 窗口的最后一行向上读取 ubicated 13 行...
最佳答案
我自己用Java完成了这个。我认为问题在于状态更新行(就像您在上面引用的 time=
子字符串)以 CR(回车)而不是 LF(换行)终止。我的直觉说 ReadLine 正在寻找完整的 CRLF。因此,要做到这一点,您需要:
time=
和 Durration=
代币 如果您在代码中调试打印语句并向我们显示输出,这将对您和我们都有帮助。
关于vb6 - 帮助 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104781/