Howto по программе Subtitle Format (SubFormat)


Пишу как могу... Что-то поменялось, а что-то забыто. Достал старые записи, стряхнул с них пыль и привожу в порядок...
Названия кнопок заключены в квадратные скобки.
Секция над Закладками
Закладка 'Subtitle'
Закладка 'Subtitles Operations'
Закладка 'Time / Frame Operations'
Закладка 'Time Utilities'
Меню программы
Окно "Subtitles Lists"
'BUGS' - замеченые ошибки

Порядок нажатия кнопок (действия производятся на закладке 'Subtitles Operations') :
Перед тем как нажать [Subtitles Correction] имеет смысл нажать [Offset ReCount] для перенумерации субтитров, иначе при коррекции соседние субтитры могут слипнуться.
Также имеет смысл нажать кнопку [Fix Delimiters] для выправления расстановки знаков препинания (не идеально, но в большинстве случаев это лучше, чем массовые пропуски пробелов после точек, запятых и восклицательных знаков).

Основные дествия для преобразования длины строк субтитров под нужные значения.
Перейти на закладку 'Subtitles Operations'.
Нажать следующие кнопки в указанном порядке:
[Subtitle To One Line]
[Rename out-File]
[Set Length]
[Rename out-File]
Субтитры готовы.

Осталось протестировать результат:
[Test Length] (будет создан файл *.len)
[Test Time] (будет создан файл *.time)
(или [Test Frame] (будет создан файл *.frame)
С включённым параметром No Time Range to Log лог будет создан только если есть ошибки пересечения интервалов времени показа субтитров.

Ручная корректировка субтитров по log-файлам (то, что невозможно сделать автоматически).
Посмотреть и, при необходимости, скорректировать неправильные/критичные субтитры можно переключившись на закладку 'Subtitle'. Далее надо будет выбрать тип log-файла в секции 'Log Data' и нажать кнопку Load Log-file. При выборе типа log-файла, если указанный тип файла присутсвует, то справа от окна выбора типа появится маркер exist означающий, что данный файл присутсвует. После загрузки log-файла, в соответсвующей секции будет указано количество загруженных строк с ошибками/сообщениями. Навигация по этим строкам осуществляется через кнопки Prev, Next, Go to: секции 'Log Data'. Описание ошибки/сообщения отображается в длинной строке секции 'Log Data'. При перемещении по списку со строкам ошибок/сообщений, соответсвующий субтитр к которому относится ошибка/сообщение будет отображаться в секции 'Subtitle Lines'.

Для массового преобразования файлов субтитров (например, субтитры к сериалам) удобно включить флажок 'Directory Mode'. На тех кнопках, которые работают в режиме Directory Mode надписи будут выделены курсивом.
Секция над Закладками
флаг 'Directory Mode' Режим Каталога - включает режим, в котором обрабатываются все субтитры (по указанному расширению), расположенные в текущем каталоге.
флаг 'Keep first Sub' Оставлять первый субтитр без изменений. Действует на кнопках:
[Sprain Range Time / Farmes at Second]
[Sprain Range Time]
[All in One] 'Всё в одном' - набор из кобинации кнопок:
[Any to DOS]
[Fix Delimiters]
[Subtitles Correction]
[ReCount] [Subtitle To One Line]
[SubtitlesDigitsFix]
[Set Length]
[Rename out-File] После операций с кнопками отредактированный файл субтитра записывается с расширением out (на всякий непредвиденный случай). Для замены старого субтитра новым необходимо нажать эту кнопку.
[Delete File:] Удалить файл с указанным расширением в окне справа

Закладка 'Subtitle'
Log Data
[Load Log-file:] Загрузить log-файл с указанным справа от кнопки расширением (имя log-файла аналогично имени субтитра)
[Go to:] Перейти к указанной (номер справа от кнопки) строке log-файла
[слева от кнопки - количество всех строк в log-файле]
[Prev] Перейти к предыдущей строке log-файла
[Next] Перейти к следующей строке log-файла
При нажатии на кнокпки [Go to:], [Prev], [Next] в окне Subtitle Lines отображается проблемный субтитр.
Subtitle Lines
[Add Last Subtitle] Добавить последний субтитр в конец с указанным текстом. Для этой функции есть параметры через сколько минут/секунд от последнего субтитра всавить новый последний субтитр и параметр указывающий длительность нового последнего субтитра.
Удобно, например, вставлять [English] в конец субтитра.
[Break Str Eq] Break String Equal - переразбить строки субтитра так, чтобы строки были примерно одинаковой длинны.
[Break Str] Break String - переразбить строки субтитра
[Switch Case] Инвертировать регистр в текущем субтитре
[Switch SelCs] Инвертировать регистр в выделенной части текущего субтитра
[Break Dlg] Разбить субтитр с диалогом на два субтитра
[Break Big] Разбить большой текст (количество символов > 119 или сколько выставлено в параметрах) на два субтитра.
строка разницы времени/фреймов, горячие клавиши
'-' установить указаный диапазон времени (дельта) относительно конечного времени тайминга, указанного в строке тайминга. (т.е. время окончания показа субтитра 'минус' дельта времени)
'+' установить указаный диапазон времени (дельта) относительно начального времени тайминга, указанного в строке тайминга. (т.е. время начала показа субтитра 'плюс' дельта времени)
окно редактирования субтитров, горячие клавиши
'Ctrl+1' преобразовать текст субтитра в одну строку
'Ctrl+2' перенести слово из начала следующей строки в конец текущей строки
'Ctrl+3' перенести слово из начала второй строки в конец первой строки
'Ctrl+4' перенести слово из конца текущей строки в начало следующей строки
'Ctrl+5' перенести слово из конца первой строки в начало второй строки
'PageUp' перейти на предыдущий субтитр
'PageDown' перейти на следующий субтитр
'Ctrl+PageUp' перейти на предыдущий проблемный субтитр
'Ctrl+PageDown' перейти на следующий проблемный субтитр

Закладка 'Subtitles Operations'
Общая Секция
[Sprain Range Time / Farmes at Second]
ex [Sprain Range Time/Farme]
ex [Sprain Range Time at Sec]
- Расстяривает/сжимает файлы *.srt и *.sub по параметрам фрэймов в секунду.
[Tags Fix] субтитры, содержащие тэги <i> и </i> или {y:i} и {y:b} переводит в одну строку (диалоги, естественно, оставляются), далее субтитр разбиваются на строки по указанным тэгам.
Попутно удаляются двойные пробелы и крайние пробелы.
[Fix] Если в начале субтитра стоит таг {y:i} или {y:b}, то его прописываем в каждую строчку
[Remove Line Begin from Text]
ex [Delete Line from]
ex [Remove From]
Удаление строки начинающейся с подстроки. Удобно для удаления
'<[-=' - символы для чужого времени.
Секция 'Subtitles Length'
флаг 'Save SubLine (to1line)' сохранять длинну строк субтитра, если все они удовлетворяют одному условию, т.е. меньше указанной длинны.
флаг 'Analys Wide Letters'
ex 'Analys Symbols'
анализировать широкие буквы (проводить разбиение с учетом широких букв)
[Subtitle To One Line] текст субтитра переводится в одну строку (диалоги, естественно, оставляются) Попутно удаляются двойные пробелы и крайние пробелы, опционально (Add Space After Symbols (to1line)) можно расставить пробелы после указанных символов-завершителей строки.
[Set Lenght] Загоняет субтитры в выставленные рамки - количество строк и количество символов в строке (Субтитр старается разбиться красиво, поэтому возможны случаи, когда строк в субтитре быдет больше положеного).
Дополнительные параметры позволяют указать опции при форматировании субтитра (анализ широких символов, начинать разбивку с конца субтитра, а не сначала)
[Test Length] Проверяет субтитры на соответсвие выставленным рамкам - количество строк и количество символов в строке, а так же правильность нумерации субтитров.
Секция 'Subtitle Fix'
[Subtitles Correction] Вставляет пустые строки, если номер субтитра и его тайминг прилипли к предыдущему субтитру. убираются пустые строки между номером субтитра и таймингом, между временем и текстом субтитра, между строками текста в субтитре, между субтитрами. Убираются лишние пробелы на концах строк, будь то номер субтитра, тайминг/фрэйминг субтитра или текст субтитра (даже в любом текстовом файле подчистит пробелы на концах строк).
Добавлено: замена двух пробелов на Enter (для srt)
Добавлено: склеивание двух строк, если первая строка вида "-", "<b>-", "<i>-", т.е. коррекция для диалогов (для srt).
флаг 'TimeCorrection' Коррекция времени (касательно миллисекунд)
флаг 'CaseCorrection' Коррекция регистра в середине слова после дефиса
[Subtitles To Bottom] Прижать субтитры к низу экрана Достигается вставной строк из одного пробела перед строками субтитра (после тайнига).
[Fix Subtitle Dialog] Восстанавливает диалоговые строки, начинающиеся с дефиса.
(файл DiaBreak.dat)
[Break Big Text] разбивает большой текст (по знакам препинания) на два субтитра, если он содержит более указанного максимального количества строк для субтитра (SubtitleFullLength = 119).
[Break Sub Dialog] разбивает диалог пополам, если он содержит более указанного количества строк или более указанного максимального количества строк для субтитра.
[Fix Delimiters] Вставляет пробелы после указанные символов - завершителей строки.

Закладка 'Time / Frame Operations'
Секция 'Time Extender'
[Extend Time] По возможности расширяет длительность показа субтитра на экране. Для этого субтитр сдвигается немного назад (на указанное количество милисекунд) и увеличиается на указанное значение показа субтитра или (если указанное значение превышает возможности) конечное время показа субтитра выставляется как начальное время показа следующего субтитра (последнее настраивается в параметрах - можно выставить с разницей в 1 сек или 1 фрэйм - галка [v] One Tick Difference Nears Time/Frame (for New)).
Секция 'Range of Time'
[Sprain Range Time] Растягивает субтитр, на основе указанного конечного времени субтитра
Секция 'Range of Frame'
[Sprain Range Frame] Растягивает субтитр, на основе указанного конечного фрейма субтитра

Закладка 'Time Utilities'
Секция 'Timings'
[Replace Timings] Берёт тайминги/фрэйминги из другого (добавочного) файла (количество субтитров должно совпадать!!!)
[Compare Timings] [-=TEST=-] Берёт тайминги из другого файла (количество субтитров может не совпадать) Сравнение производится либо по времени, либо по тексту субтитров.
В последнем случае тэги типа <i>, </i> отбрасываются перед сравнением.
[Fix double Time] Находит субтитры с одинаковыми таймингами и делит эти тайминги на 2 или 3 субтитра, которые расположены рядом.
[Fix Wrong Time] Находит несоответсвия в субтитрах по времени и выправляет их. Может присоединять текст текущего субтитра к тексту предыдущего субтитра, не меняя времени (если в результате корректировки времени текущего субтитра, длина тайминга оказалась меньше заданнго значения).
Кнопки [Fix double Time], [Fix Wrong Time] работают в паре, если установлен флаг 'Ins Time'.
флаг 'TAG' записывать в лог присутствие TAG-ов при процессе по кнопке [Test Length]
флаг 'No Time Range to Log' для процесса по кнопке [Test Time]
флаг 'Time Area' для процесса по кнопке [Test Time]
- отображает соседние параметры длительности времени
флаг 'Round Word' строку текста округлять до целых слов - т.е. отсекать половинки получившиеся в результате разбиения (для сравнения) текстовой строки.
флаг 'Ins Time' вставляет чужой тайминг из добавочного файла.
флаг 'Force Ext'  
флаг 'Join Sub-Text'  
Секция 'Offset Time of Tail'
[Offset Tail] Сместить указанную часть временного интервала на указанное количество времени.
Секция 'Calculator', горячие клавиши
T во второй/третьей строке тайминга - перевод дельты фреймов в таминг, при этом дельта фреймов перескакивает в правую строку.
- во второй/третьей строке разницы времени/фреймов - установить указаный диапазон времени (дельта) относительно конечного времени тайминга, указанного в строке тайминга. (т.е. время окончания показа субтитра 'минус' дельта времени)
+ во второй/третьей строке разницы времени/фреймов - установить указаный диапазон времени (дельта) относительно начального времени тайминга, указанного в строке тайминга. (т.е. время начала показа субтитра 'плюс' дельта времени)
Секция 'Split & Join'
[Split SubTime & SubText] Разделяет файл субтитров на 2 части и вспомогательный файл:
*.srttext - файл с текстом (строки субтитров)
*.srttime - файл с номерами субтитров и временем,
*.srttrk - файл с номерами субтитров и количеством строк (ini-файл)
[Join SubTime & SubText] Собирает 2 файла *.srttext и *.srttime в один при помощи файла *.srttrk.
[Del Last Subtitle] Удаляет последний субтитр (антипод процедуры [Add Last Subtitle])
[Subtitle Time Correction] Корректирует время субтитров в случае нахлёста - время окончания показа предыдущего субтитра выставляется равным времени начала показа следующего субтитра.

Закладка 'Diag' - Задумана для просмотра графика изменения времени (ось абсцисс - старое время, ось ординат - новое время).
Предполагалась для изучения искривления при преобразовании субтитров от одной частоты кадров к дуругой (Например от 23,976 fps к 25 fps).
Меню программы
menu [Convertation Text in File]
text to lower case Преобразовывает все символы в нижний регистр.
Text To Begin From Upper Letter Преобразовывает слова в слова с заглавных букв.
Normalize text string Начинает предложения с заглавных букв (Начало строки, Начало диалога, после точки, восклицательного/вопросительного знака).
флаг 'Up Case (Text In Brackets)' Устанавливает верхний регистр для слов в круглых скобках при преобразовании регистра по любому пункту меню, выбранному выше этого флага.
'[Code Text]' Создаёт файл CodeTest.chr в папке программы, в котором представлена кодовая таблица в виде субтитра формата *.srt
menu [Parameters]
   Закладка 'Main'
флаг 'One Tick Difference Nears Time/Frame (for New)' Выставлять следующий субтитр на 1 секунду/фрэйм позже - т.е. не допускать ситуации когда время/фрэйм окончания показа предыдущего субтитра совпадает с временем/фрэймом начала показа текущего субтитра. Изначально использовалась для кнопки [Extend Time].
флаг 'Correct TAGs' для процесса по кнопке [Set Length] (SubtitleLineCut)
флаг 'Correct Inside TAGs' для процессов по кнопкам [Set Length] и [Subtitles To One Line] для выявления ситуаций типа '</i> <i>'. Причем в [Set Length] работает в паре с 'Correct TAGs'.
флаг 'Write Log On Set Length'  
флаг 'Write Operations Log' Записывать лог нажатых кнопок в файл Operations.log.
При достижении 500 строк, в файле остаётся 200 поледних строк и запись продолжается.
'Replace Mode' Режим замены - заменять любую подстроку (в любом слове) или только слова.
флаг 'Case Sensitive' включение чувствительности регистра для 'Режима замены'.
   Закладка 'String & Length'
флаг 'Check Count Lines More That TruncCount Symbols' Проверяет соответсвие количества строк содержащемуся в них количеству символов.
По-русски: проверяется, можно ли разместить такое количество символов в меньшем количестве строк, чем есть сейчас.
'Break Mode' С коррекцией или без коррекции (используется при переразбивке субтитра - разбираться где-то глубоко).
   Закладка 'Other'
'Sprain Range Mode' Режим растягивания/сжатия субтитра.
Deflection ? 2 / 3 - пропорция 2 из 3 частей - переломная часть функции
'subs list mode' Режим отображения 'Списка субтитров' - использовать два или один списка.
add Time from last Установка временных параметров для вставки последнего субтитра по кнопке [Add Last Subtitle].
menu [Parts & Tails]
Параметры для секции Timings опции Compare 'inText with addText'
- указываются дробные значени - сколько брать текста для сравнения
Length Верхняя строка - длины строк (больше 0, больше 12, больше 24 символов).
Parts & Tails Значения строк Parts и Tails образуют в столбцах дроби напротив длин строк (1/1 для длины больше 0, 1/2 для длины больше 12, 1/2 для длины больше 24).

Окно "Subtitles Lists"
[Save] Сохранить субтитр
[ReCount] Перенуморовать все субтитры с единицы
[Del Line] Удалить текущий субтитр (строку)
[Break] Разбить субтитр на два. Разбивается пополам время субтитра, сам субтитр дублируется. В случае диалога - субтитр разбивается пополам по диалоговым фразам. [В случае большого текста - не помню].
В конце каждого разбитого субтитра ставится метка <-=BREAK=->
[Join] Объединить текущий субтитр с предыдущим.
[<< Ins]
[Ins >>]
Вставить текущий субтитр из соседнего окна.
В конце вставленного субтитра ставится метка <-=INSERT=->
[<Time>] Вставить в субтитр пометку <<Time>>
[Close] Закрыть окно

'BUGS' - замеченые ошибки:
Bug Track
[v.3.7.12.148] Обнаружен глюк, который выпадал из проверки на ошибки: единственный дефиc в строке, что может сигнализировать о порушенном диалоге. В программу внесены коррективы.
[v.3.7.12.147] Всё ещё тянется с давних пор глюк, возникающий при массовом переименовании - выскакивает сообщение типа "out-файл отсутсвует".
[v.3.7.12.145] Снова обнаружил ошибку, описанную ранее ниже. :)
[v.3.7.12.133] Если в нескольких субтитрах srt-файла полностью совпадают тайминги, то могут возникнуть проблемы при позиционировании на таком субтитре и субтитры с совпадающими таймингами могут переписаться текстом из первого субтитра с совпадающим таймингом.
[v.3.7.11.111] Ошибка тянется давно, но, пока так и не отловлена.
Ошибка 'List Out of Bound' - возникает периодически, при открытии следующего файла по кнопке 'Открыть'. В результате создаётся файл с именем открываего субтитра и расширением out. Содержимое и размер полностью идентично открываемому файлу субтитра.

Назад
На Главную страницу сайта

mail me
Рейтинг@Mail.ru Rambler's Top100 be number one Каталог ИТ Last UpDate: