# Video aus RTSP Stream speichern



## Gast2 (22. Aug 2012)

Hi Leute, 

das Genannte scheint wohl nicht so einfach zu sein. Soll wohl mit dem Java Media Framework 2 gehen (keine Beispiele) und Netty unterstützt auch RTSP (jedoch auch keine Beispielcodes). 

Ich kenne beide Frameworks nicht und habe da auch mit RTSP nahezu keine Erfahrung. Es gibt wohl noch die VLC Bindings, welche aber VLC benötigen was in meinem Fall nicht in Frage kommt. 

Hat jemand schon einmal ein Video gespeichert welches er über RTSP empfing und kann mir ein Beispiel posten? 

Gruß kappesf


----------



## tuxedo (22. Aug 2012)

Theoretisch brauchst du kein VLC, JMF und Co wenn du das Video einfach nur speichern willst. Da dürfte dann sowas wie das hier reichen: jrtsp - RTSP client api for java - Google Project Hosting (kurz gegoogelt, kein plan ob das schon so gut läuft).

Vereinfacht ausgedrückt musst du ja nur den Stream lesen, die Protokolldaten wegschneiden, und das was übrig bleibt in eine File schreiben. Die kannst du dann später mit einem passenden Mediaplayer mit passendem Codec abspielen.


----------



## Gast2 (22. Aug 2012)

Ich hab nach allen möglichen Kombinationen aus Java save record und RTSP gegoogelt aber das nicht gefunden. Werde ich mir später mal ansehen! 

Alle weiteren Ideen sind gerne willkommen!

PS: Sollte ich was lauffähiges zustande kriegen stell ich beizeiten ein kleines Tutorial Online. Zu dem Thema findet man echt wenig bis gar keine Beispiele.


----------



## Gast2 (22. Aug 2012)

Habs mir mal angeschaut. 

Projekt ist seit 4 Jahren tot und Sourcen als auch Doc sind nicht mehr herunterladbar. Da würde ich die VLC Bindings bevorzugen.


----------



## tuxedo (23. Aug 2012)

Naja, es wird mit sicherheit ja noch mehr RTSP Libs geben als nur dieses eine, oder?

Und ja: Video + Streaming ist mit Java so ne Sache...

Muss es denn unbedingt mit Java geschrieben sein? --> RTSPdump ? Freecode


----------



## Gast2 (24. Aug 2012)

Jap muss Java sein, da die Funktion in das bestehende Service Tool integriert werden soll (Zur Zeit haben wir mehrere Historische Hilfstools welche zusammengefasst werden sollen)

Habe mir die VLC Bindings nochmal angeschaut, man benötigt doch nicht wie zunächst gedacht eine INstallation des VLC Media pLayers, da man die Libraries direkt einbindet. Für die passenden Libs für Win/Linux/Mac muss man dann zwar auch noch selber sorgen aber das Problem hab ich ja schon für RXTX gelöst. 

Werde mich demnächst dann mit den VLC Bindings befassen. Sobald ich damit weiter bin (ist gestern doch hinten angestellt worden) melde ich mich wieder.


----------



## Gast2 (3. Sep 2012)

Kleines Update:

Bin mittlerweile doch wieder beim JMF gelandet... 

VLCJ ist unter GPL3 lizensiert und kann daher von mir nicht verwendet werden... leider...
FMJ scheint seit 2007 idle zu sein...

Nunja bin gerade dabei ein kleines Demo Programm zum gleichzeitigen aufnehmen wiedergeben und screenshooten von einer Standardwebcam zu erstellen (RTP Source kann dann später eingesetzt werden..) 

Ist alles irgendwie sehr mühselig, da:
- viele Resources zu JMF seit Oracle unauffindbar sind,
- Die wenigen Examples die es gibt Uralu sind (Teilweise Java2) was unendlich viele Warnings heraufbeschwört (Generics etc.) ... 

Nunja, melde mich die Tage mit dem Example und mach dafür in Codeschnipsel nen neuen Thread auf. Hoffe einige haben LUst das mit mir gemeinsam zu einem anständige verwendbaren Sample Code zu verfeinern, damit nachfolgende Programmierer es leichter haben. Zu dem Thema findet man nämlich echt nicht allzuviel (brauchbares)!


----------



## mjdv (3. Sep 2012)

Also so wie ich das verstehe, willst du das Video ja nur speichern. Das heißt doch, dass du gar keine Media API, die eigentlich zum abspielen eines Videos gedacht ist, brauchst.

Ich kenne mich mit rtsp zwar nicht aus, aber du musst doch einfach nur die Daten empfangen, interpretieren und dann den Teil des eigentlichen Videos speichern.  Laut wikipedia ist das rtsp Protokoll nur zum steuern des Media streams gedacht, und die eigentlichen Daten kommen per rtp, welches ja eigentlich einen einfachen Header hat den man auswerten und dann speichern kann. (Aber wie gesagt so genau kenne ich mich nicht aus)

Ansonsten habe ich noch viele Implementationen auf wikipedia gefunden:
Real Time Streaming Protocol - Wikipedia, the free encyclopedia

Am besten gefiel mir da: LIVE555.COM bzw. openRTSP

Das ist ein Konsolenprogramm, was genau das tut was du willst, einen rtsp Stream speichern. Da es sogar Open Source kannst du dir ja ansehen, was die genau machen. Ob es eine Java Anbindung gibt weiß ich nicht, aber wenn du C kannst, könntest du dir ja per jni selber eine schreiben.

Ich hoffe das hilft erstmal

edit: Wie wäre es damit? rtsplib-java - minimalist RTSP client in java - Google Project Hosting


----------



## Gast2 (4. Sep 2012)

Die Anforderungen haben sich etwas geändert! 

Weiter gehts hier: http://www.java-forum.org/allgemeine-java-themen/141024-aufzeichnung-wiedergabe-webcam.html#post936143


----------

