Pensé en una forma de hacer que un script de Android lograra esto:
(1) crea un directorio vacío llamado "work";
(2) copia el archivo VideoToPlay.mp4 en ese directorio de trabajo;
(3) copia el archivo *.ssa en el mismo directorio con el nombre "VideoToPlay.ssa";
(4) ejecuta el comando "am start" que publiqué arriba, apuntando al VideoToPlay.mp4
Esto funciona porque mientras haya un archivo .ssa en el mismo directorio que el video y con el mismo nombre base que el video, VLC aplicará los subtítulos en ese archivo .ssa al video especificado.
Aquí está mi script para lograr esto:
#!/system/bin/sh
workdir=/sdcard/vidwork
amstart=( /system/bin/am start -n org.videolan.vlc/org.videolan.vlc.gui.video.VideoPlayerActivity -a android.intent.action.VIEW -d )
amstop=( /system/bin/am force-stop org.videolan.vlc )
# Si VLC está en ejecución, mátalo.
"${amstop[@]}" 1>/dev/null 2>&1
[[ $# -lt 1 ]] && {
echo "
uso: ${0##*/} video-a-reproducir [ archivo-de-subtítulos ]
"
exit 1
}
videopath="${1}"
shift
[[ -r "${videopath}" ]] || {
echo "
El video no existe: ${videopath}
"
exit 1
}
videoname="${videopath##*/}"
case "${videoname}" in
*.mp4|*.mkv)
;;
*)
echo "
El video debe ser mp4 o mkv
"
exit 1
;;
esac
videobasename="$( echo "${videoname}" | /system/bin/sed -e 's/\.mp4$//i' -e 's/\.mkv$//i' )"
/system/bin/rm -rf "${workdir}" 1>/dev/null 2>&1
/system/bin/mkdir -p "${workdir}" 1>/dev/null 2>&1
[[ $# -gt 0 ]] && {
subpath="${1}"
shift
[[ -r ${subpath} ]] || {
echo "
El archivo de subtítulos no existe: ${subpath}
"
exit 1
}
/bin/cp "${subpath}" "${workdir}/${videobasename}.ssa"
}
/bin/cp "${videopath}" "${workdir}"
cmd=( "${amstart[@]}" "file:///${workdir}/${videoname}" )
{
"${cmd[@]}"
} 1>/dev/null 2>&1
exit 0
PD: Este script necesita ejecutarse como root para que el comando /system/bin/am force-stop ...
funcione correctamente.
Por lo tanto, suponiendo que este script está almacenado como /sdcard/runvid.sh
, debe ejecutarse en un dispositivo rooteado de la siguiente manera ...
/system/bin/su -c /sdcard/runvid.sh ruta-al-archivo-de-video [ ruta-al-archivo-de-subtítulos ]