2010-01-20 76 views
1

我現在可以讀取在cmd窗口中執行的FFmpeg過程的最後一行。 使用此來源使用腳本宿主模型對象引用。使用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窗口中的最後一行(在botom中)。

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行...

+0

我看完了所有內容,但都沒有理解。我以爲我做到了,但我沒有。奇怪的。 – 2010-01-20 20:52:01

+0

**這是編程相關的**,孩子。將手指放在關閉按鈕上並實際閱讀問題。是的,這很難... Ramses1974的英語不太好,但這不是你懶惰的藉口。 – 2010-01-21 08:25:30

回答

0

我已經在Java中自己做了這個。我認爲問題在於狀態更新行(像上面引用的time=子字符串)以CR(回車)而不是LF(換行)結束。我的直覺說,ReadLine正在尋找一個完整的CRLF。因此,要做到這一點,你將需要:

  • 瞭解CR,LF和CRLF之間的差異,每個正是ASCII碼
  • 由字符輸出流字符閱讀,建立一個CR-終止行,然後解析它爲time=Durration=令牌

這將有助於你和我們,如果你已經調試代碼中的打印語句,並且向我們展示了輸出。