Я хотел бы объединить текстовый файл 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. Если требуется какое-либо дальнейшее объяснение, пожалуйста, просто спросите. Основная проблема, с которой я сталкиваюсь - это выяснить, с чего начать. Хотя я могу обернуться, манипулируя одной строкой текста внутри одного файла программным способом, я немного озадачен тем, как управлять множеством строк между несколькими файлами.
Заранее всем спасибо.