@Peter329 Wahrscheinlich läuft der Cache voll und dann knallt es, ich denke, es liegt an Dim graph As Graphics. Arbeite mit Using und Finally und räume in jeder Runde den Speicher sauber auf. ==== MP4 und AVI sind Film-Formate, das passt nicht zu ScrennShots.
@Peter329 Lass mal Deine ScreenShot-Maschine in einem anderen Thread arbeiten. Und: Sieh mal hier rein, ich hab mal damit rumgespielt, das funktioniert. Konverter der Bilder zu einem Video umwandelt
@Peter329 Ich hab aus Deinem Code mal ne Variante gemacht, die bei mir locker bis 1000 Bilder läuft, ich hab die Bildgröße auf 640, 480 festgelegt. Bei einer Bildgröße von 1800, 1080 hab ich bis 630 Bilder laufen lassen, problemlos. Wenn Du das Bild nur abspeicherst, genügt ein Using innerhalb des Try-Blocks. Wenn Du das Bild darstellst, musst Du das PictureBox1.Image vor dem Zuweisen des neuen Bildes disposen, wie @VaporiZed scheibt. Interessamt wird dann allerdings die Laufzeit. Ich liege bei …
Zitat von Peter329: „und erweitert ggf. die %PATH% Umgebungsvariable“Gegebenenfalls. Ich hab mir ein Progrämmchen geschrieben, mit dem ich TS-Dateien nach MP4 konvertiere, da wird dann der FFMPEG-Pfad reinkopiert. %PATH% fasse ich schon sehr lange nicht mehr an.
Zitat von Peter329: „Ist das einfach zu realisieren ?“Sehr einfach. Du generierst per Code eine Batch-Datei und startest sie. Lässt Dir per Event das Beenden melden und startest die nächste Batch. Den Befehl muss ich heute Abend mal raussuchen. ==== Du kannst Dir natürlich mit ffmpeg /? und Pause in einer Batch-Datei die Möglichkeiten mal ausgeben lassen.
@Peter329 Probier mal dies: VB.NET-Quellcode (5 Zeilen)Und: Wenn die MessageBox dargestellt wird, beende mal das Debugging im Studio durch Klick auf das Quadrat.
Zitat von Peter329: „Ich würde natürlich gern noch die Meldungen irgendwohin speichern“Wenn Du den ffmpeg-Aufruf in eine Batch packst und die dann aufrufst, kannst Du drunter Pause schreiben, dann wartet das Fenster auf einen Tastendruck, danach kommt die Meldung. Möglicherweise gibt es einen ffmpeg-Parameter, der eine Log-Datei schreibt: ffmpeg.org/ffmpeg.html
@Peter329 Jetzt musst Du mein Snippet auf Dein Problem anwenden. Also: Verstehen, was da passiert, probiere dazu den Befehl tree c: mal in der Console aus. Verwende ein paar andere Befehle und auch einen ffmpeg-Aufruf. Dann komprimierst Du das ganze ohne die Button und feddich.
@Peter329 Vermengst Du hier zwei Sachen? Ich dachte, dass Du Deinen FFMPEG-Aufruf bereits in der Tascha hast. Wenn nicht, meine Argumente sehen so aus (C#): C#-Quellcode (1 Zeile)
@Peter329 TS ist TransportStream, wird vom terrestrischen TV gesendet. Du musst ausschließlich aufrufen: ffmpeg PARAMETER SOURCE_MOVIE.xyz DESTINATION_MOVIE.mp4 feddich. Das ffmpeg kann unheimlich viele Formate (hier: .xyz) und macht dann daraus mp4 oder was Du haben willst, aber mp4 ist sehr gut komprimiert.
@Peter329 Du baust Dir den Kommandostring für ffmpeg zusammen, da kommen beide Dateipfade vor. Entweder Du startest ffmpeg über Process.Start() mit Programm und Argument oder Du schreibst eine Batch-Datei mit ffmpeg und Argument, speicherst die und führst sie mit Process.Start() aus. Feddich.
Zitat von Peter329: „Und das ist die Ausgabe .... (s.Anhang)“Ich arbeite ne ganze Menge mit ffmpeg, aber solch Fehler ist mir noch nicht passiert. Kannst Du mal skizzieren, wie der Ur-Film beschaffen ist, um das nachvollziehen zu können?