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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

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

Beitrag 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
Zuletzt geändert von Joel am 30.03.2009 13:50, insgesamt 2-mal geändert.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag 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
PureBasic 4.30 (x86)
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag 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?
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Beitrag 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...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag 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!!!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag 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.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Keine Idee??

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

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag 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!
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag 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...
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten