zwei dateien "verschmelzen"

Für allgemeine Fragen zur Programmierung mit PureBasic.
Moxl
Beiträge: 150
Registriert: 26.10.2012 13:19

zwei dateien "verschmelzen"

Beitrag von Moxl »

Halli hallo,

ich hab folgendes vor, ich möchte 2 oder mehrere video dateien (in meinem fall *.avi) mit einander verschmelzen... quasi das man am ende eine datei hat und wenn man diese startet, dass erst das eine video gespielt wird und direkt danach schließt das zweite video an... also aus zwei mach eins :mrgreen:

das hab ich bisher zusammen gebastelt aber klappt komischerweise nicht:

Code: Alles auswählen

If  ReadFile(0, GetHomeDirectory()+"eins.avi") And ReadFile(1, GetHomeDirectory()+"zwei.avi")
  laenge0.q=Lof(0)
  laenge1.q=Lof(1)
  *memeins=AllocateMemory(laenge0)
  *memzwei=AllocateMemory(laenge1)
  ReadData(0, *memeins, laenge0)
  ReadData(1, *memzwei, laenge1)
  CloseFile(0)
  CloseFile(1)
  If  CreateFile(3, GetHomeDirectory()+"drei.avi")
    WriteData(3, *memeins, laenge0)
    CloseFile(3)
  EndIf
  If  OpenFile(4, GetHomeDirectory()+"drei.avi")
    FileSeek(4, Lof(4))
    WriteData(4, *memzwei, laenge1)
    CloseFile(4)
  EndIf
EndIf
vielleicht könnt ihr mir weiter helfen :bounce:

dankeschön :D
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: zwei dateien "verschmelzen"

Beitrag von NicTheQuick »

Du kannst ja auch nicht einfach zwei Dateien aneinander klatschen und dann werden sie auch so abgespielt. Dazu musst du wissen wie das AVI-Containerformat aufgebaut ist. Außerdem müssten dann beide Videos in genau dem selben Format vorliegen. Wenn sie verschiedene Formate haben, müsstest du ja mindestens eins der Videos erst neu kodieren in das passende Format.

Mein Tipp wäre einfach vorhandene Konverter dafür zu nutzen, die du nur noch per Kommandozeile bzw. mit 'RunProgram()' und den passenden Parametern starten musst. Eine Idee wäre da z.B. FFMPEG zu nutzen.

Und noch etwas wegen deinem Beispiel. Du musst die Ausgabedatei nicht zweimal öffnen. Es reicht sie einmal zu öffnen, dann beides reinschreiben und dann wieder schließen. Also einfach die zwei 'WriteData()' nacheinander benutzen mit den Inhalten der beiden Quelldateien.
Moxl
Beiträge: 150
Registriert: 26.10.2012 13:19

Re: zwei dateien "verschmelzen"

Beitrag von Moxl »

achso ich dachte das würde vllt doch so einfach funktionieren weils ja auch nur bytes sind^^
naja ok dann mach ich das so danke dir :D

und das mit dem zweimal öffnen.. das hatte ich schon so probiert wie du.. nur weils nicht funktioniert hat hab ichs halt mal anders probiert^^ egal

danke
Antworten