JavaFX und RTSP

Status
Nicht offen für weitere Antworten.

algorismi

Aktives Mitglied
Hallo Leute,

kann mir einer aus seiner Erfahrung sagen, ob JavaFX das RTSP-Protokoll unterstützt oder nicht?



danke im voraus
Algorismi
 
T

tuxedo

Gast
Deine Frage war:

kann mir einer aus seiner Erfahrung sagen, ob JavaFX das RTSP-Protokoll unterstützt oder nicht?

Das impliziert das du keinen Schimmer hast ob JavaFX RTSP beherscht oder nicht.

Wieso stellst du Fragen auf die du schon eine Antwort hast und lässt Fragen, auf die du keine Antwort hast weg?! :autsch:

Warum frägst du nicht einfach: "Hat hier jemand RTSP schonmal erfolgreich mit JavaFX benutzt und kann mir nen Tipp geben wie ich das am besten mache?" ??? ???:L ???:L
 

algorismi

Aktives Mitglied
OK gut dann stelle ich mal meine Frage anders.

Hat hier jemand RTSP schonmal erfolgreich mit JavaFX benutzt und kann mir nen Tipp geben wie ich das am besten mache? :)
 

algorismi

Aktives Mitglied
OK dann mal anders gefragt,

kann man mir jemand sagen, wie ich in Java (nicht JavaFX) per RTSP stream Videos auf einer Swing-Komponente darstellen kann?
Hat da jemand schon Erfahrung sammeln können?
 
T

tuxedo

Gast
Folgende Schlagworte kann ich dir dazu nennen:

1) JMF
2) FMJ
3) VLC Java Bindings
4) SWT-Ole-Bridge und damit das WindowMediaPlayer ActiveX ansteuern

Die ersten beiden: Da bin ich kein Befürworter... Aufwendig, Komplex, erfodert u.U. manuelle Schritte des Users
Zu 3): Das ist ne feine Sache. Aber auch nicht allzueinfach. Geht dafür aber mit jedem von VLC unterstützten OS

zu 4) Ja, das ist schon fast was für Freaks. Benutzen das aber auch hier in der Firma mit eigenen ActiveX Controls. Im fall von WMP brauchst du natürlich einen DirectShow Filtertreiber der RTSP kann.

Alles in allem: Kein leichtes unterfangen.

- Alex
 

Kr0e

Gesperrter Benutzer
Hallo algorismi,

sowohl die Implementierung von Sun (JMF) als auch die von FMJ ist Mist.
Generell ist zu sagen dass RTP Lösungen sich als sehr schwierig erweisen.

Ich habs ganz einfahc gemacht und funktioniert tadellos!

Gut aufgepasst:

JMF hat einen sehr netten Vorteil! Es spielt Dateien ab, die nicht vollständig sind. (Ergo JMF führt keinen Checksumtest durch wie z.b. die OS Codecs)

Übertrage einfach ne Datei auf die altmodische Art! Sockets usw (Kannst auch MINA oder ähnliche Frameworks nehmen!)
Sobald du in deiner Datei seek'st musst du im Hintergrund veranlassen dass die neue Position geladen wird! Nimm einfach eine RandomAccessFile! Dann lädste nicht umsonst! Wenn du fertig bist, hast du eine vollständige Videodatei! Die Technik nennt sich übrigens Video-On-Demand und ist die am weitverbreiteste Lösung (Youtube usw) RTP ist ansich nur bei livestreams sinnvoll...

Ich weiß leider nicht was du machen willst, von daher nehm ich mal an es handelt sich um eine Datei und nicht um einen Livestream!

Gruß Chris

PS: Du kannst diese lösung dann als jar packen und aus deinem JavaFX Programm aufrufen... Garkein Problem! JavaFx ist praktisch das selbe auf niedriger Ebene ;)
 

algorismi

Aktives Mitglied
Hi Kr0e,

naja es soll sich um eine Anwendung handeln, die sowohl Video-Dateien, als auch livestreams abspielen soll.
Bei Video-Dateien gibt es kein Porbleme (Video On Demand), diese abzuspielen.
Das hauptptoblem ist eben das mit dem livestream.

Werde mir mal mich mit deiner Variante mal etwas genauer beschäftigen.

Gruß
Algorismi
 
T

tuxedo

Gast
Video-On-Demand == unvollständiges Dateispeichern und gleichzeitig abspielen? Sorry, aber: :lol:

Stream ist Stream. Ob er nun partiell über eine lokale, unvollständige Datei gepuffert wird, oder ob die Daten via RTSP eingehen und in einem Puffer im Speicher zwischengelagert bevor sie gerendert werden... Da gibts keinen wirklichen Unterschied. Ist eine Frage des Protokolls. Mehr nicht.

"livestream". Definiere mal "live"... ?! Ich kann mit VLC auch eine Datei streamen ohne RTSP einzusetzen. Ist das dann "live video-on-demand"?

RTSP wird überall da eingesetzt wo es um echtzeit Streaming von Informationen geht. Hauptanwendungsgebiet ist hierbei Audio und/oder Video. Ob "live" oder "nicht live" spielt dabei keine Rolle.

Angenommen du verwendest einfache Sockets und streamst die Daten selbst (TCP?):

Wenn sich da ein Paket verzögert, verzögert sich alles. Die Gesamte übertragung wird ausgebremst. Jeder Empfänger sieht das Video mit seinem eigenen, variierendem Zeitversatz.

RTSP greift da ein, wirft einzelne Frames weg und stellt so sicher, dass bei allen Empfängern nahezu das gleiche Bild zu sehen ist (leichter versatz ist durch Puffern verursacht).

Kann wie gesagt nur zu VLC über die Java-Bindungs raten. Oder eben das VLC ActiveX via SWT-Ole-Bridge ansteuern...
 

Kr0e

Gesperrter Benutzer
@Tuxedo:

Tut mir Leid, du hast leider nicht ganz Recht. Es gibt da einen gewaltigen Unterscheid. RTSP ist dafür ausgelegt Video in Echtzeit zu übermitteln (Wie du ja schon ganz richtig geschrieben hast -> Zeitversatz usw.). Stichwort UDP (Datenverlust). Aus einem RTSP kann man keine Datei wieder erzeugen ;) Zumindest hat man dann nicht mehr das Original. Und über JMF oder auch FMJ das RTP zu benutzen, ist leichter gesagt als getan. JMF z.b. benutzt Codecs um das Video herunter zu "schrauben" (Von der Qualität) Zeig mir mal ein Video mit HD 720p. Codec via RTP und JMF :D Viel Spaß...

Da gibt es sehr wohl einen Unterschied (Video on demand != Livestream) ;)

Mfg Chris

PS: Du räts zu VLC Bindings für Java. Schick doch direkt mal einen Link. Soweit ich weiß, ist das Projekt down... Wenn es nicht so ist, wäre ich sehr erfreut... Ich könnte das gut in meinem 3D OpenGL Projekt benutzen, die JMC von SUN sind eher in einem Beta-Stadium ... Achja, JVLC ist GPL nicht LGPL... Sollte man noch erwähnen ...
 
Zuletzt bearbeitet:

HoaX

Top Contributor
@Tuxedo:

Tut mir Leid, du hast leider nicht ganz Recht. Es gibt da einen gewaltigen Unterscheid. RTSP ist dafür ausgelegt Video in Echtzeit zu übermitteln (Wie du ja schon ganz richtig geschrieben hast -> Zeitversatz usw.). Stichwort UDP (Datenverlust). Aus einem RTSP kann man keine Datei wieder erzeugen ;) Zumindest hat man dann nicht mehr das Original. Und über JMF oder auch FMJ das RTP zu benutzen, ist leichter gesagt als getan. JMF z.b. benutzt Codecs um das Video herunter zu "schrauben" (Von der Qualität) Zeig mir mal ein Video mit HD 720p. Codec via RTP und JMF :D Viel Spaß...

Da gibt es sehr wohl einen Unterschied (Video on demand != Livestream) ;)

RTSP kümmert sich nur um die Steuerung, ob die Daten aus einer Live-Quelle stammen oder einer Datei ist wurst. Das Format in dem die Daten übertragen werden ist völlig unabhängig, du kannst auch ein PDF mit RTSP streamen wenn du lustig bist. Wie du darauf kommst dass man aus einem RTSP-Stream keine Datei herstellen kann ist mir sehr rätselhaft.

Dass RTSP super mit JMF laufen soll hat tuxedo doch nirgends behauptet!? (Oder ich habs überlesen). Er hat nur gesagt womit es gut funktioniert, wozu die Aufregung?

Edith sagt: RFC 2326 - Real Time Streaming Protocol (RTSP) wenn du noch Fragen dazu hast ;)
Btw: Wenn RTSP für Live(!)-Streams entworfen wurde, wieso erlaubt es dann dem PLAY-Kommando einen Range-Parameter für die Position des Streams mitzugeben? ;)
 
Zuletzt bearbeitet:

Kr0e

Gesperrter Benutzer
Hmm, ihr habt mich überzeugt. Tut mir Leid für Anschuldigungen. Ich war echt der Meinung, dass das so ist....
Aber ok, man lernt nie aus. Ich kam darauf, weil ich das mit JMF porbiert habe und dabei bin ich auf das Problem gestoßen, dass die Videos beim streamen heruntercodiert werden. Hab da wohl zu schnell a und b zusammen addiert :D Nun gut...


Gruß Chris
 
T

tuxedo

Gast
Aber ok, man lernt nie aus. Ich kam darauf, weil ich das mit JMF porbiert habe und dabei bin ich auf das Problem gestoßen, dass die Videos beim streamen heruntercodiert werden. Hab da wohl zu schnell a und b zusammen addiert :D Nun gut...

RTSP hat nix mit dem Encoding der Videos zu tun. RTSP ist ja nur der "transportcontainer" wenn man so will.

HD Videos lassen sich damit natürlich auch übertragen. Die Auflösung spielt da keine Rolle. Ergo: Auch > 1080p ist problemlos möglich.

Zum "Datei herstellen" oder "Aufzeichnen":

Nun. Wenn man mit RTSP ein Video streamt und auf einem anderen Rechner wieder aufnimmt, kann es durchaus sein dass beides nicht "identisch" ist. RTSP steuer eben den Fluss der Daten. Und wenn ein Frame zu spät eintrifft, dann wird er eben gedroppt. Du kannst also das Video nur so gut aufnehmen wie du es NACH RTSP bekommst (also exklusive der gedroppten Frames).

Alles andere würde bedeuten dass du direkt in RTSP eingreifen musst und nicht in Echtzeit aufnehmen kann. Von den "unterwegs verloren gegangenen Frames" mal ganz zu schweigen.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
algorismi Mit JavaFX ein Video per RTSP Stream abzuspielen JVM Sprachen: Kotlin, Scala, Groovy, Jython... 8
F Offizielle Oracle JavaFx Showcase JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
J Deploy von JavaFX in Eclipse JVM Sprachen: Kotlin, Scala, Groovy, Jython... 9
Psypsy JavaFX in Java benutzen JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
E JavaFX in Java - Findet FX klasse nicht (?) JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
ARadauer JavaFx für Olympia JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
T JavaFX ist NICHT für den Desktop!!! JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Q JAVAFX Sicherheits Warnung bei externen URL s JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
algorismi Welche Protokolle ünterstützt JavaFX? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
Y JavaFx, Ich versteh was nicht ! JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
D Plattformunabhängigkeit Java/JavaFX JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
Kr0e JavaFX WTF? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Z Java 6 oder JavaFX für echtzeit Browser - Programme/Spiele JVM Sprachen: Kotlin, Scala, Groovy, Jython... 11
E Informationen zu JavaFX JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
M JavaFX für Datenbankfrontend JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
S JavaFX 1.0 Released JVM Sprachen: Kotlin, Scala, Groovy, Jython... 7
MQue JavaFX JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
R Java oder JavaFx für Lernspiel JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
T JavaFX fähigkeiten & kostenloses eBook JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
M JavaFX, Silverlight, Flash JVM Sprachen: Kotlin, Scala, Groovy, Jython... 9
G JavaFx Verständnisfrage JVM Sprachen: Kotlin, Scala, Groovy, Jython... 13

Ähnliche Java Themen

Neue Themen


Oben