mod_theora

Started by josebita, April 05, 2013, 11:55:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Hola:

Estoy acabando una librería para la reproducción de vídeos en formato OGG/Theora. Ya funciona en Mac pero aún da alguna clase de problema en Linux.
La librería está basada en TheoraPlay de Ryan Gordon (Icculus) que está licenciada como Zlib y ésta a su vez está basada en libogg+libtheora+libvorbis. Éstas están bajo licencia tipo BSD. Básicamente eso obliga a poner en el README que se está usando ese software y que está bajo esa licencia, nada más. Más info aquí:
https://icculus.org/projects/theoraplay/

La librería es capaz de reproducir vídeos en modo de 16bpp y 32bpp. No he añadido soporte para 8bpp porque me parece un poco tonto, pero no me debería llevar más de 10 minutos añadirlo.

La reproducción se hace completamente por software y por tanto es más lenta de lo que debería pero la librería (cuando arregle los problemas con Linux) debería ser extremadamente portable.
Os dejo un enlace al código:
https://www.dropbox.com/s/rs7hx4w9twz9oa6/bennugd-module-theora_preview.tar.bz2

Y un pequeño vídeo de cómo funciona en mi ordenador:
https://vimeo.com/63441778

Evidentemente, la librería soporta audio. El que no soporta la grabación del audio del escritorio es QuickTime. Al que se me queje de cutre le quito un mini-punto.

Pros:
* Permite reproducir vídeos en un formato relativamente popular de forma extremadamente sencilla ( graph = video_play(filename) )
* Los vídeos se pueden manipular de la misma forma que cualquier gráfico cargado de un PNG o MAP

Contras:
* De momento es extremadamente simple: sólo incluye video_play() y video_stop(). Y sólo admite la reproducción de un único vídeo cada vez. Ni siquiera tiene pausa, pero añadirla es cuestión de jugar con los temporizadores. Tampoco soporta seeking pero, de nuevo, debería ser cosa de jugar con los temporizadores.
* Bloquea el audio. Por limitación de SDL_mixer (he tratado de buscar alternativas, pero no he encontrado ninguna viable) no es posible reproducir ningún otro sonido/música a través de SDL_mixer cuando se está reproduciendo un vídeo.
  Es una pequeña putada, pero no creo que haya mucho que pueda hacer con la librería de sonido actual.

En fin, que la presento en sociedad a pesar de que todavía tengo que darle un par de vueltas más. ¿Ideas, comentarios o sugerencias?.

PD: El vídeo que he grabado va a trompicones. Es cosa de tener el QuickTime grabando, en general la reproducción es fluída en el ordenador.

master

#1
me dice que el video no existe o fue borrado
se ve bastante bien :D

FreeYourMind

si no tiene dependencias se podrian hacer ports a otras plataformas. gracias crack

Yawin

O.O ¿Te han dicho alguna vez que eres grande? ¡Pues eres enorme! Yo hasta ahora usaba mod_vlc, pero la tuya es sublime. Ligera, manipulable,... karma++!
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

josebita

Quote from: master on April 06, 2013, 03:00:49 AM
me dice que el video no existe o fue borrado
Imagino que intentaste entrar mientras el vídeo aún se estaba codificando. Ahora debería ir.
Quote from: FreeYourMind on April 06, 2013, 05:26:43 AM
si no tiene dependencias se podrian hacer ports a otras plataformas. gracias crack
Quote from: Yawin on April 06, 2013, 11:24:47 AM
O.O ¿Te han dicho alguna vez que eres grande? ¡Pues eres enorme! Yo hasta ahora usaba mod_vlc, pero la tuya es sublime. Ligera, manipulable,... karma++!
Claro, la mod_vlc es MUY superior técnicamente (porque libVLC lo es, quiero decir) pero ésta librería tiene un par de ventajas que, creo, la hacen muy interesante:
* Ésta es muchísimo más portable y simple. No son más que dos ficheros .c y un par de cabeceras, más las dependencias.
* La licencia de ésta librería es mucho más permisiva.

Outlaw

¡Mil gracias por este gran aporte Josebita!  :D
"Life is cheap when the bounty is high"

osk

Muchísimas, muchísimas, muchísimas gracias!!!