Seite 3 von 6

Verfasst: 06.07.2006 20:12
von ts-soft
>> Also afaik ist .avi nicht komprimiert
AVI ist ein Container-Format, die Dateiendung sagt nichts über die
Komprimierung aus, siehe DivX usw.

Oftmals sind aber unkomprimierte Videodaten in einen AVI-Container. Wollte
die pauschale Aussage nur ein wenig korrigieren :wink:

Verfasst: 06.07.2006 20:14
von Alves
Danke!

Kenn mich mich Videos nicht so aus, habe d nur draus geschlossen, wie groß meine gerenderten Vids immer sind. :D

Verfasst: 06.07.2006 20:41
von Kaeru Gaman
Joel hat geschrieben:Achso bin mal 2 Stunden weg. Aber ihr könnt ja schonmal versuchen das problem zu lösen.
das ist aber großzügig von Euer Hohlheit.


die idee mit dem vorher packen und dann versenden find ich schon ganz gut.
allerdings kann man eben codierte formate nich unbedingt weiter packen.

etwas wesentlich kleiner machen kann man immer nur, wenn man informationen wegnimmt. irgendwo ist eben eine untergrenze erreicht. deshalb lässt auch mit zunehmender codierung zur platzersparnis die qualität nach.
bilddaten kann man deshalb so gut komprimieren, weil so viele redundanten informationen vorhanden sind. natürlich kann ich anstatt tausend mal die farbe blau zu speichern, einfach die tausend und ein blau speichern. aber wenn jedes byte einer datei eine komplett andere information trägt, kann man kaum komprimieren.

Verfasst: 07.07.2006 11:13
von bobobo
Kaeru Gaman hat geschrieben: etwas wesentlich kleiner machen kann man immer nur, wenn man informationen wegnimmt.
Das stimmt so nicht. Es gibt Möglichkeiten der Beschreibung, die sehr
viel kleiner sind als das Endergebnis. Im Grunde fügt man also Informationen hinzu und nimmt dafür das "Fleisch" weg.
Vorraussetzung dafür sind allerdings immer bekannte und vorhandene Resourcen.
Früher Demoprogrammierung, heute das hervorragende QB_Play1.3(†) vom FroggerProgger.
Ein kleineres "Komprimat" für WaveDateien wirst Du wohl schwerlich
finden.

Verfasst: 07.07.2006 13:38
von Joel
:| Nein!!!!
Also ihr habt gesagt wenn man den Video umwandelt dass wird die Dstei kleiner. So aber bis der Video umgewandelt ist dauert das zb 10 min. Und dann muss die umgewandelte Datei verschickt werden. Das dauert auch nochmal 60 min.


Also wollte ich wenn die Datei umgewandelt wird als erstellt wird das schon anfangen zu verschicken, Daten kann man ja nicht wenn auf die zugegriffen oder erstellt werden irgentwas gemacht werden also wollte ich wissen wie das doch geht.

Verfasst: 07.07.2006 13:53
von hardfalcon
Warum brennst du's nicht auf CD und verschickst es per Brieftaube (nach RFC 1149)?

Verfasst: 07.07.2006 13:57
von Kiffi
Joel hat geschrieben:Also wollte ich wenn die Datei umgewandelt wird als erstellt wird das schon anfangen zu verschicken, Daten kann man ja nicht wenn auf die zugegriffen oder erstellt werden irgentwas gemacht werden also wollte ich wissen wie das doch geht.
sag mal: Kannst Du Dir bitte in Zukunft den Klumpatsch mal durchlesen und
korrigieren, bevor Du ihn abschickst? :|

@Topic: Mir wäre kein Verfahren bekannt, das es ermöglicht, eine Datei zu
versenden, während sie erstellt wird.

Verfasst: 07.07.2006 13:58
von hardfalcon
@Kiffi: Jaja, die Jugend von heute... Und PISA is an allem Schuld... <)

Verfasst: 07.07.2006 14:10
von bobobo
Ist doch eigentlich nicht so schwer das Ganze.
Ist halt nur etwas Gebastel (bei dem fraglich ist, ob das Endergebnis
dem Bastelaufwand gerecht wird)


Auf der Senderseite nimmst Du das lange, große Video und zerschneidest es in kleine Stücke.


Die kleinen Stücke werden komprimiert (**) und jeweils gleich nach dem Komprimieren übertragen.


Auf der Empfangsseite empfängt der Empfänger und spielt (***) die
empfangenen Videoteile ab(*) sobald sie eingetroffen sind.
Außerdem setzt der Empfänger die empfangenden Videoteile zu einem langen aber dann komprimierten Video wieder zusammen.


(*) ansonsten hätte das versenden direkt nach der Komprimierung
vermutlich nicht so viel Sinn.

(**) ob das möglich ist oder nicht ist erstmal gar nciht relevant. Meist isses unter Verlust sehr gut möglich.

(***) Hierbei wird es zwangsläufig zu Rucklern bei den Übergängen
der einzelenen Videoteile kommen wenn die Übertragung länger dauert
als das Abspielen.

Verfasst: 07.07.2006 22:16
von Joel
ich habs mal versucht, nur wie versendet man Daten im Arbeitsspeicher?

Server:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          MessageRequester("PureBasic - Server", "hat sich gemeldet ", 0)
  
        Case 2
          MessageRequester("PureBasic - Server", "Ein Client hat eine roh-datei gesendet ", 0)
          DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "C:\", "*.*", 0)

       If DateiName$
       ReceiveNetworkFile(ClientID, DateiName$)
       EndIf 
        Case 3
          MessageRequester("PureBasic - Server", "Ein Client hat eine Datei gesendet!", 0)
          SendNetworkString(ClientID, "Ja")

          DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "C:\", "*.*", 0)

       If DateiName$

       
       
       
       
       ReceiveNetworkFile(ClientID, DateiName$)
  EndIf 
        Case 4
          MessageRequester("PureBasic - Server", "Die verbindung wurde beendet!", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   

Client:

Code: Alles auswählen

Datei.s = OpenFileRequester(Datei, "", "", 0) 
If OpenFile(0, Datei) = 0 
  Debug "Error: OpenFile!" 
  End 
EndIf 

lenFile = Lof(0) 
*buffer = AllocateMemory(lenFile) 
*pack = AllocateMemory(lenFile + 8) 
ReadData(0, *buffer, lenFile) 
lenPack = PackMemory(*buffer, *pack, lenFile, 7) 
If lenPack 
  MessageRequester("Info", "Ratio: " + StrF(lenPack/lenFile)) 
Else 
  MessageRequester("Info", "Weitere Komprimierung nicht möglich") 
EndIf 
; *pack -> Daten zu senden 
If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("joel2.dyndns.org", Port)
If ConnectionID = 1
MessageRequester("Error", "Can't load the movie...", 0)
End
EndIf 
;Name$ = OpenFileRequester("Senden", "C:\", "*.*", 0 , 0)
;If Name$
SendNetworkFile(ConnectionID, *pack)

  
  
  
  
  CloseNetworkConnection(ConnectionID)
;Else
  ;MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
;EndIf

  
End