« JavaFXで複数行のテキスト表示を行う | トップページ | SwingのGUI Testingツールを調査した »

2009/01/22

JMC(Java Media Components) - Javaで動画再生

http://forums.sun.com/thread.jspa?threadID=5360607&tstart=0より。

昨年のJavaOnehttp://dsc.sun.com/learning/javaoneonline/2008/pdf/TS-6509.pdfで発表されているように、Javaからでも、現在JavaFXで行えているような動画再生ができるAPIが提供されるそうだ。

C:\Program Files\NetBeans 6.5\javafx2\javafx-sdk1.0\lib\desktop にあるjmc.jarを用いれば、Javaのみで(JavaFX無しで)実装できる、ようにWebを検索した限りでは感じた。

…と考えていたら、http://forums.sun.com/thread.jspa?messageID=10429790#10429790で書かれているコードで普通に動作した。前述jmc.jarをclasspathに含め、pathにこのディレクトリを含める(-Djava.library.path="C:\Program Files\NetBeans 6.5\javafx2\javafx-sdk1.0\lib\desktop")

« JavaFXで複数行のテキスト表示を行う | トップページ | SwingのGUI Testingツールを調査した »

コメント

JMFはFLVを再生できますか?
JMCPlayer.javaのデータソースを
Spiderman3.mkv から
xxxxx.flv に変更したのですが
どうも音しかならないようです。
(movieが表示されない;_;)
何か分かれば教えていただけるとうれしいです!

最終的にはappletでflvの再生が目的です。
何とかヒントなどあればご教授願えませんでしょうか?
何とか!どうぞ!宜しくお願いします!!!

こんばんは。

JavaFXと同様、flv,mp3はクロスプラットフォームでサポートしている
http://www.javafx.com/faq/#2.1
のではないかな、と思ってます。

> File file = new File("C:/Spiderman3.mkv");
> JMediaPlayer jmp = new JMediaPlayer(file.toURI());
の部分を
> URL url = new URL("http://yukihane.dip.jp/dist/sources/takao.flv");
> JMediaPlayer jmp = new JMediaPlayer(url.toURI());
としてみるとどうでしょうか。私の環境では、このファイルを問題なく再生できています(キャプチャ: http://yukihane.dip.jp/dist/sources/jmc.png )。

あ、あと、JMFとJMCは別物です…


> URL url = new URL("http://yukihane.dip.jp/dist/sources/takao.flv");
> JMediaPlayer jmp = new JMediaPlayer(url.toURI());

いけました!!!
どうも私の準備したflvファイルが壊れていた?だけのようでした。。(すみません)
linux上のffmpegで3gp⇒flv変換したのですが、そこで何らかの問題があったのかも知れません。
(パラメータの問題かな。。。)


キャプチャ確認しました。
http://yukihane.dip.jp/dist/sources/jmc.png
綺麗ですね。
私は下記のようになりました。。(なんかしょぼい、何だこのコントローラー。。)
http://www.wkshop.net/WKSP_AUC/html/jmc.png


これでappletでflvの夢が近づいてきましたぁ~!!
ありがとうございます!!!


最後に、もし、もしご存知でしたらご教授下さい。

flvの再生には以下の物が必要となると認識しました。
jmc.jar とJNIで使用される下記ライブラリ群
Decora-D3D.dll,Decora-SSE.dll,gluegen-rt.dll,jmc.dll,jogl_awt.dll,jogl.dll,msvcp71.dll,msvcr71.dll

私のPCには上記のdll群が System.getProperty("java.library.path"); で取得できるパス内に存在するのでappletでflv再生できましたが、
目標としては上記dllを持たないクライアントへもflv動画を再生したいです。

何か良い方法はございませんでしょうか?

半ば強引ですが、上記dllをサーバに置いておき、appletのプログラム内でサーバのdllをダウンロードし、クライアントのjava.library.pathに格納するという手を考えたのですが。
ちょっとそういう動きは危険なプログラムかなぁ~と思いました。

appletタグにdllを書ける仕組みが用意されていると良いのですが、そんな都合のよいものは見当たりませんでした・・・

本題とちょっとずれていますかね。
どうぞ気を悪くしないで下さい。

こんばんは。

コントローラについては、ウィンドウをもう少し広げると正しい配置になると思います。

appletで…、の件については、解答は知らないのですが、以下の情報が参考になれば。(全く経験が無い分野なので、的を外しているかもしれませんが)

JOGL(OpenGLですね)を利用する場合も、今回と同じようにネイティブのライブラリが必要になります。

https://jogl-demos.dev.java.net/applettest.html
http://mail2.nara-edu.ac.jp/~asait/open_gl/Jogl/jogl.htm
を見たところ、本来ネイティブコードが必要なApplet実行のためには、証明書付きの署名が必要なところ、JNLPAppletLauncherというものを用いれば、署名無しで実行できるように読めます。(※)


https://applet-launcher.dev.java.net/
の、
> Modifying Your Extension To Work With The JNLPAppletLauncher
>
> If you are the author of an extension like JOGL which requires some native code,
あたりが参考になるのではないかと思います。
また、JNLPベース、ということがかかれていますので、Java Web Startのドキュメントも参考になるかもしれません。
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/faq.html#210

(※)
JOGLの場合はSunが署名しているものが使える、ということでこのJNLPAppletLauncherを使うメリットが出るみたいですが、今回のような場合にはどう作用するのか、ということはわかりませんでした…

JNLPですか。

JavaWebStartで使うやつですね。
appletタグにもJNLPのnativelibのようなパラメータがあれば楽だったのに。

とりあえず、ちょっと強引ですが、java.library.pathにdllを格納する方式でやってみます。

時間ができたらJNLPに挑戦します。

ご親切にいろいろありがとうございました!!!

今更ですがショック!
javaFXではflvのvideoコーデックがflv1の形式では動画表示できないのですね(泣)
flv4かぁ。
この形式ですと、サーバで自動変換する仕組みが作れないんですよね・・・(フリーのツールで)
あー困りました。
せっかくappletでflvの再生に成功したのに(泣)

ビデオのフォーマットについてよく知らないのですが、FLVにも色々種類があるのですね…
javafx.comを見ると、確かにコーデックはVP6、と書いてありますね。

気になって少し調べてみましたが、LinuxでVP6をエンコードする方法としては、MEncoder上で、Windowsのdllであるvp6vfw.dllを利用するのが一般的みたいですね。
(linuxのバイナリからwindowsのバイナリをダイナミックリンクしたりできるものなのでしょうか…?)

vp6vfw.dllがフリーではない、ということですね…

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18902/43815766

この記事へのトラックバック一覧です: JMC(Java Media Components) - Javaで動画再生:

« JavaFXで複数行のテキスト表示を行う | トップページ | SwingのGUI Testingツールを調査した »

other sites

  • follow us in feedly
  • github
  • stackoverflow

ソフトウェアエンジニアとして影響を受けた書籍

  • Christain Bauer: HIBERNATE イン アクション

    Christain Bauer: HIBERNATE イン アクション
    理論と実践が双方とも素晴らしい製品であるHibernate。本書はそのプロダクトを書名に冠していますが、Hibernateを使うつもりがなく、ORマッピングの解説書として読むにしても十分な良書です。Second EditionとしてJava Persistence With Hibernateという書籍も出版されていますが、残念ながら現在のところ 和訳はされていません。-インアクションは2.xの、Java Persistence-は3.1の頃のものなので、最新版とはちょっと違うところもあることに注意。 (★★★★★)

  • アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版

    アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版
    クライアント/サーバシステムを構築する上で必要となる知識が総論されてます。Web技術者も、フレームワーク部分を開発するのであれば必読。 (★★★★★)

  • Joel Spolsky∥著: ジョエル・オン・ソフトウェア

    Joel Spolsky∥著: ジョエル・オン・ソフトウェア
    前述の書籍「ソフトウエア開発プロフェッショナル」をより砕いたもの、という感じでしょうか。 前書きではプログラマでなくSE向けの本のように書かれているが、プログラマが読んでも面白い本であると思われます。 SEになった新人(あるいはそういう会社に入る/入りたての人)にとっては、これからどういったことが仕事を遂行していく上で起こりえるのか、どのように考えて行なっていけばいいのか決定する助けになると思います。 元は″Joel on Software″というブログの記事で、web上でも一部日本語で読めます。 http://japanese.joelonsoftware.com/ (★★★)

  • ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか

    ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか
    問題解決(一昔前のの流行語で言うところの『ソリューション』)能力は、システムエンジニアのスキルとして備えるべきもののうちのひとつです。しかし、これは難しい。学校で出されるテストと違い、唯一の、(問題提出者が想定している)解を求めるだけが「問題解決」では無いからです。そもそも、何が問題なのか、それは本当に問題なのか、それは本当に解決すべき問題なのか、その問題解決方法は正しいのか、などを解決しなければ、「その解は正しいのか」に辿りつくことができません。この本の最も良いところのひとつは、本があまり厚くないこと。すぐに読めるし、何回も読み返す気になるでしょう。 (★★★★★)

  • スティーブ・マコネル: ソフトウエア開発プロフェッショナル

    スティーブ・マコネル: ソフトウエア開発プロフェッショナル
    コードコンプリートで有名なスティーブマコネルの著書。新人SEに読んで欲しい。個人として業界の中でどうあるべきか、組織としてどうあるべきか、SEのプロ意識とは?SEの心構え概論、といったところでしょうか。また、業界における資格の重要性についても説かれています。この業界では資格が特に軽んじられる傾向がありますが、この傾向はどんな弊害をもたらすのか、将来的にこの業界は資格に対してどのような姿勢で臨んでいくべきなのか。日経BP社では(他の出版社もだが)最近、似たような類いのあまり面白くない書籍が乱出版されていますが、この本は別格だと思うので安心して購入して欲しいと思います。 (★★★★★)

無料ブログはココログ