Entwickler-Ecke
Multimedia / Grafik - Fortschrittsanzeige bei Lame-konvertierung
dynamo - So 08.11.09 00:02
Titel: Fortschrittsanzeige bei Lame-konvertierung
Wenn ich createprocess() z.B. die Kommandozeile lame -h -V 0 d:\_musik\xyz.wav D:\_musik\xyz.mp3 übergebe, dann wandelt lame.exe brav meine *.wav nach *.mp3 um.
Aber wie kann ich den aktuellen Status des laufenden Prozesses abfragen, d.h. wieviel % hat er im Moment erreicht? Diese Information brauch ich, um eine Fortschrittsanzeige zu realisieren. Weiß jemand, wie das geht?
Delete - So 08.11.09 04:04
Da wirst du dir wohl mal die Dokumentation von der lame.dll/exe angucken müssen. Und eventuell hilft auch eine Forensuche.
aramintaros - Di 08.12.09 23:17
Hi dynamo,
ich experimentire gerade mit dem
mencoder und benutze
JvCreateProcess von den JediTools.
Hiermal ein par Codezeilen.
Zuerst stelle ich die Parameter
"
CommandLine" = "
cmd.exe"
"
coOwnerDate" = "
True"
"
coRedirect " = "
True"
"
StartUpInfo" = "
swHide"
so ein.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); begin JvCreateProcess1.Run; JvCreateProcess1.WriteLn('mencoder E:\ARBEITEN\Film.avi -srate 48000 -oac mp3lame -lameopts aq=3:cbr=128: -ovc copy -of rawaudio -o E:\ARBEITEN\Film.mp3'); end;
procedure TForm1.JvCreateProcess1Read(Sender: TObject; const S: string; const StartsOnNewLine: Boolean); var a: integer; begin Memo1.Lines.Append(s); a:= Pos(':', s); if a= 4 then Progessbar1.Position:= StrToInt(Copy(S, 22, 2)); end; |
Den Lame-Encoder kenne ich im Umgang nicht, kann natürlich sein, daß der Werte mit Komma ausgibt, dann ist das Ergebnis vorher umzuwandeln.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!