Перейти к содержимому


Перед регистрацией ознакомьтесь с темой про сертификат безопасности:
Фотография
- - - - -

Помогите разобраться с форматом видео


  • Please log in to reply
51 ответов в этой теме

#1 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 19 Oct 2012 - 18:43

Прислали файл со след. характеристиками (МедиаИнфо):
Общее
Полное имя : vera_showreel.mpg
Формат : MPEG-PS
Размер файла : 2,23 Гбайт
Продолжительность : 28 м.
Режим общего битрейта : Переменный
Общий поток : 11,2 Мбит/сек

Видео
Идентификатор : 224 (0xE0)
Формат : MPEG Video
Версия формата : Version 2
Профиль формата : Main@High
Параметр BVOP формата : Да
Параметр матрицы формата : По умолчанию
Параметр GOP формата : M=3, N=12
Продолжительность : 28 м.
Вид битрейта : Переменный
Битрейт : 10,6 Мбит/сек
Максимальный битрейт : 18,5 Мбит/сек
Ширина : 1920 пикселей
Высота : 1080 пикселей
Соотношение сторон : 16:9
Частота кадров : 30,000 кадров/сек
Стандарт вещания : PAL
Цветовое пространство : YUV
Субдискретизация насыщенности : 4:2:0
Битовая глубина : 8 бит
Тип развёртки : Чересстрочная
Порядок развёртки : Верхнее поле первое
Метод сжатия : С потерями
Бит/(Пиксели*Кадры) : 0.170
Размер потока : 2,11 Гбайт (95%)
Основные цвета : BT.709
Характеристики трансфера : BT.709
Коэффициенты матрицы : BT.709

Аудио
Идентификатор : 192 (0xC0)
Формат : MPEG Audio
Версия формата : Version 1
Профиль формата : Layer 2
Продолжительность : 28 м.
Вид битрейта : Постоянный
Битрейт : 384 Кбит/сек
Каналы : 2 канала
Частота : 48,0 КГц
Метод сжатия : С потерями
Задержка видео : -67 мс.
Размер потока : 78,3 Мбайт (3%)
____________________________________________
На этот файл надо наложить субтитры в формате SRT.
При попытке открыть его в Avid Liquid 7,2, Ликвид падает, в Премьере 5.5 не могу подобрать прессет проекта.
И как бы "уйти" от ручного вбивания субтитров, т.к. субы на английском языке под русскую речь.
Спасибо!

#2 DaLiV

DaLiV

    Спрашивайте только если не разберетесь сами.

  • Админы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2295 Сообщений:

Отправлено 19 Oct 2012 - 19:29

что то из серии (далее играться с параметрами):
ffmpeg -i input.mpeg -vcodec copy -acodec copy -i input.srt output.mkv -newsubtitle

#3 Arty

Arty

    Местный бродяга.

  • Админы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 5903 Сообщений:

Отправлено 19 Oct 2012 - 19:45

А он не AVC случайно ? FFDSHOW не стоит в системе ?

#4 YNUS

YNUS

    Y

  • Писатели
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2693 Сообщений:
  • место работы:

Отправлено 19 Oct 2012 - 20:43

Надо импортировать в файл титры *.str или переконвертировать файл с титрами из *.str?

#5 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 19 Oct 2012 - 21:06

Открыл в Ликвиде..., он падал при распаковке звука
Формат : MPEG Audio
Версия формата : Version 1
Профиль формата : Layer 2
распаковал мпег и звук переконвертировал в вав- все встало на таймлайн.
С субтитрами то же вспомнил как- виртуалдабовский плаг , но не могу открыть ссылку http://forum.videoed...showtopic=37533, свое же описание работы этого плага и настройки.

Надо импортировать в файл титры *.str или переконвертировать файл с титрами из *.str?

Нет, переконвертировать в ssa и виртуалдабовским фильтром накинуть на видео

#6 iliuxa

iliuxa

    я занят, позвоните попозже

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2660 Сообщений:
  • место работы:

Отправлено 19 Oct 2012 - 23:15

а можно было титры конвертнуть в формат для для карбона и в нем прожечь их на видео.

#7 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 20 Oct 2012 - 16:54

Илья!
Спасибо за помощь!

#8 YNUS

YNUS

    Y

  • Писатели
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2693 Сообщений:
  • место работы:

Отправлено 20 Oct 2012 - 18:35

Если контейнер mpg не критичен то можно обойтись без конвертации видео и сабов, собрать всё в ssa можно утилой tsmuxer через ремукс.
ЗЫ. Сори, выше очепятался, .str - srt.

Сообщение отредактировано YNUS: 20 Oct 2012 - 18:36


#9 Yuri_Teplo

Yuri_Teplo

    Сенсей для друзей по NLE

  • Писатели
  • PipPipPipPipPipPipPipPipPipPip
  • 1200 Сообщений:
  • место работы:

Отправлено 21 Oct 2012 - 13:10

а можно было титры конвертнуть в формат для для карбона и в нем прожечь их на видео.

поподробнее можно про это?Карбон ,насколько я понял некий XML понимает.Или я недоразобрался.Чем для него конвертить?

#10 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 21 Oct 2012 - 14:07

Я делал через Ликвидд +дабовский плаг для ЛЕ 7.2 в котором фильтры для титрования. Туда загружаются титры в ssa, но процесс очень долгий. и получить исходный размер тот еще головняк. Исходный файл- это портфолио одного из директоров TV-канала и должно было помещаться на флешку 2Гиг.
Илья предложил и сделал это все через Премьер за один час!(ото со скачиванием файла, просчета титров и обратной пересылкой).
Так что, с него и спрос! И респект и уважуха!

#11 iliuxa

iliuxa

    я занят, позвоните попозже

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2660 Сообщений:
  • место работы:

Отправлено 21 Oct 2012 - 14:59

тут путей именно пропечатать титры на картинку 2
1. загнать видео в премьер, титры конвертнуть в edl + картинки с альфой и вывести в мпег
2. конвертнуть титры в xml для карбона и из него вывести в видео
в первом случае титры конвертятся в в fab subtitle( можно было бы и в aaf, но премьер на него ругается)
во втором случае нужно просто сохранить титры из фаба в stl ebu и подгрузить их в карбон

#12 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 21 Oct 2012 - 15:14

FAB Subtitler v.5.19e? или есть по свежее?
И как переконвертировать?
Открыл субы srt в FAB Subtitler v.5.19e., ни save a , ни Export не работают, загреены.
Видео файл надо подсовывать?

Сообщение отредактировано Anatoliy A. Vorobey (sparrow): 21 Oct 2012 - 15:27


#13 Sergesha

Sergesha

    Пытаюсь объяснить другу о полях :)

  • Писатели
  • PipPipPipPipPipPipPip
  • 881 Сообщений:

Отправлено 21 Oct 2012 - 15:42

Попробуйте Aegisub. Самая всеядная и многоформатная из мною всреченных

#14 iliuxa

iliuxa

    я занят, позвоните попозже

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2660 Сообщений:
  • место работы:

Отправлено 21 Oct 2012 - 16:50

фаб есть и посвежее -7,10 помоему
видео не обязательно подсовывать

#15 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 22 Oct 2012 - 21:05

Некоторые выводы по методу предложенному Ильей:
В Adobe Premiere CS3 этот метод не работает!
Во- первых: после импорта файла EDL, файлы с расширением BMP появившиеся на таймлайне новой секвенции не возможно залинковать автоматом (т.е. выбрать в бине первый и последний +Shift-> Media Link), приходится в ручную.
Во-вторых: имеется какая то проблема с представлением BMP и альфа-канала именно в версии Adobe Premiere CS3 под WinXP и Adobe Premiere CS5.5.2 под MAC OS Х v.10.6.8
Файл субтитра закрывает видео, назначаешь инверсию альфы- титр пропадает, но видео появляется,это в CS3. В CS5.5- вообще все глухо- вместо титра черное поле, хотя в финдере титр показывает.
В- третьих: В Adobe Premiere CS6 под виндой- все работает прекрасно, проверенно на двух машинах.

По этой причине сохраняем субтитры в формате *.aaf -Adobe Premiere(AAF+32 bit TGA files with alpha)- это для CS3.
Импортируем *.aaf и дважды кликаем на нем. Откроется новая секвенция на тайм-лайне которой будут субтитры в виде графических файлов *.TGA. Копируем их все и вставляем в лейер секвенции содержащей исходное видео. Рендерим, все работает.

Ищется опробованная ссылка (в ПМ) на нормальный CS6 под MAC OS X для установления истины)))

#16 Tuuls

Tuuls

    бредущий к цели

  • Активные Участники
  • PipPipPipPipPipPipPip
  • 903 Сообщений:

Отправлено 22 Oct 2012 - 22:27

ffmpeg -i (исходник) vf ass=title.ass (выходной формат файла) (путь и имя файла)

http://ffmpeg.zerano...hilit=ass#p2304 - здесь конфигурация винды и файла fonts.conf

преобразовать титры в ass можно наверное в програмке Aegisub

#17 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 22 Oct 2012 - 23:40

ffmpeg -i (исходник) vf ass=title.ass (выходной формат файла) (путь и имя файла)

http://ffmpeg.zerano...hilit=ass#p2304 - здесь конфигурация винды и файла fonts.conf

преобразовать титры в ass можно наверное в програмке Aegisub

Не берусь утверждать, что полностью понял, то, что написано, но похоже через ffmpeg видео "склеивается" с субтитрами?

#18 Tuuls

Tuuls

    бредущий к цели

  • Активные Участники
  • PipPipPipPipPipPipPip
  • 903 Сообщений:

Отправлено 22 Oct 2012 - 23:46

именно , правда работает только с титрами формата .ass
и есть пара заморочек мелких , с добавлением в переменные среды винды путей к файлу конфигурации и шрифтам.

Но оно того стоит ;) можно титровать тыщи файлов в атоматическом режиме ;)

#19 Sergesha

Sergesha

    Пытаюсь объяснить другу о полях :)

  • Писатели
  • PipPipPipPipPipPipPip
  • 881 Сообщений:

Отправлено 22 Oct 2012 - 23:49

А в графическом PGS (.sup) титры не подойдут? Можно получить прогнав .srt через fsMuxer.

Сообщение отредактировано Sergesha: 22 Oct 2012 - 23:53


#20 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 23 Oct 2012 - 00:01

Мне кажется, что будет проблема в плане поправить тайминг титра.
В примере, который я описал, ВМР или TGA с субтитром стоят на таймлайне в верхнем лейере, его можно подвинуть, сократить или растянуть, в конечном итоге даже в титровалке исправить ошибки ИМХО. Т.е. учитывается "человеческий фактор" титровальщицы. Часто бывает, что титровальщики залезают субами на плашки с представлением "говорящей головы".
Ваши методы, мягко говоря слепые, если только вы сам не делаете субтитры.

#21 Tuuls

Tuuls

    бредущий к цели

  • Активные Участники
  • PipPipPipPipPipPipPip
  • 903 Сообщений:

Отправлено 23 Oct 2012 - 00:38

Толик , поставь Aegisub, посмотри как титровалки нормальные выглядят. Реально сильная прога для потоковых субтитров.
Не захочешь никаких тга-шек штамповать и двигать.

#22 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 23 Oct 2012 - 06:53

Толик , поставь Aegisub, посмотри как титровалки нормальные выглядят. Реально сильная прога для потоковых субтитров.
Не захочешь никаких тга-шек штамповать и двигать.

Титровалки- вопрос не моей зарплаты ))), прога действительно хорошая, правда ложка дегтя все же присутствует:
"не умеет делать сдвиг времени с монотонным наращиванием/уменьшением сдвига для правки скриптов к неправильно закодированному видео (или наоборот для подгонки скрипта от 'неправильного видео' к нормальному). Т.е. это когда кто-то умный перегоняет видео формата 25FPS в 23.976FPS кривыми руками увеличивая время фильма на 3% или наоборот. Такое, к сожалению ещё встречается и в этих случах приходится применять DSRT для SRT-субтитров или Subtitle Workshop для SSA (ASS), правда только если они в кодировке CP-1251."

Вопрос то не в том, в какой программе делать субтитры, а как их положить на видео и выгнать на дигибету.
Вариантов получилось пять - два под премьер, один под карбон, один под ликвид, один с ffmpeg, еще бы с FCP разобраться, и будет щастье!

#23 Tuuls

Tuuls

    бредущий к цели

  • Активные Участники
  • PipPipPipPipPipPipPip
  • 903 Сообщений:

Отправлено 23 Oct 2012 - 08:46

Коллекционер :)

#24 iliuxa

iliuxa

    я занят, позвоните попозже

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2660 Сообщений:
  • место работы:

Отправлено 23 Oct 2012 - 10:37

кстати тут вспомнилось что фаб в кооперации с деклинком умеет выгонять субтитры на бету на лету - только нужно 2 беты

Anatoliy A. Vorobey (sparrow)

а вот еще есть отличная прога lemony subtitle - она экспортирует субтитры в fcp xml - вроде тебе как раз то что надо. Да тот же фаб то же для fcp делает экспорт.

#25 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 23 Oct 2012 - 16:00

Ты делал?

#26 iliuxa

iliuxa

    я занят, позвоните попозже

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2660 Сообщений:
  • место работы:

Отправлено 23 Oct 2012 - 16:07

у меня нету мака и фсп

#27 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 25 Oct 2012 - 00:42

Поставил шестой премьер на мак. По твоей методе все прошло в лет 8-)).
Теперь надо разобраться с FCP.
FAB Subtitler предлагает два варианта:
1) конвертнуть в XML , при этом пишет-
You will be asked to select two files:

The XML file into which subttitles for FCP will be exported
The FCP XML template file which contains the font type that will be used

To create the FCP XML template file in FCP

Create a new sequence with a single text generator
Adjust this text generator's attributes (font,size,position)
Select just the secuence and export it as an XML version 1


2) создать MOV

В общем пока все ОК!
Всем спасибо!

#28 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 29 Oct 2012 - 23:38

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

Сообщение отредактировано Muhin: 29 Oct 2012 - 23:40


#29 Alf_Zetas

Alf_Zetas

    Вставляю своих 5 копеек

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 10887 Сообщений:

Отправлено 30 Oct 2012 - 14:20



#30 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 30 Oct 2012 - 14:41

конвертнёт в формат адобовской титровалки

Ответ не соответствует вопросу.

#31 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 31 Oct 2012 - 00:32

Альф, это всё очень здорово(и кстати давно опробовано), но скорее нет ), мазохизм какой-то...
да и фабсубтитлер мне гораздо более по душе, чем лемон.
причём и тот и другой стоят весьма прилично.

и ещё..., в том и дело, что иногда приходится править перевод прямо в процессе монтажа.

Malcev, спасибо за напоминание, всё никак не соберусь обратиться, надеялся адобовцы или плугинописатели таки озаботятся, ан нет :(

#32 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 31 Oct 2012 - 00:58

Знаешь, конвертор на автохотки написать - это час-два работы :)
Я б тебе сам его написал, но знаний не хватает.
Я могу скинуть свою часть уже готового кода, для вставки в xml премьеровских титров, останется только допилить парсинг вордовского документа.
И по-другому сделать рассчеты если тебе нужны субтитры в 2 строки.

#33 Alf_Zetas

Alf_Zetas

    Вставляю своих 5 копеек

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 10887 Сообщений:

Отправлено 31 Oct 2012 - 01:02

http://www.eztitles....premiere_plugin

#34 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 31 Oct 2012 - 01:43

вот те здрасте ) гуглить мы все горазды, эту ez-тину давно знаю, вот только ...EZTitles Plug-in puts all subtitles in just one single clip
Malcev, зачем парсить вордовский документ, если титры в простом txt, и таки да нужноб чтобы софтина умела и одну строку и две.

#35 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 31 Oct 2012 - 01:51

EZTitles Plug-in puts all subtitles in just one single clip

Но который зависит от инфы в твоем текстовом файле - то есть меняешь длительность либо текст в самом текстовом файле.
А запости пример этого текстового файла.

#36 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 31 Oct 2012 - 02:12

Касаемо текстового файла
вот примерно так:

ерунда эта ez..негибкая, да и над проектом
порой работают в разных местах..

иногда титры надо двигать вверх
чтобы подписать персону

или прочие надписи...
-- вопщем нето.

Колличество символов в одной строке
точно не скажу, 37-42.

кадр -- 1920х1080.

Сообщение отредактировано Muhin: 31 Oct 2012 - 02:18


#37 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 31 Oct 2012 - 02:19

Мне нужна точная структура текстового файла.
Чтобы понять как там разделения происходят между субтитрами в одну или 2 строки.
Смысл же такой, что скрипт этот документ парсит, разбивает на строки, которые впоследствии вставляет в нужные таги твоего шаблона титров.

Сообщение отредактировано Malcev: 31 Oct 2012 - 02:20


#38 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 31 Oct 2012 - 02:29

две строки -- ентер один раз(символ перевода строки)
две строки -- ентер один раз(символ перевода строки)
одна строка -- ентер один раз(символ перевода строки)
две строки -- ентер один раз(символ перевода строки)
и т.д.
строки разбиваются тем же ентером

главное чтобы премьер не валился
точнее допустим он импортнет тучу prtl, но будет ли он достаточно стабильно работать после
сохранения такого обилия чужеродно созданных prtl-ов в теле проекта.

и вот тут конечно, одиночный файл или секвенция картинок с альфой
выглядит как-то более надежно, зато теряется гибкость...

блин, натофтопал я в чужой теме.., вынести, чтоли в отдельный топик?

Сообщение отредактировано Muhin: 31 Oct 2012 - 02:42


#39 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 31 Oct 2012 - 02:37

Валиться премьер точно не будет, так как конвертация происходит без участия премьера :)
То есть титры идут так:

Мой дядя самых честных правил,
Когда не в шутку занемог,

Он уважать себя заставил
И лучше выдумать не мог.

Его пример другим наука;

Но, боже мой, какая скука
С больным сидеть и день и ночь,

И может ли быть в этих строчках больше максимально допустимого количества символов?
Или эти строчки тупо копируются без подсчета?

В общем заархивируй и залей
1) текстовый документ с субтитрами
2) премьеровский шаблон титра на 1 строку
3) премьеровский шаблон титра на 2 строки

Сообщение отредактировано Malcev: 31 Oct 2012 - 02:55


#40 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 31 Oct 2012 - 02:57

то что конвертация вне премьера и так понятно, я к то тому, что синтаксис полученного prtl == xml должен быть очень чистый(премьеровски правильный)
хоть и принцип-то простой взять шаблон и впихнуть между тегами текст

проф титровальщик-переводчик автоматом уже разбивает строки на нужное кол-во символов, 37-42 в одной строке

в принципе парсер текстового файла мне совсем несложно подправить(сам када-то писал, страшно вспомнить)

и да, ты правильно воспроизвел структуру

спасибо за поддержку!
завтра выложу все с работы..

Сообщение отредактировано Muhin: 31 Oct 2012 - 03:11


#41 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 31 Oct 2012 - 03:07

xml должен быть очень чистый(правильный)

Можешь не волноваться, мне скрипты писал модератор форума по автохотки.
Один из них похож на то, что тебе надо.
Он в зависимости от количества строк выбирает нужный шаблон.
В пртл меняется только
<TRString TXMarker=""Booyah"">.*?</TRString>
<TRString>.*?</TRString>
и <CharacterAttributes RunCount>
Ну и если нужно чтобы титр выравнивался по горизонтали, то
<Position>
и
<XPos>.*?</XPos>

точнее допустим он импортнет тучу prtl, но будет ли он достаточно стабильно работать после
сохранения такого обилия чужеродно созданных prtl-ов в теле проекта.
и вот тут конечно, одиночный файл или секвенция картинок с альфой
выглядит как-то более надежно, зато теряется гибкость...

Премьеру без разницы где эти пртл сделаны.
Год титрую 40-минутную еженедельную передачу, где-то 600-800 титров в проекте.
Глюков не наблюдал ни, что на двойке, ни на пятерке.

Сообщение отредактировано Malcev: 31 Oct 2012 - 03:44


#42 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 03 Nov 2012 - 14:52

Ну вот как-то так.
Скрипт парсит текстовый документ, убирает пустые строки вначале и в конце, если несколько подряд идет пустых строк превращает их в одну пустую.
Потом разделяет на субтитры (разделитель - пустая строка)
Text = E:\subtitri.txt	 ; заменить на файл с субтитрами в кодировке UTF-8
watchfolder = E:\TITRI\		 ; заменить на истинный путь к папке с будущими файлами титров (после запуска скрипта эта директория стирается и заново создается)
prtlPath = E:\TITRI_DO_NOT_DELETE\			; заменить на истинный путь к исходным файлам (шаблону), для одной строки должно быть название "1.ptrl" , для двух "2.ptrl" и т.д.
SetBatchLines, -1
FileEncoding, UTF-16
FileRemoveDir, %watchfolder%, 1
FileCreateDir, %watchfolder%
FileRead, str, %Text%
string := RegExReplace(Trim(str,"`r`n"), "\R[\R\s]+", "`n`n")
SubStrList := RegExSplit(string, "S)\n\n")
for index, substring in SubStrList
	string%A_Index% := substring, Lines%A_Index% := SymbCount(substring, "`n")+1
n := SubStrList.MaxIndex()
Loop % n
{
   String := string%A_Index%
   k := Lines%A_Index%
   FileRead, prtl, %prtlPath%\%k%.prtl
   XPos := 0
   Loop, parse, String, `n, `r
   {
	  if (A_LoopField = "")
						 Continue
	  StrLength := StrLen(A_LoopField ) + 1
	  XPos := RegExMatch(prtl, "<XPos>", "", XPos + 1)
	  prtl := RegExReplace(prtl, "<CharacterAttributes RunCount="".*?"""
							, "<CharacterAttributes RunCount=""" StrLength """"
							, "", 1, XPos - 1)					  
 
	  StringReplace, LoopField, A_LoopField, &, &amp;, 1
									  
	  if (k > 1)
	  {
		 k:=k-1
		 prtl := RegExReplace(prtl, "<TRString TXMarker=""Booyah"">.*?</TRString>"
							   , "<TRString TXMarker=""Booyah"">" LoopField "</TRString>"
							   , "", 1, XPos - 1)
	  }
	  Else
		 prtl := RegExReplace(prtl, "<TRString>.*?</TRString>"
							   , "<TRString>" LoopField "</TRString>")
	}
 
   FileName := "title" . SubStr("000", 1, -(StrLen(A_Index))) . A_Index . ".prtl"
   FileAppend, % prtl, %watchfolder%\%FileName%
}
 
Msgbox, Done
 
 
SymbCount(ByRef string, symb) {
	count := 0
	loop, Parse, string
		(A_LoopField == symb) && ++count
	return count
}
 
 
RegExSplit(ByRef in, delim = "") {
	pos := 0, start := 1, Obj := []
	while, pos := RegExMatch(in, delim, match, start)
		Obj.Insert(SubStr(in, start, pos - start)), start := pos + StrLen(match)
	Obj.Insert(SubStr(in, start))
	return Obj
}

Сообщение отредактировано Malcev: 03 Nov 2012 - 15:55


#43 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 05 Nov 2012 - 13:45

Решил сделать второй вариант скрипта, который субтитры расставляет по таймкодам в Премьере.
По такому шаблону.

00:00:00:00 - 00:00:02:00
Мой дядя самых честных правил,
Когда не в шутку занемог,

00:00:03:00 - 00:00:04:00
Он уважать себя заставил

00:00:05:00 - 00:00:08:00
И лучше выдумать не мог.

При использовании в премьере нужно отключить автосейв.
Text = E:\subtitri.txt		   ; заменить на файл с субтитрами в кодировке UTF-8
watchfolder = E:\TITRI\		   ; заменить на истинный путь к папке с будущими файлами титров (после запуска скрипта эта директория стирается и заново создается)
prtlPath = E:\TITRI_DO_NOT_DELETE\				 ; заменить на истинный путь к исходным файлам (шаблону), для одной строки должно быть название "1.ptrl" , для двух "2.ptrl" и т.д.
 
Msgbox, Не забудьте отключить автосейв в премьере!

EVENT_OBJECT_FOCUS := 0x8005
SetWinEventHook(EVENT_OBJECT_FOCUS, EVENT_OBJECT_FOCUS, 0, RegisterCallback("HookProc", "F"), 0, 0, 0)

SetBatchLines, -1
FileEncoding, UTF-16
FileRemoveDir, %watchfolder%, 1
FileCreateDir, %watchfolder%
FileRead, str, %Text%
string := RegExReplace(Trim(str,"`r`n"), "\R[\R\s]+", "`n`n")
SubStrList := RegExSplit(string, "S)\n\n")
for index, substring in SubStrList
	    string%A_Index% := substring, Lines%A_Index% := SymbCount(substring, "`n")+1
n := SubStrList.MaxIndex()
Loop % n
{
   String := string%A_Index%
   k := Lines%A_Index% - 1
   FileRead, prtl, %prtlPath%\%k%.prtl
   XPos := 0
   Loop, parse, String, `n, `r
   {  
		  if (A_Index = 1)
		  {
				 Timecode .= A_LoopField "`n"
				 Continue
		  }
		  if (A_LoopField = "")
				 Continue
 
		  StrLength := StrLen(A_LoopField ) + 1
		  XPos := RegExMatch(prtl, "<XPos>", "", XPos + 1)
		  prtl := RegExReplace(prtl, "<CharacterAttributes RunCount="".*?"""
													    , "<CharacterAttributes RunCount=""" StrLength """"
													    , "", 1, XPos - 1)									    
 
		  StringReplace, LoopField, A_LoopField, &, &amp;, 1
										  
		  if (k > 1)
		  {
				 k:=k-1
				 prtl := RegExReplace(prtl, "<TRString TXMarker=""Booyah"">.*?</TRString>"
														   , "<TRString TXMarker=""Booyah"">" LoopField "</TRString>"
														   , "", 1, XPos - 1)
		  }
		  Else
				 prtl := RegExReplace(prtl, "<TRString>.*?</TRString>"
														   , "<TRString>" LoopField "</TRString>")
	    }
 
   FileName := "title" . SubStr("000", 1, -(StrLen(A_Index))) . A_Index . ".prtl"
   FileAppend, % prtl, %watchfolder%\%FileName%
}
 
n:=1
TimecodesList := RegExReplace(Trim(Timecode,"`r`n"), " ", "")
Loop, parse, TimecodesList, `n, `r
{
   Timecodes = %A_LoopField%
   StringSplit, string, Timecodes, -
   varTimecode1 = % string1
   varTimecode2 =  % string2
 
   StringSplit, Timecode1Array, varTimecode1, :
   StringSplit, Timecode2Array, varTimecode2, :
 
 
   Digit4:
   if (Timecode2Array4 < Timecode1Array4)
   {
	    Timecode2Array4 += 25
	    Timecode2Array3 -= 1
	    DurationArray4 := Timecode2Array4 - Timecode1Array4
	    gosub, Digit3
   }
   if (Timecode2Array4 >= Timecode1Array4)
	    DurationArray4 := Timecode2Array4 - Timecode1Array4
 
   Digit3:
   if (Timecode2Array3 < Timecode1Array3)
   {
	    Timecode2Array3 += 60
	    Timecode2Array2 -= 1
	    DurationArray3 := Timecode2Array3 - Timecode1Array3
	    gosub, Digit2
   }
   if (Timecode2Array3 >= Timecode1Array3)
	    DurationArray3 := Timecode2Array3 - Timecode1Array3
	    
   Digit2:	  
   if (Timecode2Array2 < Timecode1Array2)
   {
	    Timecode2Array2 += 24
	    Timecode2Array1 -= 1
	    DurationArray2 := Timecode2Array2 - Timecode1Array2
	    gosub, Digit1
   }
   if (Timecode2Array2 >= Timecode1Array2)
	    DurationArray2 := Timecode2Array2 - Timecode1Array2
 
   Digit1:
   if (Timecode2Array1 < Timecode1Array1)
   {
	    msgbox, Timecode2Array1 %Timecode2Array1% < Timecode1Array1 %Timecode1Array1%
	    msgbox, The "Start" timecode cannot be less than the "End" timecode.
	    ExitApp
   }
   if (Timecode2Array1 >= Timecode1Array1)
	    {
			    DurationArray1 := Timecode2Array1 - Timecode1Array1
			    goto, EndProcess
	    }
 
   EndProcess:
   SetFormat, Float, 02.0
   Loop, 4
	    DurationArray%A_Index% += 0.0
   TitleDuration%n% = %DurationArray1%:%DurationArray2%:%DurationArray3%:%DurationArray4%
   StartTimecode%n% = % string1
   n++
}
 
 
WinActivate, Adobe Premiere Pro
WinWait, Adobe Premiere Pro
Send, +1^{vkBF}Subtitri^{vk49}   ; create bin, ^i
WinWait, Import ahk_class #32770
Send, c:{enter}
Sleep 400
Send, %watchfolder%{enter}
Sleep 400
Send, +{TAB 2}
Sleep 400
Send, ^{vk41}
Sleep 400
Send,{enter}
WinWaitClose, Import ahk_class #32770
WinWait, Import Files ahk_class #32770, , 0.6
WinWaitClose, Import Files ahk_class #32770
Sleep, 300
i := n - 1
Send, {up %i%}
loop % n - 1
{
   TitleDuration := TitleDuration%A_Index%
   StartTimecode := StartTimecode%A_Index%
   Send, {down}+4{TAB}%StartTimecode%{Enter}
   Sleep, 200
   Send, +1^{vk52} ; Ctrl+R
   WinWait, Clip Speed / Duration
   Send, {TAB}%TitleDuration%{Enter}
   WinWaitClose, Clip Speed / Duration
   Send, {vkBE} ;  .
   Sleep, 200
}
Msgbox, Done
exit
 
 
 
 
SymbCount(ByRef string, symb) {
	    count := 0
	    loop, Parse, string
			    (A_LoopField == symb) && ++count
	    return count
}
 
 
RegExSplit(ByRef in, delim = "") {
	    pos := 0, start := 1, Obj := []
	    while, pos := RegExMatch(in, delim, match, start)
			    Obj.Insert(SubStr(in, start, pos - start)), start := pos + StrLen(match)
	    Obj.Insert(SubStr(in, start))
	    return Obj
}
 
 
HookProc(hWinEventHook, event, hwnd, idObject, idChild, dwEventThread, dwmsEventTime)
{
   WinGetActiveTitle, Title
   if (Title = "Save Project")
   {
	  MsgBox, ERROR! Turn off Autosave.
	  ExitApp
   }
}
 
SetWinEventHook(eventMin, eventMax, hmodWinEventProc, lpfnWinEventProc, idProcess, idThread, dwFlags)
{
   return DllCall("SetWinEventHook" , UInt, eventMin
								    , UInt, eventMax
								    , Ptr, hmodWinEventProc
								    , Ptr, lpfnWinEventProc
								    , UInt, idProcess
								    , UInt, idThread
								    , UInt, dwFlags)
}

Сообщение отредактировано Malcev: 06 Nov 2012 - 22:30


#44 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 06 Nov 2012 - 02:40

при всём уважении, немного не понимаю, почему такая привязка для аутохоткей, а не на маломальски программерском языке, да хоть на бейсике) хоть на питоне, хоть на руби, ну си шарп пожалуй пропустим. неужели отладка и компиляция смущает?

Сообщение отредактировано Muhin: 06 Nov 2012 - 02:47


#45 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 06 Nov 2012 - 05:17

немного не понимаю, почему такая привязка для аутохоткей, а не на маломальски программерском языке,

Ну во-первых я не программист, а так балуюсь.
Там возьму, тут приплюсую, на форумах помогут...
Во-вторых все мои нужды касаются только автоматизации (сгон на фтп, архив, ютуб, имейл) и изменении "под себя" тех вещей, которые в премьере не устраивают.
А вот в этом Автохотки любому серьезному языку программирования фору даст.
Например во втором варианте скрипта расстановка титров по таймкодам происходит именно в премьере - шорткатами+вставкой значений из переменных..
Не так быстро, конечно, 1000 титров - 20 минут. Но быстрее, пожалуй, нельзя.
ЗЫ Код чутка подправил - вставил хук на проверку появления окна автосейва (Thanks teadrinker)

Сообщение отредактировано Malcev: 06 Nov 2012 - 22:34


#46 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 06 Nov 2012 - 15:17

согласен, аутохот и аутоит незаменимые )

#47 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 07 Nov 2012 - 07:57

Что-то я об edl не подумал.
Вот вариант, который создает edl-ку
Text = E:\subtitri.txt			; заменить на файл с субтитрами в кодировке UTF-8
watchfolder = E:\TITRI\		   ; заменить на истинный путь к папке с будущими файлами титров (после запуска скрипта эта директория стирается и заново создается)
prtlPath = E:\TITRI_DO_NOT_DELETE\ 	  ; заменить на истинный путь к исходным файлам (шаблону), для одной строки должно быть название "1.ptrl" , для двух "2.ptrl" и т.д.
EDL = E:\1.edl		  ;  заменить на путь к будущей edl (после запуска скрипта эта edl стирается и заново создается)
 
SetBatchLines, -1
FileEncoding, UTF-16
FileRemoveDir, %watchfolder%, 1
FileCreateDir, %watchfolder%
FileRead, str, %Text%
string := RegExReplace(Trim(str,"`r`n"), "\R[\R\s]+", "`n`n")
SubStrList := RegExSplit(string, "S)\n\n")
for index, substring in SubStrList
			string%A_Index% := substring, Lines%A_Index% := SymbCount(substring, "`n")+1
n := SubStrList.MaxIndex()
Loop % n
{
   String := string%A_Index%
   k := Lines%A_Index% - 1
   FileRead, prtl, %prtlPath%\%k%.prtl
   XPos := 0
   Loop, parse, String, `n, `r
   {  
				  if (A_Index = 1)
				  {
								 Timecode .= A_LoopField "`n"
								 Continue
				  }
				  if (A_LoopField = "")
								 Continue
 
				  StrLength := StrLen(A_LoopField ) + 1
				  XPos := RegExMatch(prtl, "<XPos>", "", XPos + 1)
				  prtl := RegExReplace(prtl, "<CharacterAttributes RunCount="".*?"""
																											, "<CharacterAttributes RunCount=""" StrLength """"
																											, "", 1, XPos - 1)																	  
 
				  StringReplace, LoopField, A_LoopField, &, &amp;, 1
																				  
				  if (k > 1)
				  {
								 k:=k-1
								 prtl := RegExReplace(prtl, "<TRString TXMarker=""Booyah"">.*?</TRString>"
																												   , "<TRString TXMarker=""Booyah"">" LoopField "</TRString>"
																												   , "", 1, XPos - 1)
				  }
				  Else
								 prtl := RegExReplace(prtl, "<TRString>.*?</TRString>"
																												   , "<TRString>" LoopField "</TRString>")
			}
 
   FileName := "title" . SubStr("000", 1, -(StrLen(A_Index))) . A_Index . ".prtl"
   FileAppend, % prtl, %watchfolder%\%FileName%
}
 
n:=1
TimecodesList := RegExReplace(Trim(Timecode,"`r`n"), " ", "")
Loop, parse, TimecodesList, `n, `r
{
   Timecodes = %A_LoopField%
   StringSplit, string, Timecodes, -
   varTimecode1 = % string1
   varTimecode2 =  % string2
 
   StringSplit, Timecode1Array, varTimecode1, :
   StringSplit, Timecode2Array, varTimecode2, :
 
 
   Digit4:
   if (Timecode2Array4 < Timecode1Array4)
   {
			Timecode2Array4 += 25
			Timecode2Array3 -= 1
			DurationArray4 := Timecode2Array4 - Timecode1Array4
			gosub, Digit3
   }
   if (Timecode2Array4 >= Timecode1Array4)
			DurationArray4 := Timecode2Array4 - Timecode1Array4
 
   Digit3:
   if (Timecode2Array3 < Timecode1Array3)
   {
			Timecode2Array3 += 60
			Timecode2Array2 -= 1
			DurationArray3 := Timecode2Array3 - Timecode1Array3
			gosub, Digit2
   }
   if (Timecode2Array3 >= Timecode1Array3)
			DurationArray3 := Timecode2Array3 - Timecode1Array3
			
   Digit2:		
   if (Timecode2Array2 < Timecode1Array2)
   {
			Timecode2Array2 += 24
			Timecode2Array1 -= 1
			DurationArray2 := Timecode2Array2 - Timecode1Array2
			gosub, Digit1
   }
   if (Timecode2Array2 >= Timecode1Array2)
			DurationArray2 := Timecode2Array2 - Timecode1Array2
 
   Digit1:
   if (Timecode2Array1 < Timecode1Array1)
   {
			msgbox, Timecode2Array1 %Timecode2Array1% < Timecode1Array1 %Timecode1Array1%
			msgbox, The "Start" timecode cannot be less than the "End" timecode.
			ExitApp
   }
   if (Timecode2Array1 >= Timecode1Array1)
			{
							DurationArray1 := Timecode2Array1 - Timecode1Array1 + 1
							goto, EndProcess
			}
 
   EndProcess:
   SetFormat, Float, 02.0
   Loop, 4
			DurationArray%A_Index% += 0.0
   TitleDuration%n% = %DurationArray1%:%DurationArray2%:%DurationArray3%:%DurationArray4%
   StartTimecode%n% = % string1
   EndTimecode%n% = % string2
   n++
}
 
EDLvar = TITLE: Sequence 01`n`n
Var = 000
SetFormat, float, 03.0
loop % n - 1
{
   StartTimecode := StartTimecode%A_Index%
   EndTimecode := EndTimecode%A_Index%
   TitleDuration := TitleDuration%A_Index%
   TitleName := "title" . SubStr("000", 1, -(StrLen(A_Index))) . A_Index . ".prtl"
   Var += 1.0
   EDLvar .= Var "  AX	   V	 C		01:00:00:00 " TitleDuration " " StartTimecode " " EndTimecode "`n* FROM CLIP NAME: " TitleName "`n`n"
}
FileDelete, %EDL%
FileAppend, % EDLvar, %EDL%, UTF-8
Msgbox, Done
ExitApp
 
 
 
 
SymbCount(ByRef string, symb) {
			count := 0
			loop, Parse, string
							(A_LoopField == symb) && ++count
			return count
}
 
 
RegExSplit(ByRef in, delim = "") {
			pos := 0, start := 1, Obj := []
			while, pos := RegExMatch(in, delim, match, start)
							Obj.Insert(SubStr(in, start, pos - start)), start := pos + StrLen(match)
			Obj.Insert(SubStr(in, start))
			return Obj
}

Сообщение отредактировано Malcev: 07 Nov 2012 - 07:59


#48 Muhin

Muhin

    не теряя ни секунды

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1793 Сообщений:

Отправлено 07 Nov 2012 - 14:07

Может стоит вынести в отдельную тему? Это ведь довольно востребовано. Скриптинг для Премьер Про?
И там уже обсуждать конкретные приёмы ускорения работы. Да и смежные темы, например автоматизация субтитрования.

#49 Malcev

Malcev

    Сенсей для друзей по NLE

  • Участники
  • PipPipPipPipPipPipPipPipPipPip
  • 1124 Сообщений:

Отправлено 08 Nov 2012 - 00:02

Ну это необязательно, а вот перенести 1-ый вариант скрипта и третий в отдельную темку по субтитрованию в премьере можно.
Так как на данный момент я считаю, что мой скрипт оптимальный из всех существующих.
А их-то всего 2. Через плагин к афтеру, что в принципе через ж.... Или через eztitles за 240 евро.
Который тоже имхо неудобен, да и через-чур дорог.
А в моем скрипте можно обрабатывать любые варианты субтитров.
Изменяешь знак делиметра и будет делить по-новому. :)

#50 Anatoliy A. Vorobey (sparrow)

Anatoliy A. Vorobey (sparrow)

    Широкопрофильный гуру по NLE

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2027 Сообщений:
  • место работы:

Отправлено 12 Dec 2012 - 12:40

кстати тут вспомнилось что фаб в кооперации с деклинком умеет выгонять субтитры на бету на лету - только нужно 2 беты

Anatoliy A. Vorobey (sparrow)

а вот еще есть отличная прога lemony subtitle - она экспортирует субтитры в fcp xml - вроде тебе как раз то что надо. Да тот же фаб то же для fcp делает экспорт.

"Продолжаем разговор" (с) Карлсон

 

Наверное я чего то не понимаю или не знаю...

Решил "добить субтитрование" в FCP 7.03 через импорт XML.

1)FAB Subtitler 7.01d  конвертирует субтитры *.srt в *.xml, но ему для "примера" нужен "опорный" *.xml полученный из текстового генератора FCP.

Вот здесь засада- у FCP несколько вариантов текстовых генераторов с расширенными настройками, но FAB Subtitler понимает XMLтолько из генератора ТЕХТ, самого простого, и субы получаются одноцветные, без "оконтовки" и сливаются с изображением.

 

2)Lemony Pro 4- так же может конвертировать субтитры в XML для FCP в двух вариантах- как текст, либо с графикой, но FCP при импорте выдает ошибку.

 

3)Subtitle Edit- конвертит в BDN XML\PNG- FCP его XML вообще не понимает и пишет, что данный XML нуждается в переводе.

 

4)Было опробованно множество вариантов и программ пока не натолкнулся на немецкую  Annotation_Edit.1.9.26.1.

Ну, просто сказка и к стати, что надо отметить- она рекомендует установить свой собственный генератор в FCP, на основе его сделать "опорный" XML со всеми красивостями и позиционированием, и прекрасно выполняет экспорт. По скольку это демо версия, получается XML с 15 субтитрами, найденные в инете версии при установке пишут, что срок действия этой версии истек и я не смогу сохранять результат и экспортировать в другие форматы. Таблетка, которая прилагается, и которая утверждает, что будет работать со всеми версиями, у меня не не помогла.

 

Хотелось бы прояснить ситуацию с так называемыми "штатными" средствами. То, что FAB Subtitler понимает XML только из самого простого текстового генератора- это баг или фича?

Подскажите\научите\ткните, что должно быть в XML что бы он открылся FCP?




0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей



Рейтинг@Mail.ru