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

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.

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