LINUX.ORG.RU

Чем поредактировать субтитры (.srt)?


0

0

Есть субтитры с правильным текстом, но неправильным временем (похоже на простой сдвиг), хочу поправить. Есть ли какая-нибудь программа для редактирования субтитров?

В крайнем случае, напишу 5 строк перлового кода, конечно :)

★★

Ksubtile

А проще - задать этот сдвиг в самом MPlayer - это НАМНОГО проще :), чем перелопачивать все сабы...

YagMort ★★
()
Ответ на: комментарий от YagMort

> проще - задать этот сдвиг в самом MPlayer

Не всегда :) Мне, помнится, попались субтитры с 4-х минутным сдвигом :) Не знаю уж, кто и как их делал... У меня даже валяется где-то скрипт на Python для сдвига. Но кинуть смогу только завтра.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

> Не всегда :) Мне, помнится, попались субтитры с 4-х минутным сдвигом :)

Ха! У меня 29 минут двигать нужно! Да и вообще это для записи на диск, а фильмы у меня запустаются одной кнопкой (НЕ RESET ;) ) Да и людям дашь, не будут они играться.

Спасибо!

fAX ★★
() автор топика
Ответ на: комментарий от fAX

#!/usr/bin/python

__doc__="""
Скрипт для смещения титров в формате srt по времени.

На stdin подаются исходные титры, результат - на stdout.
смещение задаётся переменными shift_{h,m,s}. shift_s задаёт 
смещение в мс.
"""

import sys

shift_h = 0
shift_m = -4
shift_s = -37000

def shift_time( time_str, sh=0, sm=0, ss=0 ) :
    th = int( time_str[0:2] ) + sh
    tm = int( time_str[3:5] ) + sm
    ts = int( time_str[6:8] + time_str[9:12] ) + ss
    if ts<0 :
        ts += 60000
        tm -= 1
    if tm<0 :
        tm += 60
        th -= 1
    tss = "%05d" % ts
    time_str = "%02d:%02d:%s,%s" % ( th, tm, tss[:2], tss[2:] )
    return time_str

for line in sys.stdin :
    if line[2:9:3] != '::,' :
        sys.stdout.write( line )
    else :
        for tp in ( 0, 17 ) :
            line = line[:tp] + shift_time( line[ tp : tp+12 ], shift_h, shift_m, shift_s ) + line[ tp+12: ]
        sys.stdout.write( line )

watashiwa_daredeska ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.