Daniel Mota / IceBeat

Mi vida en formato CSS3

Estás en la bitácora de IceBeat, una página sobre diseño y desarrollo web.

Sincronizar Subtítulos .srt

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.


Comentarios


  1. Enhorabuena campeon, siempre me asombran tus codigos, muy utilez, limpios y entendibles... Mil gracias por compartirlos...... Y felicidadez por el piso

    # · ralexismf · hace 2137 días

  2. @ralexismf ey gracias! se hace lo que se puede, algo lento pero bueno :)

    # · IceBeat · hace 2136 días

  3. Me parece exelente esto que hiciste Daniel, pero hay algo que no entiendo, esta parte del codigo:

    "$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();"

    Hay que añadirla tambien en la clase subtitle o donde?

    y como ejecuto el codigo para que modifique el srt? en el localhost?

    # · Wyd · hace 2136 días

  4. Se ve muy interesante =)

    @Wyd Si, tienes que ejecutarlo en localhost. Y ese código que has puesto es la llamada a la clase. Puedes ponerlo en el mismo archivo (al final del todo) u en otro (en este caso tendrás que poner un include hacia la clase).

    Saludos.

    # · Omega · hace 2135 días

  5. Muchas gracias Omega :) la verdad que la programacion no es lo mio :P

    # · Wyd · hace 2135 días

  6. AHHHHHH, hubiera visto esto ayer y no me miraba la 2da parte de Se7en en inglés! Aunque la entendí muy bien igual. Muy buena peli.

    # · Ignacio · hace 2134 días

  7. Listo, lo probé y me vino bárbaro. Gracias.

    # · Ignacio · hace 2134 días

  8. Y si quisieramos cambiar la velocidad de frames ? :P Muy buena iniciativa, mis felicitaciones por tu creatividad y emprendimiento.

    # · Santiago · hace 2133 días

  9. Hola!

    Usted tiene un buen Blog. Por es lo invito a pasar por mi blog Informatico si no es mucha molestia. No te tomara ni un minuto en pasar a dar un "ojo". Y talvez nos podriamos entrelazar. Tambien a todos aquellos que leen esto estan Bienvenidos en mi Blog.

    =D

    http://spam-en-vivo.blogspot.com

    Gracias!

    Saludos!

    # · blinkster05 · hace 2126 días

  10. hola a ver si me podéis ayudar...

    no consigo sincronizar los subtítulos. probé antes con divxplayer y ahora con vlc, pero no consigo nada. he googleado, y he dado con esta página, pero no controlo esto del php. me podríais explicar cómo lo puedo hacer?

    tengo el archivo .srt y el archivo .avi

    un saludo y gracias por adelantado.

    # · enbugu · hace 2122 días

  11. srttool, mucho mas facil que eso

    # · Nassty · hace 2118 días

  12. Hola muy bueno tu blog eh! Qué CMS utilizas?

    # · Brunetto · hace 2108 días

  13. hace mucho que no toco la programación para hacer arreglos y mejorar mi vida cotidiana xD, entonces usaba Java en vez de PHP :S

    pero bueno al caso, que esto me hace recapacitar y a ver si hago algo constructivo para que m facilite alguna cosa d mi vida, y luego recomendaros a todos el KMPlayer http://www.kmplayer.com/es

    # · Nejo · hace 2106 días

  14. Excelente tu trabajo y sinceramente es muy usable.

    Como idea, se podría crear una aplicación web donde uno suba su subtítulo, indique los tiempos para sincronizarlos y te devuelva el archivo sincronizado.

    No necesitaría tampoco demasiados recursos ya que los archivos de subtítulos pesan unos pocos kb.

    Suerte!

    # · Nicolás · hace 2103 días

  15. Les aconsejo que le echen una miradita a este software: http://www.urusoft.net/download.php?lang=1&id=sw4

    Es un programa creado en Uruguay para manipular subtítulos en texto.

    ES E X C E L E N T E !!!

    # · Dany · hace 2086 días

  16. @IceBeat hoy repasava archivos antigups de php hispano y me ido a topar con la siguiente url :P

    http://usuarios.lycos.es/grafic03/

    # · Mitsurugi · hace 2082 días

  17. @Mitsurugi LOOOL! Es mi imaginación o ponen "diseNiador" ?

    # · Omega · hace 2080 días

  18. @Mitsurugi jeje tio! que estaba empezando :P.

    @Omega ya ves, cosas de la Ñ en esa tipografía.

    # · IceBeat · hace 2079 días

  19. @IceBeat suponía que era cosa de la tipografía, pero es curioso lo tuyo con las faltas en los logos jeje

    # · Omega · hace 2078 días

  20. Vaya casualidad... yo me hice también una MINI-aplicación web para hacer lo mismo ;)

    http://www.guaser.info/subtitulos

    No solo sirve para atrasar o adelantar todos los subtitulos X segundos, sino también para "reescalar" la longitud de los mismos, si estableces el tiempo correcto para un subtitulo del principio y otro del final ;)

    Espero que os sirva. Salud. SERGI R.

    # · caos30 · hace 2061 días

  21. muy buen blog, tiene temas muy interesantes

    # · asban · hace 2059 días

  22. Que buena Icebeat, realmente se me ocurre darle un uso , para la sincronizaciónd e videos online

    # · Queli Coto · hace 2051 días

  23. @ralexismf Sigues con vida Dani? =D

    # · @ndreX! · hace 1990 días

  24. yo iba a hacer lo mismo, muchas gracias, lo has clavado.

    # · xaga · hace 1980 días

  25. Hola, yo uso Time Adjuster para eso, corre sólo en Windows. http://www.ireksoftware.com/ta/

    # · Jose Fonseca · hace 1961 días

  26. Yo uso SubtitleSync. Es una pagina y funciona en Internet Explorer, Firefox y Safari Les paso el link: http://www.subtitlesync.com.ar

    # · Jose · hace 1943 días

  27. en VLC puedes usar las teclas G, H, J, K, L para sincronizar los subtítulos o el audio a tiempo real.

    Aunque está muy bien que te hayas creado esa clase en PHP!! :D

    # · hiulit · hace 1894 días

  28. a ver si actualizamos ^^

    # · patoroco · hace 1888 días

  29. Si solo llevo 250 días sin escribir hombre! no me seas impaciente.

    # · icebeat · hace 1887 días

  30. @icebeat Haha ya casí llegas al record de 1 año, vamos hombre aunque sea un "Hola Mundo" vendría excelente... =)

    # · @ndreX! · hace 1887 días

  31. Descubrí este blog hace poco, pero... no me había dado cuenta... 262 días sin escribir, debe de estar bastante ocupado el autor, una pena...

    # · SsouL · hace 1875 días

  32. Muy util, a mi tambien me han surgido dichos problemas con los subs

    # · elefrEn · hace 1849 días

  33. Excelente post, me ha sido muy útil para algunos proyectos que he desarrollado.

    Un saludo desde Colombia.

    # · Sergio Fajardo · hace 1830 días

  34. Yo tampoco entiendo mucho de programación, pero se le saca utilidad a todo... jejeje Gran Blog. Saludos y suerte por Madrid.

    # · CMYK · hace 1792 días

  35. Probado y fue todo un exito!!! Muchas Graxias !!!

    # · stheffanylineth · hace 1792 días

  36. A ver, pero si esa función viene incorporada en VLC ¿qué estamos tontos?

    # · Mageownyou · hace 1771 días

  37. @icebeat Ya más de un año

    # · Anónimo · hace 1769 días

  38. Dani! pásate por aqui y cuenta algo hombre! ;)

    # · Alfonso Acedo · hace 1765 días

  39. probandoooo

    # · eee · hace 1758 días

  40. Muy interesante el post, y el blog en general. gracias

    # · diseno de volantes · hace 1758 días

  41. Hola, siempre te visito, pero nunca dejo comentario, y ahora dejo uno y ademas ni siquiera tiene que ver con el tema :P, pero es que no encontre donde contactarte :)

    El motivo es el siguiente, no se si te haz fijado o si ya te habian dicho, pero en la cabecera, en el logo, dice, "Mi vida en foTmato CSS", y creo que deberia de ser con R, y si no, disculpa por la molestia :D

    Saludos, eres un crack

    # · Manny · hace 1621 días

  42. Test: España y camión

    # · @icebeat · hace 1565 días

  43. Very funny pictures Pornhub 65868

    # · Yabpgumk · hace 1292 días

  44. Very Good Site Redtube unk Maxporn 59721 Xnxx 8]]] Youporn 8-(( Xvideos 8-DD

    # · Yjhlxszl · hace 1291 días

  45. Tres intiresno, gracias

    # · InaffotoZox · hace 1291 días

  46. hola yo tengo una mejor opcion mas sencilla y facil, en cuanto pueda hago las caps y las intrucciones de un programa muy sencillo y lo subo ;) cualkier duda les dejo mi mail darko_taleshotmail.com vale :)

    # · @darko_tales · hace 1142 días

  47. ala k jefe

    # · @jondarru · hace 1091 días

Comentar

Aceptamos Markdown, @nick para reply automático.