#1 Le 13/06/2006, à 12:32
- Black_pignouf
[Script] Décalage de sous-titre .srt
Bonjour à tous!
Je fais mumuse avec pas mal de scripts Ruby en ce moment, et pour une fois, il se peut que l'un d'entre eux aie une utilité quelconque. Ils existent surement d'autres scripts/paquets/programmes faisant cela, mais on ne sait jamais!
Voilà le lien:
http://www.duminil.info/doku.php?id=srtoffset
Et le script en question:
#! /usr/bin/ruby
# srtOffset.rb v0.1
# Designed to let you shift the subtitles included in a .srt file by a given amount of seconds.
# Syntax: ./srtOffset.rb NameOfSrtFile.srt Seconds
#
# Written on 13-06-06 by Eric DUMINIL
# (http://duminil.info/doku.php?id=freemindtolatex)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 2.
#
SRTFILE=ARGV[0]
DECAL=ARGV[1]
class Fixnum
def complete n
'0'*(n-self.to_s.length)+self.to_s
end
end
class TimeStamp
def initialize string
/(\d+):(\d+):(\d+),(\d+)/.match(string)
@totalms=$4.to_i+($3.to_i+($2.to_i+$1.to_i*60)*60)*1000
end
attr_reader :totalms
def hour
totalms/(60*60*1000)
end
def minute
totalms/(60*1000)-hour*60
end
def second
totalms/(1000)-hour*60*60-minute*60
end
def ms
totalms-hour*60*60*1000-minute*60*1000-second*1000
end
def addSeconds n
@totalms+=(n.to_f*1000).to_i
end
def to_s
hour.complete(2).+':'+minute.complete(2)+':'+second.complete(2)+','+ms.complete(3)
end
end
File.foreach(SRTFILE){|line|
if line=~/^(\d+:\d+:\d+,\d+) --> (\d+:\d+:\d+,\d+)/ then
firstStamp=TimeStamp.new($1)
secondStamp=TimeStamp.new($2)
firstStamp.addSeconds DECAL
secondStamp.addSeconds DECAL
puts firstStamp.to_s+' --> '+secondStamp.to_s
else
puts line
end
}
Il vous suffit de l'enregistrer dans un srtOffest.rb
de lui donner les droits d'exécution
et de le lancer comme cela:
./srtOffset.rb nomDuFichier.srt -35.567 > nouveauFichier,srt
pour avancer tous les sous-titres de 35 secondes et 567 millièmes et les enregistrer dans nouveauFichier.srt
Dernière modification par Black_pignouf (Le 22/06/2006, à 01:26)
Hors ligne
#2 Le 21/06/2006, à 20:31
- flarre
Re : [Script] Décalage de sous-titre .srt
Merci pour le tuyau mais y'a une petite erreur:
def to_ss
hour.complete(2).+':'+minute.complete(2)+':'+second.complete(2)+','+ms.complete(3)
end
c'est en fait "def to_s" et pas ss
Sinon, ça marche bien, je viens de l'utiliser, c'est cool
Hors ligne
#3 Le 22/06/2006, à 01:28
- Black_pignouf
Re : [Script] Décalage de sous-titre .srt
De rien!
Et effectivement, je ne sais pas comment c'est arrivé, mais il y avait dans le post un s de trop par rapport au fichier. Merci pour le rectificatif, donc
Hors ligne
#4 Le 22/06/2006, à 14:17
- Gou
Re : [Script] Décalage de sous-titre .srt
Ya un petit programme qui fait ça aussi:
http://kitone.free.fr/subtitleeditor/
l'avantage, c'est qu'il fait aussi beaucoup d'autres choses
"Un clavier azerty en vaut deux..."
Ubuntu Dapper Drake sur un portable Sony Vaio SZ1M/B
mon blog
Hors ligne