Этот вопрос связан с другим вопросом @ SuperUser .
Я хочу загрузить TED Talks и соответствующие субтитры для просмотра в автономном режиме, например, давайте возьмем этот короткий разговор Ричарда Сент-Джона , URL-адрес для загрузки видео высокого разрешения является следующим:
http://www.ted.com/talks/download/video/5118/talk/70
И соответствующие английские субтитры в кодировке JSON можно скачать по адресу:
http://www.ted.com/talks/subtitles/id/70/lang/eng
Вот исключение из начала фактических субтитров:
{"captions":[{"content":"This is really a two hour presentation I give to high school students,","startTime":0,"duration":3000,"startOfParagraph":false},{"content":"cut down to three minutes.","startTime":3000,"duration":1000,"startOfParagraph":false},{"content":"And it all started one day on a plane, on my way to TED,","startTime":4000,"duration":3000,"startOfParagraph":false},{"content":"seven years ago."
И с конца подзаголовка:
{"content":"Or failing that, do the eight things -- and trust me,","startTime":177000,"duration":3000,"startOfParagraph":false},{"content":"these are the big eight things that lead to success.","startTime":180000,"duration":4000,"startOfParagraph":false},{"content":"Thank you TED-sters for all your interviews!","startTime":184000,"duration":2000,"startOfParagraph":false}]}
Я хочу написать приложение, которое автоматически загружает версию видео с высоким разрешением и все доступные субтитры, но мне очень трудно, так как Мне нужно конвертировать субтитры в (VLC или любой другой приличный видеоплеер) совместимый формат (.srt или .sub - мой первый выбор) , и я не знаю, какие клавиши startTime
и duration
в JSON файл представляет .
Что я знаю до сих пор это:
- Загруженное видео длится 3 минуты и 30 секунд и имеет 29 FPS = 6090 кадров .
startTime
начинается с 0 с duration
3000 = 3000
startTime
заканчивается на 184000 с duration
2000 = 186000
Также стоит обратить внимание на следующий фрагмент Javascript:
introDuration:16500,
adDuration:4000,
postAdDuration:2000,
Так что мой вопрос в том, какую логику я должен применить к преобразованию значений startTime
и duration
в формат .srt :
1
00:01:30,200 --> 00:01:32,201
MEGA DENG COOPER MINE, INDIA
2
00:01:37,764 --> 00:01:39,039
Watch out, watch out!
или в .sub-совместимый формат :
{FRAME_FROM}{FRAME_TO}This is really a two hour presentation I give to high school students,
{FRAME_FROM}{FRAME_TO}cut down to three minutes.
Может кто-нибудь помочь мне с этим?
Нинь Буй прибил его, формула следующая:
introDuration - adDuration + startTime ... introDuration - adDuration + startTime + duration
Этот подход позволяет мне конвертировать напрямую в формат .srt (не нужно знать длину и FPS) двумя способами:
00:00:12,500 --> 00:00:15,500
This is really a two hour presentation I give to high school students,
00:00:15,500 --> 00:00:16,500
cut down to three minutes.
И
00:00:00,16500 --> 00:00:00,19500
And it all started one day on a plane, on my way to TED,
00:00:00,19500 --> 00:00:00,20500
seven years ago.