PDA

Ver la Versión Completa : Video en Lazarus ?


rolandoj
07-10-2012, 17:29:40
Hola a todos,

Vi que justo antes hicieron una pregunta de reproducción multimedia; pero, la pregunta que quiero hacer tiene una variante que me parece amerita usar un hilo separado.

Lo que quiero es un componente que en lugar de tan solo cargar el video desde un archivo en disco, pueda hacerlo desde una variable en memoria que se le pase al componente a medida que este pida datos.

Bien entendido, la idea es que el video se le vaya suministrando por partes al reproductor, según este solicite datos. Además, se requiere poder manejar algún tipo de retardo para el caso en que los datos se tarden en estar disponibles.

En otras palabras, el componente debería tener un evento similar al evento OnNeedData de Quick Report.

Lo ideal es que trabaje para cualquier versión de Delphi y también en Lazarus; así como con los formatos más comunes tipo AVI, MPEG y FLV

Agradezco de antemano cualquier sugerencia

rolandoj
13-10-2012, 16:25:23
Hola,

Bueno, esto del video parece ser una piedra en el zapato de Delphi. En otras ocasiones he intentado averiguar al respecto; pero, sigo sin obtener respuestas, así que supongo que el tema no tiene casi gente que lo conozca, o incluso quizás no hay una buena solución disponible para el mismo.

Como alternativa, alguién conoce algún componente escrito en otro lenguaje que sea capaz de hacer lo que estoy pidiendo ?.

Bueno, siempre y cuando no sea .NET; no quiero amarrar el sistema a que se deban instalar capas de .NET.

La idea es en últimas escribir la rutina en otro lenguaje e invocarla desde nuestro sistema. Una solución muy embarazosa; pero, quizás la única disponible

Saludos

rolandoj
14-10-2012, 18:11:30
Hola a todos,

Desde hace mucho tiempo he intentado averiguar como desarrollar código para reproducir videos en Delphi donde se tenga control total del mismo y sobre todo desde memoria. El tema lo he planteado recientemente en este hilo:

http://www.clubdelphi.com/foros/showthread.php?t=81075

Hasta el momento no he tenido respuesta satusfactoria; pero, buscando en internet finalmente encontré una documentación y un componente que combinados con TMediaPlayer parece que solucionarán parcialmente el problema. Al menos las primeras pruebas, aunque con dificultades, están arrojando algunos resultados positivos.

Sin embargo, en el mejor de los casos, esa solución tiene un grave inconveniente : Está amarrada a Windows.

Así que la pregunta para este subforo es : Hay algún componente en Lazarus que permita control total sobre los videos, en las condiciones que menciono en mi hilo original, y que no esté limitado a Windows ?

mightydragonlor
14-10-2012, 23:06:39
Hola, en lazarus ya puedes poner componentes ActiveX, es decir, podrías usar a VLC como reproductor de vídeo o audio, otra opción es usar los componentes Castle, OpenGL o GLScene, ya que estos proveen manejo de audio, vídeo y mas, también hay otro pack de componentes llamado DSPack, que provee todo lo necesario para lo que buscas, estos componentes ya vienen incluidos en la CodeTyphoon.

Saludos.

rolandoj
15-10-2012, 04:27:53
Hola mightydragonlor,

Gracias por el dato. Mañana es festivo así que solo podré probar el Martes; pero, una pregunta :

De esos componentes cual es el más recomendable para lo que yo quiero ? . O sea, poder interceptar, mediante un evento, o técnica similar, cada pedida de datos del reproductor de tal forma que en lugar de recibir directamente cada bloque de datos que deba reproducir, esos bloques de datos se los suministre yo después de preprocesarlos. Claramente, es trabajar de forma análoga al evento OnNeedData de QuickReport.

Me refiero no solo a si todos soportan eso, sino también a si todos son portables a todas las plataformas, o si algunos están limitados solo a unas cuantas.

Saludos

mightydragonlor
15-10-2012, 21:53:53
Hola, la verdad sólo he visto de paso estos componentes, y dependerá de ti, investigar cual o cuales cumplen con todas tu necesidades; espero que te sirvan de algo.

Saludos.

rolandoj
16-10-2012, 02:13:15
Hola, la verdad sólo he visto de paso estos componentes, y dependerá de ti, investigar cual o cuales cumplen con todas tu necesidades; espero que te sirvan de algo.

Saludos.
Hola,

Ok. De todas formas muchas gracias por la colaboración.

En últimas tocará hacer eso; pero, agradecería mucho si alguien más puede dar una orientación porque no dispongo casi de tiempo libre y preferiría trabajar enseguida con un componente que supiera que si va a servir.

Saludos

rolandoj
18-10-2012, 05:28:01
Hola a todos,

Tan solo quiero reportarme para mantener activo el hilo.

He avanzado en la revisión de las opciones propuestas por mightydragonlor. Hasta ahora no aparece ninguna referencia a que, en los componentes revisados se pueda siquiera reproducir video. No he terminado de revisarlas; así que aún hay esperanzas.

Ahora, la situación es pesimista porque aquí :

http://wiki.freepascal.org/Multimedia_Programming

No indican la existencia de algún componente para reproducir video en Windows. El método que proponen es ejecutar un programa externo que corra el video. Para Linux indican un solo componente, TMPlayerControl, el cual carece de la funcionalidad que busco.

Lo único adicional que anotan en la sección video es que con SysRec se puede capturar y reproducir video streams proveniente de tarjetas de TV and webcams. Sin embargo, la información es muy vaga. Sysrec fué diseñado WebCam y al aparecer la añadieron otras funcionalidades; pero, por lo que pude leer, todo parece orientado a la captura de video. La impresión que da es que la reproducción de video, si es que funciona, sería para los videos que se estuvieran capturando. Aparte de eso, constantemente advierten sobre posibles errores de la misma y la última actualización de la página fué en 2008.

Contrasta esta situación de videos con la parte de audio que tiene múltiples opciones, la redacción es más clara y en general parece ser un tema bien cubierto.

Bueno, espero que alguien pueda aportar algo más. Yo seguire probando un poco más y les contaré si descubro algo util.

jt.logosoft
18-10-2012, 20:35:33
Con los componentes DSPack he podido reproducir video en Lazarus, lo mismo con ActiveX, importando la librería de VLC. Hace tiempo ya, así que no lo tengo muy fresco, pero sí funcionan. DSPack puede funcionar como salida de una cámara Web, así que funciona con un stream.

rolandoj
18-10-2012, 20:50:13
Con los componentes DSPack he podido reproducir video en Lazarus, lo mismo con ActiveX, importando la librería de VLC. Hace tiempo ya, así que no lo tengo muy fresco, pero sí funcionan. DSPack puede funcionar como salida de una cámara Web, así que funciona con un stream.
Hola,

Muchísimas gracias por el dato. Los DSPack aún no los he revisado así que voy a mirarlos; pero, ya será mañana.

Los tendré al tanto.

Muchos saludos