Sincronizar Subtítulos .srt


1

Algunas veces no sé porque pero la función del VLC para manipular los segundos de los subtítulos no funciona correctamente, suele ocurrir cuando no están bien sincronizados. La mejor forma es bajarte un programita y alterar la linea de tiempo. No entiendo la razón pero no he encontrado ninguna aplicación web que lo haga así que me he creado una clase en PHP para manipular los archivos .srt

<?php

class Subtitle {

    function Subtitle($srt) {
        $this->name = $srt;
        $this->file = @file_get_contents($srt);
    }

    function time($time=0) {
        $this->time = $time;
        $this->file = preg_replace('!([0-9:]{8}),([0-9]{3}) --> ([0-9:]{8}),([0-9]{3})!e',
                    '$this->sync("\1").",\2 --> ".$this->sync("\3").",\4"', $this->file);
    }

    function sync($time) {
        $time = strtotime($time);
        $time = $time+$this->time;
        return date('H:i:s', $time);
    }

    function save($name='') {
        if($name) $this->name = $name;
        $fp = @fopen($this->name, 'w');
        if(!$fp) return false;
        fwrite($fp, $this->file);
        fclose($fp);
        return true;
    }

}
?>

Su uso es muy fácil, solo tienes que pasar la ruta del archivo e indicar cuantos segundos quieres añadir o quitar, si quieres quitar solo tienes que poner el valor en negativo.

$subs = new Subtitle('subs.srt');
//añadir 5 segundos, quitar -5
$subs->time(5);
//si no le pasas un nuevo nombre reemplaza el archivo
$subs->save();

Lo único que hace es manipular los segundos, consiguiendo que puedas ir sincronizando poco a poco aquellos subtítulos que por cualquier razón no coinciden con el archivo de video bajado.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s