|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.06.2015, 12:53 | #1 |
Пользователь
Регистрация: 17.10.2014
Сообщений: 17
|
Плавное изменение скорости воспроизведения видео
Есть задача - синхронизировать воспроизведение видео на нескольких компах. Один является мастером, остальные слейвы. Текущая позиция мастера забирается слейвами по сети - здесь никакой проблемы нет. Проблема встала при синхронизации. Предполагался следующий алгоритм:
- смотрим разницу текущих позиций мастера и слейва - если разница больше 1 секунды - делаем IMediaSeeking::SetPosition по позиции мастера - если разница меньше секунды - плавно меняем скорость воспроизведения от 0.7 до 1.5 в зависимости от разницы и аккуратно догоняемся до нулевой разницы - выставляем скорость 1.0 и идём синхронно с мастером И вот тут подкралась засада. Дело в том, что оказывается - при использовании для изменения скорости IMediaSeeking::SetRate в момент изменения скорости воспроизведение останавливается. И, соответственно, мастер успевает уйти вперёд. Причем время остановки сильно варьируется - у меня получалось от 5 до 15 кадров. То есть просто откатиться чуть вперёд на фиксированное количество кадров, чтобы компенсировать задержку - не получится. Есть ли какой-то способ изменить скорость воспроизведения мгновенно (на лету)? Или какие другие идеи? Воспроизводить покадрово из буфера не предлагать, так как видео идёт со звуком и нормально это организовать не получится ни черта. |
27.06.2015, 20:07 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Нужно делать проверку через сервер на позицию воспроизведения, то есть клиенты примерно каждые 5 сек опрашивают сервер на позицию видео, на сервере тоже видео должно идти для синхронности и когда есть разница то клиент меняет позицию, я так для музыки у себя на работе делал вроде норм, они потом синхронно идут. Сервер клиентам отправляет номер позиции.
Но предварительно видео кэшируется на клиентах, у меня для музыки весь файл качался, а потом начинал играть с той позиции что на сервере. Последний раз редактировалось Aliens_wolfs; 27.06.2015 в 21:15. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Плавное изменение размеров панелей | Xo66um | Общие вопросы Delphi | 7 | 04.06.2013 09:26 |
Плавное изменение цвета панели (Delphi) | Andrey_RTF | Помощь студентам | 2 | 27.05.2012 15:47 |
Плавное изменение размера формы | TaTT DoGG | Общие вопросы .NET | 5 | 31.03.2010 16:53 |
воспроизведения видео с хостинга | designer999 | Мультимедиа в Delphi | 5 | 24.02.2010 11:29 |
проблемы воспроизведения видео | _Solomon_ | HTML и CSS | 0 | 20.04.2007 08:50 |