Anuncios Google

Video demo - LuaDEV

Lamento comunicar que el soporte de videos mp4 no será implementado en LuaDEV, al menos en su versión inicial, por diversos conflictos internos con el módulo sound. Prefiero prescindir del video que del audio.

Para los que se hicieron a la idea de poner video en su homebrew, creando intros y cosas asi, que no se olviden de hacerlo, pues se podrá. Gracias al óptimo manejo de la parte gráfica, tanto carga como liberación de archivos, se puede conseguir un alto framerate sin perder calidad. Así como la manipulación en vivo de la imagen del video. (Rotación, reescalado... tinte... dibujar encima...)

Les dejo un test de un video reproducido en lua, si bien no es video video, el usuario final no notará la diferencia.
Probarlo por vosotros mismos:

Descargar Video DEMO

P.d. El audio lo codifiqué con prisas, y está a 8bits, así k suena un tanto "pobre". Pero se puede poner más calidad.


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de DeViaNTe

Si se os descompensa:

Si se os descompensa, que ya he visto que sucede en diversos modelos, aquí un código que adapta el framerate según el requerimiento:

Editar el script.lua y poner esto:

function inum(x) return string.sub(x,1,string.len(x)-7); end
function doclean() collectgarbage("collect"); end
 
function PLAYVIDFFPS(fld,vid,aud,size,pausa,fskp)
  local TMPSND = sound.load(fld.."/"..aud..".bgm");
  TMPSND:play();
  local skip = fskp
  local tsize = size / 2
  local thetime = timer.new(0);
  thetime:start();
  local tick = thetime:time();
  for i = 0, tsize do
    local x = i * 2
	skip = skip - 1;
	if skip > 0 then
	local tmp = image.load(fld..'/'..vid..inum(x)..'.jpg');
	tmp:resize(480,272); tmp:blit(0,0); tmp:free(); 
	screen.print(10,10,thetime:time());
	screen.print(10,30,thetime:time() - tick .. " fpt");
	tick = thetime:time();
	screen.waitvblankstart(pausa); screen.flip();
	else skip = fskp end
  end
  thetime:stop();
  TMPSND:stop();
  TMPSND:free();
  doclean();
end
 
function PLAYVIDAFPS(fld,vid,aud,size,fr)
  local TMPSND = sound.load(fld.."/"..aud..".bgm");
  TMPSND:play();
  local tsize = size / 2
  local thetime = timer.new(0);
  local pause = 0;
  local fskp = 15;
  local skip = fskp;
  thetime:start();
  local tick = thetime:time();
  for i = 0, tsize do
    local x = i * 2
	skip = skip - 1;
	if skip > 0 then
		local tmp = image.load(fld..'/'..vid..inum(x)..'.jpg');
		local nafs = false;
		tmp:resize(480,272); tmp:blit(0,0); tmp:free(); 
		local afr = thetime:time() - tick;
		if math.abs(afr - fr) > 3 and pause >= 0 then 
			if afr > fr then pause = pause - 1; else pause = pause + 1; end
			if pause < 0 then pause = 0; nafs = true; end
		else nafs = true; end
		if nafs == true then
			if afr > fr then fskp = fskp - 1; else fskp = fskp + 1; end
			if fskp < 5 then fskp = 15; pause = pause + 1 end
		end
		screen.print(10,30,afr .. " de "..fr);
		screen.print(10,10,"Pausa "..pause .. " - Frameskip " .. fskp);
		tick = thetime:time();
		screen.waitvblankstart(pause); screen.flip();
	else skip = fskp end
	end
  thetime:stop();
  TMPSND:stop();
  TMPSND:free();
  doclean();
end
 
 
PLAYVIDAFPS("CALICOJPG","CAL","CALICO",644,139);
 
 
 
 
 
while true do 
 pad = controls.read();
 screen.print(10,10,"Hasta aqui por ahora . xD . Pulsa X para salir.");
 screen.waitvblankstart();
 screen.flip();
 if controls.press("cross") then system.quit(); end
end


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de Monty - Calabato64

Y de CE.

Y de CE.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.