Javaで簡単なビデオ再生が必要です。
これが私の要件です:
生産品質
ビデオとオーディオのコーデックを選択できるビデオファイルを開いてデコードします。IE動作の良いコーデックを選択できます。
再生、一時停止、seekToFrameまたはseekToTimeを実行し、再生を停止することができます。基本的に、単一のビデオファイルのセグメントを非線形で再生できるようにしたいと考えています。たとえば、セグメント20.3秒から25.6秒を再生し、10秒間一時停止してから、セグメント340.3秒から350.5秒を再生したい場合があります。
再生中は、ビデオとオーディオが同期している必要があります。
ビデオはSwingJComponentで表示する必要があります。
オープンソースでなくても商用製品で使用できる必要があります(IE LGPLまたはComercialが適しています)
私の研究により、次の解決策が導き出されました。
- Java Media Framework+Fobs4JMFを使用する http://fobs.sourceforge.net/f4jmf_first.html
私は簡単なプロトタイプを実装しましたが、これは私が必要としていることを実行しているようです。次を使用してビデオのセグメントを再生できます。
player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();
Fobs4JMFは機能しているように見えますが、コードの品質が低く、プロジェクトがアクティブでなくなっているように感じます。Fobs4JMFを使用している製品を知っている人はいますか?
- ビデオを再生するFlashアプリケーションを作成し、JFlashPlayerを使用してJavaSwingアプリケーションに取り込みます
Javaとは異なり、Flashはビデオの再生に優れています。次の方法で小さなFlashアプリケーションを作成できます。
open(String videoFile),
play(),
pause(),
seek(int duration),
stop()
次に、JavaからFlash関数を呼び出すことができるJFlashPlayerを使用してJavaに取り込みます。
このソリューションで私が気に入っているのは、Flashでのビデオ再生がしっかりしていることです。JFlashPlayerを使用してJavaでビデオを再生した人はいますか?
- Xugglerの上にシンプルなメディアプレーヤーを書く
XugglerはJava用のFFMpegラッパーであり、非常にアクティブで高品質のプロジェクトのようです。ただし、要件で説明されている単純なビデオ再生の実装は簡単ではありませんが(特にシーク)、一部の作業は、構築のベースとなるMediaToolsMediaViewerで実行されています。
- FMJを使用する
FMJを動作させようとしましたが、今のところ成功していません。
私の問題についてご意見をいただければ幸いです。