Я хотел бы объединить текстовый файл EDL (изменить список решений) с другим текстовым файлом, содержащим субтитры. EDL создается из программы редактирования видео Final Cut Pro, а текстовый файл - обычный текст. Хотя этот конкретный запрос предназначен для конкретного конечного использования, я хотел бы узнать общий метод, который можно использовать для выполнения такого рода обработки. Я знаком с Python, но вполне нормально с примерами на других языках, если они понятны и удобны в использовании на рабочей станции UNIX/Mac.Согласование и слияние текстовых файлов программно
Вот пример нескольких первых строк файла EDL:
TITLE: SAMPLE EDL
FCM: NON-DROP FRAME
001 GEN V C 00:01:03:16 00:01:04:29 01:00:03:06 01:00:04:19
* FROM CLIP NAME: TITLE 3D
* COMMENT:
* FROM CLIP IS A GENERATOR
002 GEN V C 00:01:04:15 00:01:08:03 01:00:04:29 01:00:08:17
* FROM CLIP NAME: TITLE 3D
* COMMENT:
* FROM CLIP IS A GENERATOR
003 GEN V C 00:01:04:15 00:01:09:05 01:00:10:19 01:00:15:09
* FROM CLIP NAME: TITLE 3D
* COMMENT:
* FROM CLIP IS A GENERATOR
004 GEN V C 00:01:04:15 00:01:07:03 01:00:17:17 01:00:20:05
* FROM CLIP NAME: TITLE 3D
* COMMENT:
* FROM CLIP IS A GENERATOR
Вот пример из четырех «компаньонов» строк из текстовых субтитров файла:
001
If we think about climate change,
002
most of society's focused on fossil fuel combustion.
003
But what humans release on an annual basis is just one part of the carbon cycle.
004
Carbon dioxide concentrations also go up and down
Последняя , вот пример желаемого конечного результата:
[00:00:03.06]
If we think about climate change,
[00:00:04.19]
[00:00:04.29]
most of society's focused on fossil fuel combustion.
[00:00:08.17]
[00:00:10.19]
But what humans release on an annual basis is just one part of the carbon cycle.
[00:00:15.09]
[00:00:17.17]
Carbon dioxide concentrations also go up and down
[00:00:20.05]
Глядя на пример EDL-файла, им ВАЖНЫ биты текста являются:
- Номер строки т.е.
001
002
003
... Третьих и четвертых столбцов чисел таймкода т.е.
01:00:03:06 01:00:04:19 01:00:04:29 01:00:08:17 01:00:10:19 01:00:15:09
Из субтитров текстового файла , номер строки соответствует номеру строки в файле EDL. Это взаимно однозначное совпадение без смещений или пробелов в последовательности. Каждая строка текста должна идти в нужный конечный результат как целая строка без разрывов строк.
Конечный результат по существу сэндвичит каждую пронумерованную линию текста субтитров между первым и вторым номерами временного кода. Числа таймкода также должны быть немного переформатирована:
- Вокруг каждого набора в квадратных скобках, т.е.
[]
- Убедившись, что первый набор чисел (в часах) обнуляют т.е.
01:00:03:06
становится00:00:03:06
и07:06:15:22
становится00:06:15:22
- Последнее двоеточие «
:
» (до номера кадра) преобразуется в период «.
» т.е.00:00:03:06
становится00:00:03.06
И это в значительной степени. В текстовом файле субтитров может быть от 100 до 120 строк текста и соответственно 100-120 «решений» в текстовом файле EDL. Если требуется какое-либо дальнейшее объяснение, просто спросите. Основная проблема, с которой я сталкиваюсь, - это выяснить, как начать с этого. Хотя я могу обернуть голову, манипулируя одной строкой текста в одном файле программным образом, я немного смущен тем, как управлять множеством строк между несколькими файлами.
Заранее благодарен всем.
https://pypi.python.org/pypi/edl – d3vid