# JMF - Video Abspielen



## henrik91 (14. Apr 2009)

Hi,
ich hab mir das JMF gedownloadet. Ich kann jetzt auch schon mp3s damit abspielen ^^

Jetzt muss ich aber auch Videos abspielen. Ich finde im Netz nur keine Tutorials dazu. Hat jemand ne Anleitung oder nen Code wie ich ein Video (avi, mpeg, oder ähnliches) in einem JFrame anzeigen kann?

Jede Hilfe erwünscht 
Vielen Dank
henrik


----------



## Marco13 (14. Apr 2009)

Hab mich auch noch nicht sooo intensiv damit auseinandergesetzt, aber meine, mich zu erinnern, dass das relativ einfach sein KANN ... wenn man keine besonderen Ansprüche stellt (und dann wird's sofort sch*** kompliziert  ) - sowas wie Java Media Framework 2.1 - Sample Code könnte ein Ausgangspunkt sein, so SimplePlayerApplet und so - in diesem JMStudio ist halt "ALLES" drin, aber teilweise recht versteckt und nicht so leicht nachzuvollziehen...


----------



## henrik91 (15. Apr 2009)

danke, hat nicht sonst noch jemand quellen für mich?
so ganz will es nämlich nicht klappen...


----------



## Developer_X (16. Apr 2009)

ich wollte dies auch mal, aber ich möchte dir eines sagen, dieses "SimplePlayerApplet.java"
bei den Examples bringt auch nichts, man weiß ´nicht welche VideoFormate JMF benutzten kann und außerdem,
glaube ich nicht, dass es möglich ist, ohne weiteres ganz einfach ein Video abzuspielen.


----------



## diggaa1984 (16. Apr 2009)

Developer_X hat gesagt.:


> man weiß ´nicht welche VideoFormate JMF benutzten kann



google: JMF - supported formats

daran solls nich scheitern denk ich ^^


----------



## cover1012 (16. Apr 2009)

henrik91 hat gesagt.:


> Hi,
> ich hab mir das JMF gedownloadet. Ich kann jetzt auch schon mp3s damit abspielen ^^
> 
> Jetzt muss ich aber auch Videos abspielen. Ich finde im Netz nur keine Tutorials dazu. Hat jemand ne Anleitung oder nen Code wie ich ein Video (avi, mpeg, oder ähnliches) in einem JFrame anzeigen kann?
> henrik



Da gibts doch ein Haufen Tutorials. Die API sollte aber reichen, hier zu finden:
JMF 2.0 API (03/10/01)

Um DivX oder Xvid codierte Vids abzuspielen guckst du hier:
Jffmpeg - Java Audio and Video Codecs for JMF
oder besuchst mal Tante Google und fragst nach: IBM-MPEG4.

EDIT: Noch einfacher geht nicht:
Java Tutorial: Playing Video and Other Media with the Java Media Framework


----------



## henrik91 (17. Apr 2009)

Hi,
danke, der letzte link hat mir schon sehr geholfen. Es klappt auch alles soweit, allerdings wird die abzuspielende Datei ja mit hilfe eines FileChoosers geladen. Ich möchte die mediaURL aber von anfang an in den Quellcode schreiben. Kann mir jemand sagen wie das dann lauten muss?
Hier ist die Orinialversion mit dem FileChooser
Java Tutorial: Playing Video and Other Media with the Java Media Framework (Page 2)

Ich denke mir fehlt nur eine Zeile die mit "mediaURL=" anfängt oder??


----------



## cover1012 (17. Apr 2009)

ohne es getestet zu haben:

```
File f = new File("deinVerzeichnis\\deinFile.mpg");
player = Manager.createRealizedPlayer(f.toURL());
```


----------



## henrik91 (18. Apr 2009)

also es muss ja schon irgendwas mit mediaURL sein, weil die Klasse MediaPanel das als Referenzvariabele (?) benutzt...


----------



## newcron (18. Apr 2009)

Ich habe mich vor kurzem sehr intensiv damit auseinander gesetzt, aktuelle Videoformate mit Java abzuspielen. Leider waren die Resultate eher bescheiden. Wenn du gängige Videoformate mit JMF abspielen möchtest, benötigst du Codecs, da JMF leider sehr veraltet ist, was diese Formate betrifft. Mit FOBS lässt sich das jedoch ändern, wenn du FOBS installierst, spielt JMF dir fast alles ab. (Du musst dir die Installationshinweise ansehen, da es nicht reicht, fobs einfach nur in den Classpath zu packen!)

Ich persönlich habe aber schlechte Erfahrungen mit JMF gemacht: 


 Das Laden von Videos ist langsam und dauert mehrere Sekunden auf meinem AMD XP3200 mit 1GB Ram.
 Die API von JMF ist einfach nur Grauenvoll. Versuche mal ein Video in Endlosschleife abzuspielen... 
 Die Dokumentation (Javadoc) ist nicht dazu angetan, dabei zu helfen, schnell eine bestimmte Aufgabe zu erledigen. Sie ist sehr abstrakt und wage gehalten. 
 JMF ist alt, dementsprechend findest du wenige sonstige Resourcen dazu - tutorials u.ä. 

Auf der Englischsprachigen Wikipedia sind beim Thema Java Media Framework einige Alternativen zu finden, die wirklich einen Blick wert sind. Ich habe den DirectShow <> Java Wrapper verwendet und war recht zufrieden: Er ist deutlich schneller als das JMF (das Abspielen der Videos funktioniert Hardwarebeschleunigt, was die CPU stark entlastet) und hat eine angenehmere API. 
Bedenke aber, dass DSJ nur unter Windows funktioniert, und mindestens einen Windows Media Player 9 voraussetzt. Außerdem müssen die Codecs der Videos, die du abspielen möchtest auf dem Ziel-PC installiert sein.


----------



## cover1012 (18. Apr 2009)

henrik91 hat gesagt.:


> also es muss ja schon irgendwas mit mediaURL sein, weil die Klasse MediaPanel das als Referenzvariabele (?) benutzt...



mediaURL ist doch ein URL-Objekt. 
f.toURL() erfüllt den gleichen Zweck.



			
				newcron hat gesagt.:
			
		

> Ich habe mich vor kurzem sehr intensiv damit auseinander gesetzt, aktuelle Videoformate mit Java abzuspielen. Leider waren die Resultate eher bescheiden. Wenn du gängige Videoformate mit JMF abspielen möchtest, benötigst du Codecs, da JMF leider sehr veraltet ist, was diese Formate betrifft.



Da kann ich dir nur zustimmen. Nach meiner Erfahrung ist das JMF nur für in MPEG-1 und 2 codierte Vids zu gebrauchen. Das Ergebnis mit zusätzlich implementierten Codecs bei z.B. MPEG-4 ist bescheiden.


----------



## henrik91 (18. Apr 2009)

Tausend Dank, es hat funktioniert!

Jetzt hoffe ich, dass das JMF für meine Zwecke auch reicht, aber ich denke schon...


----------



## newcron (21. Apr 2009)

Ich wünsche dir viel erfolg damit. Du solltest dir dennoch die Alternativen zu JMF ansehen. Ich persönlich würde es nicht verwenden. Es ist langsam, umständlich dokumentiert und meiner Meinung nach zu kompliziert.


----------

