Videos aleatorios de Intro en Recalbox
Publicado: 05 Mar 2017, 22:16
Para poder poner videos y que estos sean reproducidos de forma aleatoria cuando se inicia Recalbox (versión estable 4.0.1 y 4.0.2) debemos hacer lo siguiente:
NOTA: estos pasos debemos hacerlos posteriormente a mi anterior tuto viewtopic.php?f=17&t=3603 es decir, ya debemos ser capaces de poder poner cualquier video de Intro en Recalbox.
Ahora si , a ello:
1) Poner en modo escritura racalbox - En PuTTY mount -o remount,rw /
2) Poner algunos videos de Intro en /recalbox/system/resources/splash que no tengan mas de 20 seg. de duración, en formato MP4 y llamarlos CyberDreams0.mp4, CyberDreams1.mp4, etc. (este nombre es a modo de ejemplo, ustedes pueden poner el que deseen teniendo el cuidado de modificar el script para que coincidan).
3) Copiar y pegar el siguiente texto en el archivo S02Splash que se encuentra en /etc/init.d reemplazando el anterior contenido:
Luego la variable $minum la utilizo para armar el nombre del archivo que se va a mostrar (ver la línea VIDEO que no está comentada # ).
Como podrán deducir, cada vez que se inicia Recalbox se reproducirá uno de los archivos llamados CyberDreams0.mp4, CyberDreams1.mp4, CyberDreams2.mp4, CyberDreams3.mp4, etc.
4) Poner en modo solo lectura nuevamente Recalbox con PuTTY (mount -o remount,ro /)
Apagar el sistema y encenderlo nuevamente varias veces para apreciar el cambio del video. Esto es aplicable para las versiones estables 4.0.1 y 4.0.2 que aún no tienen la posibilidad de insertar un video (y mucho menos de forma aleatoria) la inicio de Recalbox.
Saludos.
NOTA: estos pasos debemos hacerlos posteriormente a mi anterior tuto viewtopic.php?f=17&t=3603 es decir, ya debemos ser capaces de poder poner cualquier video de Intro en Recalbox.
Ahora si , a ello:
1) Poner en modo escritura racalbox - En PuTTY mount -o remount,rw /
2) Poner algunos videos de Intro en /recalbox/system/resources/splash que no tengan mas de 20 seg. de duración, en formato MP4 y llamarlos CyberDreams0.mp4, CyberDreams1.mp4, etc. (este nombre es a modo de ejemplo, ustedes pueden poner el que deseen teniendo el cuidado de modificar el script para que coincidan).
3) Copiar y pegar el siguiente texto en el archivo S02Splash que se encuentra en /etc/init.d reemplazando el anterior contenido:
#!/bin/bash
do_start ()
{
minum=`echo $(($RANDOM%10))`
#video="/recalbox/system/resources/splash/recalboxintro.mp4"
video="/recalbox/system/resources/splash/CyberDreams$minum.mp4"
# odroid xu4 has not omxplayer, make it run this code make it flash
if [[ -f $video && -f /usr/bin/omxplayer ]]; then
# Initialize dbus session
OMXPLAYER_DBUS_ADDR="/tmp/omxplayerdbus.root"
OMXPLAYER_DBUS_PID="/tmp/omxplayerdbus.root.pid"
exec 5> "$OMXPLAYER_DBUS_ADDR"
exec 6> "$OMXPLAYER_DBUS_PID"
dbus-daemon --fork --print-address 5 --print-pid 6 --session
until [ -s "$OMXPLAYER_DBUS_ADDR" ]; do
echo "waiting for dbus address to appear" >&2
sleep .2
done
DBUS_SESSION_BUS_ADDRESS=`cat $OMXPLAYER_DBUS_ADDR`
DBUS_SESSION_BUS_PID=`cat $OMXPLAYER_DBUS_PID`
export DBUS_SESSION_BUS_ADDRESS
export DBUS_SESSION_BUS_PID
# Launch the video
omx_fnt="--font=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf"
omx_opt="--no-keys --layer=10000 --aspect-mode=fill"
omx_srt="--no-ghost-box --lines=1 --align=left $omx_fnt --font-size=20 --subtitles=/recalbox/system/resources/splash/recalboxintro.srt"
/usr/bin/omxplayer.bin $omx_opt $omx_srt $video &
PID=$!
# Stop the video when ready
if [[ $? -eq 0 ]]; then
# Wait for emulationstation or Kodi, but not more than 20 seconds
count=0
while [[ ! -f "/tmp/emulationstation.ready" && ! -e "/var/run/kodi.msg" && $count -lt 20 ]]; do
sleep 1
((count++))
done
# Finish with a one second fade out.
audio_fade=1
video_fade=250
while [[ $video_fade -gt 0 ]]; do
sleep .02
dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Volume double:$audio_fade >/dev/null
dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.SetAlpha objpath:/not/used int64:$video_fade >/dev/null
audio_fade=`echo "$audio_fade .02" | awk '{printf "%.2f", $1-$2}'`
((video_fade=video_fade-5))
done
# Ready flag set or timeout occured; stop video process.
dbus-send --print-reply=literal --session --dest=org.mpris.MediaPlayer2.omxplayer /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Action int32:15 >/dev/null
fi
fi
# on some sytems, fb0 is not immediatly loaded, so, keep a chance by waiting a bit
N=0
while ! test -e /dev/fb0 -o $N -gt 15
do
sleep 1
let N++
done
test -e /dev/fb0 && fbv -f -i /recalbox/system/resources/splash/logo-version.png
}
case "$1" in
start)
do_start &
;;
stop)
;;
restart|reload)
;;
*)
esac
exit $?
Como verán lo único que cambia con su archivo original es que ahora con la línea minum=`echo $(($RANDOM%10))` creo una variable que va a contener un número aleatorio generado por la función RANDOM que va de 0 a 9 (por ende yo puse diez videos de Intro diferentes).Luego la variable $minum la utilizo para armar el nombre del archivo que se va a mostrar (ver la línea VIDEO que no está comentada # ).
Como podrán deducir, cada vez que se inicia Recalbox se reproducirá uno de los archivos llamados CyberDreams0.mp4, CyberDreams1.mp4, CyberDreams2.mp4, CyberDreams3.mp4, etc.
4) Poner en modo solo lectura nuevamente Recalbox con PuTTY (mount -o remount,ro /)
Apagar el sistema y encenderlo nuevamente varias veces para apreciar el cambio del video. Esto es aplicable para las versiones estables 4.0.1 y 4.0.2 que aún no tienen la posibilidad de insertar un video (y mucho menos de forma aleatoria) la inicio de Recalbox.
Saludos.