Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.01.2009, 14:36
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 1  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Post Механизм отображения субтитров

Здравствуйте, возник вопрос: есть ли что-нибудь во Flex для отображения и синхронизации субтитров или что-нибудь, что облегчит процесс написания своего механизма?

Старый 14.01.2009, 14:46
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Есть CuePoint-ы для видео, которые можно задать массивом. Соответственно, пишем простой скрипт преобразования файла субтитров в нужный нам формат, и отображаем. Либо генерируем xml из файла субтитров, и расставляем cuepoint-ы на стадии кодирования. Проблема в том, что в в mpeg-видео, которые выглядит намного качественнее, субтитры не встраиваются, а синхронизация происходит по тайперу, что плохо сказывается на ее качестве.
__________________
4am is time to rock

Старый 14.01.2009, 15:23
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 3  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
1. А что значит "в mpeg-видео субтитры не встраиваются"? А куда встраиваются? В flv?
2. А чем плохо отображение по таймеру? Можно использовать таймер + netStream.time и всё будет точно. В чём беда?
3. На перспективу, есть еще hXMP
4. Самый волнующий вопрос: а как реализовать мультиязычные субтитры? Все равно ведь XML (вот титлы ютьюба).
__________________
#define true false //счастливой отладки, друзья

Старый 14.01.2009, 15:33
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 4  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Если уже самому делать, то использовать playheadUpdate и синхронизировать по этому времени. Титры хранить в XML в формате, что то типа:
Код:
<subtitle text="первый субтитр" time="00:00:00.00" />
Ну это я так думаю)))
Хотелось бы узнать, может кто уже изобрел велосипед?

Старый 14.01.2009, 15:33
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 5  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
1. Да, в flv встраиваются cuepoint-ы с произвольными текстовыми данными.
2. Просто меньше точность, чем родной механизм в flv.
4. Завести атрибут в xml, прописать там язык, сложить все субтитры в один xml и отображать нужный язык. Либо несколько xml и грузить нужный. 1ое лучше тем, что в рантайме переключается моментально, но грузяться субтитры для всех языков в этом случае.

Цитата:
Хотелось бы узнать, может кто уже изобрел велосипед?
есть xml-ный формат субтитров - usf. Можно по его спецификации сделать.
__________________
4am is time to rock


Последний раз редактировалось DarkLight; 14.01.2009 в 15:36.
Старый 14.01.2009, 15:45
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 6  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Под велосипедом я имел не организацию XML файла, распарсить можно все что угодно, а еще какой-нибудь механизм для субтитров Может класс есть какой во флексе?

Это что же получается? На каждый playheadUpdate (по умолчанию, интервал вроде 250 мс) мы должны перебирать в цикле весь массив субтитров и искать между какими временными значениями субтитров он находится и что сейчас показывать? А если субтитров тысячи? О_о


Последний раз редактировалось marat_sa; 14.01.2009 в 15:56.
Старый 14.01.2009, 16:03
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 7  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Нет, загрузить субтитры, распарсить и скормить CuePointManager-у
__________________
4am is time to rock

Старый 15.01.2009, 08:20
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 8  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Начал делать - возник вопросик:
содаем экземпляр CuePointManager. В качестве первого параметра в него передается owner:VideoPlayer, а у меня видео проигшрывается через кастмный компонент-плеер на базе VideoDisplay. Этот VideoPlayer должен лежать вроде по адресу mx.controls.videoClasses.VideoPlayer, но у меня в пакете videoClasses только 2 класса CuePointManager и VideoError.
Откуда взять этот класс и как привести VideoDisplay к нему???

Старый 15.01.2009, 12:27
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 9  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
let me google this for you:
http://blog.goosepoopproductions.com...uepointmanager
__________________
#define true false //счастливой отладки, друзья

Старый 16.01.2009, 08:59
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 10  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Спасибо, отличная статья!
Но субтитры выводяться (событие CuePointEvent вызывается) только при прохождении "головки" проигрывателя непосредственно "через точку". А как быть в случае перемотки (изменения значения playheadTime)? Надо чтобы выводились субтитры, соответствующие последней ближайшей cuePoint из manager'a. Надо подписывать плеер на rewind и в нем бежать по всем точкам, сравнивая их значение с playheadTime? В таком случае не намного мы упростили поставленную задачу(((

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.