Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Здравствуйте. Подскажите пожалуйста, а правильно ли создавать постоянно таймер (каждые 200 милисекунд). Мне нужен таймер, а не интервал именно для того, чтобы запросы шли один за другим. Т.е. отправил запрос, получил ответ, следующий.

Вот код для понимания:
setTimeout(startVideo, 150);

function startVideo() {
      if(!video) {
        return;
      }

      $.ajax({
        type: "POST",
        dataType: "HTML",
        response:'text',
        url: "videoClient.htm",
        success: function(data) {
          if(data!='') {
            $("#target").attr("src",data);
          }

          setTimeout(startVideo, 150);
        }
      });
    }
6 янв 19, 13:43    [21779098]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Меня интересует не будет ли каких то утечек памяти или нагрузки на процессор чрезмерной от такого создания. Спасибо.
6 янв 19, 13:45    [21779100]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

это нагрузка на сервер, если его будут бомбить запросами каждые 200мс десятки клиентов.
6 янв 19, 13:56    [21779103]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
stim644,

с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой.

но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах? Картинка с другого сайта.
7 янв 19, 02:44    [21779312]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Compositum
Member

Откуда: Санкт-Петербург
Сообщений: 5939
stim644,

Движок JavaScript использует однопоточную модель (single-thread). Фрагменты кода (задания), подлежащие выполнению, помещаются в очередь заданий. Задания последовательно выполняются одно за другим. В каждый конкретный момент времени может выполняться только одно задание. Вызов функции setTimeout() приводит к тому, что вызов обозначенной в её первом параметре функции по истечении заданного интервала так же будет помещён в очередь заданий. Если выполнение функции занимает ощутимое время, то web-приложение "зависает", т.к. пока это задание не будет завершено, другие задания не смогут начать работу.

Возможно вам имеет смысл создать отдельный Worker и подобного рода взаимодействие с сервером выполнять в нём. Worker работает в отдельном потоке (thread), т.е. его код выполняется параллельно с теми заданиями, которые находятся в очереди заданий. Каждый раз, как на стороне кода, выполняемого в Worker происходит отправка сообщения (как правило - это происходит посредством функции postMessage()) - на стороне кода, создавшего экземпляр Worker планировщик заданий помещает в очередь заданий функцию, которую вы предварительно назначили свойству onmessage. Передаваемые данные из/в Worker содержатся в свойстве data. Для упрощения, можно выполнить декомпозицию свойства:

myWorkerInstance.onmessage = ({data}) => {
  /* здесь ваш код обработки результата, полученного с сервера */
};


Если вы никогда ранее не работали с Web Workers - это не беда. Механизм передачи данных в Worker и извлечения их обратно - один и тот же: postMessage/onmessage. Это сильно упрощает кривую обучения. Научиться вполне уверенно использовать Web Worker можно за день: например, по этой книге (обратите внимание на количество её страниц - 60). Собственно по ней я и изучал Web Workers.
7 янв 19, 12:53    [21779366]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Zoria
Member

Откуда:
Сообщений: 14201
hVostt
stim644,

с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой.

но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах? Картинка с другого сайта.

кстати. а как нынче модно делать чаты?
7 янв 19, 18:07    [21779519]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
Zoria
кстати. а как нынче модно делать чаты?
websocket
7 янв 19, 18:10    [21779520]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
Zoria
кстати. а как нынче модно делать чаты?
websocket

Тут я делаю не чат, а пересылаю видео) Каждые 200 милисекунд и я кстати обнаружил, что отправка base64 данных вместо отправки blob через websockets гораздо легче) Не знаю правильно это или нет =)

Т.е. получается создание таким образом таймера сильно грузит процессор?
7 янв 19, 21:31    [21779622]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
что отправка base64 данных вместо отправки blob через websockets гораздо легче)
единственно base64 на 33,3% длиннее .....
и у тебя не ws , а ajsx....
7 янв 19, 21:46    [21779629]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26479
stim644,


что значит грузит? Вам же написали про однопоточность, вот и думайте.
7 янв 19, 21:46    [21779630]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26479
stim644,

и что означает "гораздо легче"?
7 янв 19, 21:52    [21779635]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
skyANA
stim644,

и что означает "гораздо легче"?


Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно)
Но факт остается фактом, как только я сменил с вебсокетов на ajax, то картинка стала шустрее показываться...
7 янв 19, 22:02    [21779639]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
По поводу workerа спасибо, почитаю
7 янв 19, 22:03    [21779640]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно)
base64 меньшего объёма?
7 янв 19, 22:04    [21779642]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

что за сравнение мягкого с солёным?
7 янв 19, 22:06    [21779646]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
stim644
Тут я делаю не чат, а пересылаю видео


WebRTC не хотите попробовать?
8 янв 19, 01:51    [21779707]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
hVostt
stim644
Тут я делаю не чат, а пересылаю видео


WebRTC не хотите попробовать?
+1 аффтар, поищите готовый протокол повыше http.
8 янв 19, 13:56    [21779859]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя,

да, наверно не правильно посчитал)
8 янв 19, 18:34    [21780041]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?
8 янв 19, 18:41    [21780044]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?
смотря для чего. если просто дергать ajax-сом сервер для выяснения появились ли данные, или просто их получать их через ws при поступлении новых данных - то разница заметная.
ws бинарные данные передавать, а ajax?
8 янв 19, 19:01    [21780051]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
stim644
hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?

А где у вас в треде требуемая нагрузка в попугаях?
8 янв 19, 21:38    [21780102]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
stim644
hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?


Технологий для потокового видео вагон: HLS, MSE-LD, MPEG-DASH, RTMP, HTTP MPEG-TS, HDS

Зачем тут вебсокет? Ну может если вы хотите видео конференцию со звонками, чатом, блекджеком и ш. Для видео-то нафига? Вы там серию джипегов, что ли, отдаёте? Ничего не понимаю.
9 янв 19, 03:27    [21780194]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
stim644
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?


Если в отрыве от постановки задачи, то: зависит от...
9 янв 19, 03:28    [21780195]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Изопропил
Member

Откуда:
Сообщений: 31124
вадя
ws бинарные данные передавать, а ajax?

в какая разница бинарные или текстовые?
9 янв 19, 08:57    [21780261]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
Изопропил
вадя
ws бинарные данные передавать, а ajax?

в какая разница бинарные или текстовые?

в трафике - 33.3%
9 янв 19, 09:28    [21780273]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
hVostt
Вы там серию джипегов, что ли, отдаёте?
))) именно.
Потоковое видео наверно по кадрам без компрессии
автор
чтобы запросы шли один за другим
))
9 янв 19, 10:04    [21780291]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Собственно говоря конференцию и делаю)
9 янв 19, 12:20    [21780441]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
stim644
Собственно говоря конференцию и делаю)
получилось увидеть видео стрим test.mp4 с сервера?
9 янв 19, 12:25    [21780452]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,
ну можно делать вообще без запроса к серверу...
просто по ws в темпе получения видео рассылать по ws клиентам
9 янв 19, 14:55    [21780627]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Petro123
stim644
Собственно говоря конференцию и делаю)
получилось увидеть видео стрим test.mp4 с сервера?

Не совсем понял о чем вы. Буду признателен за какую то ссылку.
9 янв 19, 22:24    [21781076]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644,
ну можно делать вообще без запроса к серверу...
просто по ws в темпе получения видео рассылать по ws клиентам

Это как с помощью web sockets сделать без запроса к серверу? =)
Вот например пример с запросом к серверу на java http://javawebsocketsvideo.blogspot.com/2013/12/webcam-live-video-streaming-with.html
9 янв 19, 22:26    [21781078]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644,
ну можно делать вообще без запроса к серверу...
просто по ws в темпе получения видео рассылать по ws клиентам

А... От браузера к браузерам клиентов? Так сколько же траффика съестся отправлять например хотябы 10 слушателям...
9 янв 19, 22:28    [21781080]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
stim644
Не совсем понял о чем вы. Буду признателен за какую то ссылку.
ну вы уже сами дали ссылку)
9 янв 19, 23:07    [21781101]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
вадя
stim644,
ну можно делать вообще без запроса к серверу...
просто по ws в темпе получения видео рассылать по ws клиентам

А... От браузера к браузерам клиентов? Так сколько же траффика съестся отправлять например хотябы 10 слушателям...

а по запросам ajax тем же 10 клиентам - будет меньше?
от браузера к браузеру???
10 янв 19, 06:21    [21781179]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Запрос флага один байт это ничто.
Ты лучше спроси зачем вообще таймер.
Потоковое видео это не чат. Плейер то на клиенте.
10 янв 19, 07:21    [21781197]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644
пропущено...

А... От браузера к браузерам клиентов? Так сколько же траффика съестся отправлять например хотябы 10 слушателям...

а по запросам ajax тем же 10 клиентам - будет меньше?
от браузера к браузеру???

Так я же на сервер все гоню) А там уже клиенты делают запросы на сервак.
10 янв 19, 10:29    [21781314]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Petro123
вадя,
Запрос флага один байт это ничто.
Ты лучше спроси зачем вообще таймер.
Потоковое видео это не чат. Плейер то на клиенте.

Имеете в виду про интервал и простановку флага?
10 янв 19, 10:30    [21781318]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
stim644,
Я не врубаюсь в задачу.
Гадаем на кофе или стеклянном шаре.
10 янв 19, 11:08    [21781353]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
Petro123
Запрос флага один байт это ничто.
ajax кроме полезных данных навешивает ещё кучу служебных....
stim644
Так я же на сервер все гоню)
что гонишь? видео с клиентов - это одно.

stim644
А там уже клиенты делают запросы на сервак.
а нафига клиентам делать запросы на сервак? когда сервак может сам рассылать клиентам ?

вообще надо посмотреть как происходит раздача видео с помощью blob, вот только это идёт с использованием ajax и данные идут в base64, заменив на ws и бинарные данные - можно ускорить процесс.
10 янв 19, 12:03    [21781405]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
Petro123
Запрос флага один байт это ничто.
ajax кроме полезных данных навешивает ещё кучу служебных....


Всё верно. Однако "куча служебных" это целый прикладной протокол, который уже разработан, много лет как работает и отлажен, имеет поддержку сотен тысяч инструментов и библиотек, что многократно окупает все расходы на доп. информацию при пересылке.


вадя
от браузера к браузеру???


это позволяет делать WebRTC, чего не позволяет делать веб сокет :)
10 янв 19, 12:11    [21781413]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
с использованием ajax и данные идут в base64


с использованием AJAX также можно слать бинарные данные
10 янв 19, 12:12    [21781414]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
hVostt
Однако "куча служебных" это целый прикладной протокол, который уже разработан, много лет как работает и отлажен, имеет поддержку сотен тысяч инструментов и библиотек, что многократно окупает все расходы на доп. информацию при пересылке.
только не надо это сувать где надо и не надо.
hVostt
это позволяет делать WebRTC, чего не позволяет делать веб сокет :)
разные предназначения. и ТС вроде отказался от WebRTC.
hVostt
с использованием AJAX также можно слать бинарные данные
можно, но только почему-то не используется....
hVostt
имеет поддержку сотен тысяч инструментов и библиотек
ни кто не требует переделки работающего.
10 янв 19, 12:54    [21781488]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Petro123
stim644,
Я не врубаюсь в задачу.
Гадаем на кофе или стеклянном шаре.

Собственно разрабатываю платформу для вебинаров. Где один человек вещает, а остальные слушают.
10 янв 19, 15:16    [21781728]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя,

web rtc идеально подходит для peer to peer. Т.е. где общается один с одним. Но когда один вещает многим... То нужно уже строить дерево между слушателями, где будет цепочка. И при увеличении слушателей увеличивается цепочка и будет все тормозить.
10 янв 19, 15:18    [21781736]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,
такие системы уже есть...
но и разработать свою - есть смысл .

stim644
Где один человек вещает, а остальные слушают.
такая постановка упрощает задачу
ws как раз и может в этом помочь
сервер снимает поток с камеры и раздаёт его через ws всем подключенным клиентам.
никаких запросов от клиентов не требуется.
темп получения потока от камеры = темпу выдачи клиентам
10 янв 19, 15:26    [21781751]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Сейчас у меня так работает:
Код того кто вещает на клиенте:

screenSharingStreamInterval = setInterval(
                    function () {
                        ctx.drawImage(video, 0, 0, windowWidth, windowHeight);
                        var data = canvas.get()[0].toDataURL('image/jpeg', imageQualityScreenSharing);

                        $.ajax({
                            type: "POST",
                            dataType: "HTML",
                            data: "data=" + data + "&roomId=" + currentWebinarRoomId,
                            response:'text',
                            url: "screenSharing.htm",
                            success: function(data) {

                            }
                        });
                    }, 200);


Сервер, который принимает данные от того кто вещает:
@RequestMapping(value = "/video.htm", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<String> video(ModelMap model,HttpSession session,HttpServletRequest request,
                                                HttpServletResponse response)
            throws ServletException, IOException {

        String data =  Util.trim((String) request.getParameter("data"));
        String roomId =  Util.trim((String) request.getParameter("roomId"));

        data = data.replace(" ", "+");

        Base64Val value = Util.videoMap.get(roomId);
        if(value==null) {
            value = new Base64Val(data);
            Util.videoMap.put(roomId, value);
        } else {
            value.setValue(data);
        }

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "text/html; charset=utf-8");
        ResponseEntity<String> entity = new ResponseEntity<String>("",
                headers, HttpStatus.OK);
        return entity;
    }



Сервер, который отдает данные слушателям:
@RequestMapping(value = "/videoClient.htm", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<String> videoClient(ModelMap model,HttpSession session,HttpServletRequest request,
                                              HttpServletResponse response)
            throws ServletException, IOException {

        String data = video!=null ? video.getValue() : "";

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "text/html; charset=utf-8");
        ResponseEntity<String> entity = new ResponseEntity<String>(data,
                headers, HttpStatus.OK);
        return entity;
    }


Код слушателей на клиенте:
function startVideo() {
			if(!video) {
				return;
			}

			$.ajax({
				type: "POST",
				dataType: "HTML",
				response:'text',
				url: "videoClient.htm",
				success: function(data) {
					if(data!='') {
						$("#target").attr("src",data);
					}

					setTimeout(startVideo, 150);
				}
			});
		}
10 янв 19, 15:29    [21781762]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644,
такие системы уже есть...
но и разработать свою - есть смысл .

stim644
Где один человек вещает, а остальные слушают.
такая постановка упрощает задачу
ws как раз и может в этом помочь
сервер снимает поток с камеры и раздаёт его через ws всем подключенным клиентам.
никаких запросов от клиентов не требуется.
темп получения потока от камеры = темпу выдачи клиентам


Сначала так и сделал. Ссылку выше скинул.
http://javawebsocketsvideo.blogspot.com/2013/12/webcam-live-video-streaming-with.html

Но текущий способ работает быстрее...
10 янв 19, 15:30    [21781765]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

там canvas, этим всё сказано
10 янв 19, 15:37    [21781777]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

посмотри как работает youtube, когда трансляция идет с использование blob.
10 янв 19, 15:47    [21781793]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

https://html5css.ru/tags/ref_av_dom.php
10 янв 19, 16:00    [21781813]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
ws как раз и может в этом помочь
сервер снимает поток с камеры и раздаёт его через ws всем подключенным клиентам.


ни в коем случае. для потокового видео уже есть решения и протоколы, я список привёл.
11 янв 19, 04:09    [21782362]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
темп получения потока от камеры = темпу выдачи клиентам


нет. проколы для передачи видеопотока учитывают возможность потери кадров при ухудшении соединения, которые будут достраиваться на клиенте, динамический битрейт и дофига всего. это небудет работать на ws, просто потому что задачи другие.

не нужно. оставьте в покое ws.
11 янв 19, 04:11    [21782363]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Изопропил
Member

Откуда:
Сообщений: 31124
вадя
hVostt
с использованием AJAX также можно слать бинарные данные
можно, но только почему-то не используется....

тобой не используется?
11 янв 19, 05:49    [21782367]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
hVostt
нет. проколы для передачи видеопотока учитывают возможность потери кадров при ухудшении соединения, которые будут достраиваться на клиенте, динамический битрейт и дофига всего. это небудет работать на ws, просто потому что задачи другие.
есть такое
<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

передаётся в текстовом виде
11 янв 19, 07:51    [21782393]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя,
Опять про сокеты?
Картинка с другого сайта.
11 янв 19, 08:31    [21782403]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
Petro123,

какой даты схема?
11 янв 19, 08:44    [21782414]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
Petro123,

какой даты схема?
любой. Изучай.
11 янв 19, 08:54    [21782419]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Малыхин Сергей
Member

Откуда: г. Курск
Сообщений: 717
Схема идиотская
11 янв 19, 08:58    [21782423]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Малыхин Сергей
Схема идиотская
я за то чтобы шире говорить о прикладных протоколах. А не о том что сокеты заменяют их все)
11 янв 19, 09:21    [21782437]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
hVostt
нет. проколы для передачи видеопотока учитывают возможность потери кадров при ухудшении соединения, которые будут достраиваться на клиенте, динамический битрейт и дофига всего. это небудет работать на ws, просто потому что задачи другие.
есть такое
<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>

передаётся в текстовом виде


Это что за протокол?

Вон кстати нашел интересную библиотечку с протоколом hls - https://github.com/video-dev/hls.js/
var hls = new Hls();
    hls.loadSource('https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });

Только там только читается видео с сервера. Непонятно пока как записывать видео на сервер...
11 янв 19, 11:41    [21782580]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644,

там canvas, этим всё сказано

А какие еще варианты есть?
11 янв 19, 12:17    [21782632]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
А какие еще варианты есть?
я давал ссылку https://html5css.ru/tags/ref_av_dom.php
11 янв 19, 13:22    [21782762]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
передаётся в текстовом виде


Жесть какая-то :)
11 янв 19, 20:49    [21783286]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
hVostt
Жесть какая-то :)
посмотри трафик в браузере...
11 янв 19, 21:09    [21783311]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
hVostt
Жесть какая-то :)
посмотри трафик в браузере...


может лучше стандарты глянем? где написано какие типы могут передаваться.

https://developer.mozilla.org/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types
12 янв 19, 05:01    [21783458]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
hVostt
может лучше стандарты глянем? где написано какие типы могут передаваться.
я разве с этим спорю?
я просто констатирую то, что встретил у youtube , когда они используют blob для воспроизведения видео.
12 янв 19, 08:25    [21783483]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя
hVostt
может лучше стандарты глянем? где написано какие типы могут передаваться.
я разве с этим спорю?
я просто констатирую то, что встретил у youtube , когда они используют blob для воспроизведения видео.


в ютубе используется WebM, в этом легко можно убедиться

при чём тут блоб?
12 янв 19, 18:38    [21783695]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
hVostt,

<div class="html5-video-container" data-layer="0">
<video tabindex="-1" class="video-stream html5-main-video" controlslist="nodownload" style="width: 981px; height: 552px; left: 0px; top: 0px;" src="blob:https://www.youtube.com/58536e7b-284c-4565-9c1a-c88c21362"></video>
</div>
12 янв 19, 18:49    [21783705]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя,

давай ещё раз?

вадя
есть такое
<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>


передаётся в текстовом виде


при чём здесь blob и "передаётся в текстовом виде"? это ты с чего вообще взял?

блоб в данном случае это всего лишь техника для кеширования видео в памяти, замечал, что загруженное видео может проигрываться даже при отключении от сети?

при чём здесь какой-то текстовый вид?
12 янв 19, 22:36    [21783832]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
вадя,

https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
12 янв 19, 22:37    [21783833]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
hVostt
stim644
hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?


Технологий для потокового видео вагон: HLS, MSE-LD, MPEG-DASH, RTMP, HTTP MPEG-TS, HDS


Т.е. получается должны быть реализации javascript библиотек для данных технологий?
Просто не совсем понимаю, как их для веб конференций использовать... Нашел одну библиотеку по hls. Но там только получение видео.
Подскажете как искать может?
16 янв 19, 16:39    [21787017]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Я тут вижу только подглядеть у уже созданных платформ...
16 янв 19, 16:40    [21787020]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
stim644,
Вы бы хотя бы тему обозвали - веб конференции.
А то таймер какой то)
16 янв 19, 16:48    [21787032]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
К сожалению тему не смогу изменить... Если модератор поменяет на "Веб конференция", то будет круто.
У меня вот еще мысль...
https://medium.com/@bryanjenningz/how-to-record-and-play-audio-in-javascript-faa1b2b3e49b
Отправлять blob аудио каждую секунду и транслировать на клиенты))
Если не разберусь как по человечески сделать... Нормальной javascript библиотеки, которая передает видео и аудио с одного клиента другим, и которая основана на основе технологий, указанных выше, я так и не нашел...
16 янв 19, 22:32    [21787343]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
Или вот например использование videojs - https://stackoverflow.com/questions/43271187/how-to-play-rtmp-live-stream-using-videojs

Проигрывание стрименга:
<html>
<head>
  <title> Stream Player </title>
  <link href="video-js.css" rel="stylesheet" type="text/css">
  <script src="video.js"></script>
  <script>videojs.options.flash.swf = "video-js.swf";</script>
</head>
<body>
 <center>
   <video 
     id="livestream" 
     class="video-js vjs-default-skin vjs-big-play-centered"
     controls 
     autoplay
     preload="auto" 
     data-setup='{"techorder" : ["flash","html5] }'>
     <source src="rtmp://127.0.0.1:1935/live/test" type="rtmp/mp4">
   </video>
 </center>
</body>
</html>


Как бы этот stream поток постоянный с вебкамеры на сервер загнать))
16 янв 19, 23:19    [21787366]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644,

https://html5rocks.appspot.com/ru/tutorials/getusermedia/intro/
+
https://caniuse.com/#feat=stream
16 янв 19, 23:54    [21787380]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
вадя
stim644,

https://html5rocks.appspot.com/ru/tutorials/getusermedia/intro/
+
https://caniuse.com/#feat=stream


Не хочу показаться навязчивым, но там описан только захват аудио и видео. А мне интересно как передавать через javascript грамотного аудио и видео) Может какая есть библиотечка готовая, которая реализует ту или иную технологию или придется самому пилить)
17 янв 19, 15:41    [21788031]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
stim644
Member

Откуда:
Сообщений: 55
А судя по стандарту webRTC http://w3c.github.io/webrtc-pc/#rtp-media-api только peer to peer. Для конференций не подходит)
17 янв 19, 15:44    [21788038]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
stim644
Не хочу показаться навязчивым, но там описан только захват аудио и видео. А мне интересно как передавать через javascript грамотного аудио и видео) Может какая есть библиотечка готовая, которая реализует ту или иную технологию или придется самому пилить)
там всё на несколько старых элементах, и демо не работает.
если тебе удастся сделать работающий захват для работы в последних версиях браузера - я попробую сделать передачу данных...
работа с видео интересна, но пока опыта нет... поэтому и такое предложение
17 янв 19, 17:54    [21788187]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
hVostt
Member

Откуда:
Сообщений: 15397
stim644
А судя по стандарту webRTC http://w3c.github.io/webrtc-pc/#rtp-media-api только peer to peer. Для конференций не подходит)


Ещё как подходит.
20 янв 19, 12:28    [21789568]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное создание таймера в javascript  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 15684
вот тут весь набор
https://github.com/muaz-khan/WebRTC-Experiment
21 янв 19, 07:43    [21789950]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / HTML, JavaScript, VBScript, CSS Ответить