Seite 1 von 2

Video-Streaming mit PB (neue Lib möglich?)

Verfasst: 28.03.2009 22:51
von Joel
Hi,

Ist es möglich eine Video mit PB zu einem Client zu Streamen.

Also eigendlich sendet der Server einfach nur den Video in Datenpacketen zum Server, dazu gibt es folgende Möglichkeiten:

1. Der Video hat 30 Bilder, jedes Bild wird als packet gesendet und wird dann später abgespielt (Problem: Wie bekomme ich die Bilder aus dem Video)

2. Man braucht eine Funktion, die eine Video, der gerade gesendet wird also noch beatbeitet wird abspielt.


Ich will übrigens keine Encoder einbauen, sondern nur einen schon verkleinerten Video auf der Fesplatte mit PB Streamen

Verfasst: 28.03.2009 23:12
von php-freak
Joel hat geschrieben:1. Der Video hat 30 Bilder, jedes Bild wird als packet gesendet und wird dann später abgespielt (Problem: Wie bekomme ich die Bilder aus dem Video)
Diese Idee kannst du vergessen! Es gibt zwar externe DLL's oder Programm die soetwas machen allerdings dauert dies viehl zu lange! Ich weiß ja nicht wofür du das brauchst aber wenn das auch Leute ohne DSL 6000 (16000) und ohne HighEnd PC nutzen sollen dann wird das nichts!

Du musst das Video als Rohdateien senden:

Code: Alles auswählen

Ergebnis = SendNetworkData(Verbindung, *SpeicherBuffer, Laenge)
Nun musst du das Video streamen und zwar das immer 100KB/s oder 200 KB/s gesendet werden und auf der anderen Seite abgespielt werden...

Ich guck mal nach einem Beispielcode!

Gruß

php-freak

Verfasst: 28.03.2009 23:27
von Joel
Genau, so kann mans machen, aber welche Funktion spielt eine Video im Arbeitsspeicher ab, wobei sich die Videogröße ständig vergrößert?

Edit: Mir würde eigendlich schon so eine Funktion reichen:

GetMovieFrameByte(MemoryID*, Frame)

Also eine Funktion, die mir sagt, das Frame 1 ab dem 2198 Bit in der Datei anfängt. Wenn ich dann 3 Frames rausschneide, müsste ich das doch auch mit LoadMovie öffnen können....oder muss ich da noch mehr in die Datei einfügen?

Verfasst: 28.03.2009 23:47
von Bisonte
Du meinst im Grunde das, was der VLC macht in PB.

Der VLC ist Opensource soviel ich weiss. http://www.videolan.org/
Vielleicht kannst Du Dir da etwas abgucken...

Verfasst: 29.03.2009 00:14
von TomS
Hm also wenn ich ein Video aus dem Netz herunterlade, kann ich die .part-Datei vom Firefox direkt von der Festplatte streamen. Sobald der Header da ist, und der Player weiß, wie er die Datei öffnen soll (Codec und so). Also zumindest kann das der [url=http://www.mpex.net/software/details/jetaudio.html]Jet-Pl](zrl]. Vielleicht klappt das mit PB ja auch.

Verfasst: 29.03.2009 09:23
von Joel
NENE, PB öffnet nur mit LoadMovie() eine Datei die schon abgeschlossen ist.

Ich kann ja so eine Datei erzeugen, wenn ich weiß, von wo bis wo der Header geht und von wo bis wo welches Frame!!!

Verfasst: 29.03.2009 14:58
von Joel
Ok, also scheinbar gibt es sowas in PB nicht.

Gibt es Möglichkeiten in der Win32API oder mit externen Libs bzw kann jemand vllt versuchen sowas zu Programmieren.

Also ich brauche eines von den 3en:

1. Ein Befehl, der eine Video im Arbeitspeicher abspielt, der noch gespeichert wird.

2. Einen Befehl, der z.B. den Video von Frame 1-10 Abspielt.

3. Einen Befehl, der Einzellne Frames rausschneidet bzw. zu einem Video zusammenfügt.

Verfasst: 29.03.2009 20:54
von Joel
Keine Idee??

Heißt das man kann mit PB Weder streamen noch eine Video der noch gespeichert wird wiedergeben?

Verfasst: 30.03.2009 13:49
von Joel
Scheinbar habe ich hier eine Lücke von PB gefunden.

Wenn ihr sonst keine Ideen hab, dann poste ich gleich mal eine Anfange für eine Video-Streaming Lib!

Verfasst: 30.03.2009 16:20
von Tafkadasom2k5
Joel hat geschrieben:Scheinbar habe ich hier eine Lücke von PB gefunden.
:lol: nur weil für eine bestimmte Nische noch keine Lib existiert, heißt das nicht, dass PureBasic es nicht beherrscht. Du musst dir selber ein System ausdenken. ;)

Bei sowas wie "VideoStreaming", was ja nun keine alltägliche Programmierarbeit ist, musst du halt selber Hand anlegen. "Programmieren" <> "Librarys benutzen und freuen".

Dann solltest du dir mal anschauen, wie ein Video wiedergegeben wird ohne die MovieLib von PB. Warum? Weil du dann erst weißt, wie das ABspielen eines Videos funktioniert- zumindest teilweise. Danach musst du dann schauen, wie du in Kombination mit den Network-Befehlen die Daten auf den anderen Rechner bekommst.

Das ist keine leichte Aufgabe...