Помогите с ffmpeg - PullRequest
       39

Помогите с ffmpeg

1 голос
/ 20 января 2010

Теперь я могу прочитать последнюю строку из процессов FFmpeg, выполненных в окне cmd. с этим источником, используя ссылку на объект-модель Scripting.

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 раз и называется его общей продолжительностью. Но я не могу прочитать эту строку, у кого-то есть код или любая идея прочитать эту строку, убрав 13 строк вверх от последней строки окна cmd из ffmpeg ...

1 Ответ

0 голосов
/ 21 января 2010

Я сделал это сам на Java. Я думаю, что проблема в том, что строки обновления статуса (как вы цитировали выше с подстрокой time=) заканчиваются CR (возврат каретки), а не LF (перевод строки). Моя интуиция говорит, что ReadLine ищет полный CRLF. Итак, для этого вам необходимо:

  • понять разницу между CR, LF и CRLF и то, что каждый код ASCII равен
  • читает в выходном потоке символ за символом, строит строку с CR-символами, а затем анализирует ее для time= и Durration= токенов

Было бы полезно и вам, и нам, если бы вы отлаживали операторы печати в своем коде и показывали нам вывод.

...