Pregunta

Necesito reproducción de vídeo simple en Java.

Aquí están mis requisitos:

  • CALIDAD DE LA PRODUCCIÓN

  • Los archivos de vídeo de código abierto y decodificar cuyos códecs de vídeo y audio puede ser elegido por mí. I.E puedo recoger así comportarse códecs.

  • Ser capaz de jugar , pausa , seekToFrame o seekToTime y detener reproducción. Esencialmente Deseo ser capaz de reproducir los segmentos de un único archivo de vídeo de una forma no lineal. Por ejemplo es posible que quiera jugar el segmento 20.3sec a 25.6sec, una pausa de 10 segundos y luego jugar el 340.3sec segmento a 350.5sec, etc.

  • Durante la reproducción, el vídeo y el audio deben estar en sintonía.

  • El vídeo debe visualizarse en un JComponent Swing.

  • Debe ser capaz de utilizar en un producto comercial sin tener que ser de código abierto (I.E. LGPL o Comercial es bueno)


Mi investigación me ha llevado a las siguientes soluciones:

He implementado un prototipo rápida y esto parece hacer lo que necesito. Puedo reproducir un segmento de vídeo mediante:

player.setStopTime(new Time(end));
player.setMediaTime(new Time(start));
player.start();

Mientras Fobs4JMF parece funcionar, siento la calidad del código es pobre y el proyecto ya no está activo. ¿Alguien sabe de cualquiera de los productos que utilizan Fobs4JMF?


  • Escribir una aplicación Flash que desempeña un video uso JFlashPlayer para ponerla en mi aplicación Java Swing

A diferencia de Java, Flash es brillante en la reproducción de vídeo. Podría escribir una pequeña aplicación Flash con los métodos:

open(String videoFile),
play(),
pause(),
seek(int duration),
stop()

A continuación, ponerla en Java utilizando JFlashPlayer que se puede llamar a las funciones de Flash desde Java.

Lo que me gusta de esta solución es que la reproducción del vídeo en Flash debe ser sólida como una roca. ¿Alguien ha utilizado JFlashPlayer para reproducir vídeo en Java?


  • Escribir un sencillo reproductor multimedia en la parte superior de Xuggler

Xuggler es una envoltura FFMpeg para Java que parece ser un proyecto bastante activo y de alta calidad. Sin embargo, la aplicación de la reproducción de vídeo sencilla se describe en los requisitos no es trivial (Buscando en particular), pero algunos de los trabajos se ha hecho en el MediaTools Mediaviewer que sería la base sobre la cual construir a partir de.


  • Usar FMJ

He tratado de conseguir FMJ para trabajar, pero no han tenido éxito hasta el momento.


Le agradecería sus comentarios sobre mi problema.

¿Fue útil?

Solución

Puede un hermano obtener un grito para Xuggler ?

Otros consejos

En mi mente, VLCJ es el camino a seguir para este tipo de cosas. Me encanta Xuggler para el trabajo de codificación / transcodificación, pero por desgracia, es tan complicado de hacer la reproducción simple y resolver todos los problemas de sincronización y cosas por el estilo - y lo hace mucho siento que reinventar la rueda hacerlo

.

La única cosa con VLCJ es que para conseguir que funcione de forma fiable con múltiples jugadores que he tenido que recurrir a cabo de actores del proceso. El marco no era la cosa más sencilla del mundo para conseguir en su lugar, pero cuando se está allí funciona muy bien. Actualmente estoy corriendo 3 de actores del proceso en el costado aplicación al lado del otro sin ningún problema.

La otra advertencia es que el reproductor multimedia incrustado no funcionará con un componente de oscilación, sólo un peso pesado de la lona - pero eso no ha demostrado ser un problema para mí en absoluto. Si lo hace, entonces usted puede utilizar el reproductor de medios directos para obtener una BufferedImage y mostrar que en lo que usted elija, pero va a comer en su CPU un poco más (aunque no más que otros jugadores que adoptan este enfoque.)

JavaFX tiene un número de trabajo códecs de vídeo y audio incorporado. Es probable que sea la solución con el más amplio apoyo en este momento.

He estado usando jffmpeg de la misma forma en que usa FOBS, funciona bastante bien, aunque no los he comparado.

Me gustaría ver también una manera fácil de interactuar con los códecs nativos de la manera que lo hace JavaFX, pero no parece ser real integración entre JavaFX y Java.

También ha habido algún trabajo tratando de obtener el libvlc biblioteca de VLC en java. No he probado todavía y estaría interesado en escuchar de cualquier persona que tenga.

No se han tratado Xuggler (que yo estoy interesado en) pero estoy teniendo un buen momento con VLCJ. El inconveniente que encuentro en él es sólo que usted tiene que tener instalado VLC antes de su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top