views:

67

answers:

1

I can read now the last line from the FFmpeg procees executed in a cmd window. with this source using Scripting host model object reference.

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

This line is like this. it's the last line in the cmd window (in the botom).

frame= 2816 fps=667 q=11.0 Lsize= 13036kB time=187.66 bitrate= 569.1kbits/s

I cut the part of Time to bulid a progress bar in my vb 6.0 app. But in the cmd process exist a value 13 lines up this value its called Total duration. But i cant read this line , somebody haves a code or any idea to read this line ubicated 13 lines up from the last line of the cmd window from ffmpeg...

A: 

I've done this myself in Java. I think the problem is that the status update lines (like you quote above with the time= substring) is terminated with a CR (Carriage Return) and not a LF (Line Feed). My gut says that ReadLine is looking for a full CRLF. So, to do this, you will need to:

  • understand the difference between CR, LF and CRLF, and what ASCII code each is
  • read in the output stream character by character, building up a CR-terminated line, and then parse it for the time= and Durration= tokens

It would help both you and us if you had debugging print statements in your code, and showed us the output.

Stu Thompson