Vladislav
17.08.2017
18:24:47
Ребята, срочно нужна помощь. Есть огромная проблема. У нас сервис, который занимается видео стримнгом из браузера. Один ко многим. Пользователи с IOS не могут использовать WebRTC. Единственный способ доставить им все это добро максимально быстро: Браузер -> передача кусков видео на сервер –> сборка в файл -> по доступности первых данных запуск ffmpeg -> преобразование в необхожимый формат -> отправка на сервер расслки видео фрагментов -> рассылка фрагментов по webSocket -> сборка и отрисовка на фронте.
Но есть проблема. ffmpeg некоторые файлы обрабатывает постепенно по мере их записи. А некоторые пробегает со скоростью 8x и таким самым считает что файл уже обработан и останавливает работу. Перезапуск его на файл не помогает. Неоторые файлы дефектные. НО во всех плеерах благополучно работают. Кто знает как заставить ffmpeg всегда работать со скоростью 1x?? Очен надо помощь
Вася
17.08.2017
18:53:02
А hls не?
Vladislav
17.08.2017
18:53:31
HLS - слишком большая задержка. У нас 2-3 секунды.
Google
Вася
17.08.2017
18:53:58
Ну так настраиваться же размер чанка
Хоть по секунде можно резать
Vladislav
17.08.2017
18:54:30
-r не помогает. -re тоже. Вернее оно работает. Но для накоторых файлов ffmpeg сходит с ума и ведет себя не адекватно
Вася
17.08.2017
18:54:54
А да, re вроде
А какие ошибки?
Vladislav
17.08.2017
18:55:30
Ну так настраиваться же размер чанка
Там еще нужно полный контроль доступа к кадрам. Типо юзер не должен видеть если ему запретили. Сложная тема. Даже в случае с HLS ошибка такая- же останется.
Вася
17.08.2017
18:55:51
Ну и так сложно сказать, надо формат входной, ошибки
Vladislav
17.08.2017
18:56:58
Вернее не ошибка. Просто файл дописывается все время и ffmpeg проходит по нему во время записи и все четко работает. Он обычно идет со скоростью 1x а на некоторых файлы в процессе обработки идет с 8x один файл из 10-20 и естественно файл обрабатывается быстрее чем дописывается в реальном времени
Есть предолжения, как еще доставить реалтайм видео на сервер для обработки?
Вася
17.08.2017
18:59:34
Тогда я Хз, надо руками ковырять
KlonD90
17.08.2017
19:56:37
dlete
Igor
17.08.2017
19:57:28
Google
Igor
17.08.2017
19:58:21
ты императивно изменяешь ctx.req как минимум
и передаешь его следующей мидлваре
слышал про иммутабельность?
dima
17.08.2017
19:59:02
Да
Igor
17.08.2017
19:59:29
ну так какое это фп
Combot
17.08.2017
19:59:33
combot.org/chat/-1001041204341
dima
17.08.2017
20:00:11
Мне было удобнее делать мини функции чем класс
Igor
17.08.2017
20:00:43
это процедуркой называется
как считаешь вообще зачем нужно создавать класс?
ну вот в примере с авторизацией юзера
это не мастхев, но как тебе кажется зачем его можно создать
dima
17.08.2017
20:03:03
Хз. К чему. До пиши полностью
Igor
17.08.2017
20:04:09
для авторизации, не аутентификации, читай сепарации доступа по правам/ролям
dima
17.08.2017
20:04:38
Ну роутер. Он с колбэкам. Уже проще хандлеры функциями
Igor
17.08.2017
20:04:49
считай что личность юзера уже установлена по токену
dima
17.08.2017
20:06:04
Ну я для ролей написал пару функций. can(). Принимает call заранее написанный в конфиге у которого есть хандлер
Не знаю как в ноде пишут подобное. Не видел примеры. И вот в курсе по ноде (забыл название, свежий слитый) функции юзают
Mykola
17.08.2017
22:13:46
Подскажите на счет env vars
Vitaly
17.08.2017
22:28:22
Ты еще видеовопрос пришли, я пока знатоков позову :)
Mykola
17.08.2017
22:33:54
А если .env файл нужно дабавить variables но он находиться в gitignore как поступить что бы ругие получили обновленный .env файл ?
Google
Yuriy
17.08.2017
23:41:40
Я хз как в ХЕРоку (не понравилось название - не юзал), но думаю должен быть способ безопастной передачи конфы для продакшена.
Andrey ?
18.08.2017
04:22:24
В хероку - просто переменные окружения
Nurlan
18.08.2017
04:33:23
Всем привет. Я новичек. Хочу дать доступ извне своему сайту(сокеты,чат) на nodeJs.
ОС Windows 2012 r2. есть внешний статический IP
Дальше куда копать ?
K
18.08.2017
04:34:53
Просто по статическому айпи не подключает?
Nurlan
18.08.2017
04:35:16
на сервер залил то что работало на своем ноуте
Ilya
18.08.2017
04:44:24
Собираюсь делать нечто вроде хранилища ссылок - вот думаю лучше клссическую sql - mysql или mongo? Чтоит ли брать монгу?
Nurlan
18.08.2017
04:47:24
какая вообще разница между MS SQL & Mongo ? ) первое нужно когда структура данных четкая а вторя когда нет ?
только в этом ?
Ilya
18.08.2017
04:48:43
разница в концепте - документ vs реляционка
мне реляционка кажется дает гигантскую гибкость
Vitaly
18.08.2017
04:51:58
реляционка придумана чтобы экономить место, и не всегда нужна
Ilya
18.08.2017
04:53:53
painless-mode
Nurlan
18.08.2017
04:54:14
Ilya
18.08.2017
04:54:31
на самом деле этот вопрос больше админский - а тут про ноду. как запустить/дать доступ извне.
Konstantin
18.08.2017
05:11:27
Vsevolod
18.08.2017
05:30:22
У ИИС была надстройка для ноды
Ilgiz
18.08.2017
07:07:28
Ребят как можно запустить такой for loop который будет делать следующий итератор после того как предедущий возвратит true ?
Google
Дмитрий
18.08.2017
07:07:50
yield*
Ilgiz
18.08.2017
07:08:29
можно я свою проблема расскажу может подскажете что делать?
у меня есть обьект он парсит сайт, я через фоорлуп прохожу по списку url и передаю этому обьекту ввиде аргумента url и вызываю его метод parse(), и получается что после запуска форлупа у меня вызываются все обьекты и вызываются его методы и парсится сразу все парсеры, а мне надо что б следующий итератор запустился только после того как предедущий закончил
Дмитрий
18.08.2017
07:12:35
async await
Remite
18.08.2017
07:13:51
Промисы, колбеки
Ilgiz
18.08.2017
07:14:16
у меня сейчас так
list.forEach(elem=>{
let obj = new Parse(elem)
obj.parser()
})
Remite
18.08.2017
07:15:18
У тебя асинхронная операция, ее нужно обработать как подобает асинхронщине, ил
Ilgiz
18.08.2017
07:16:11
нет я хочу что бы следующий запустился только после того как закончил передедущий
Дмитрий
18.08.2017
07:16:29
async await
Nex
18.08.2017
07:16:51
может пхп))
Ilgiz
18.08.2017
07:16:52
Алексей
18.08.2017
07:18:07
Дмитрий
18.08.2017
07:18:25
for (const elem of list)
await new Parse(elem).parser()
Vitaly
18.08.2017
07:18:32
Таймураз
18.08.2017
07:22:44
Ilgiz
18.08.2017
07:23:55
Таймураз
18.08.2017
07:24:21
Но почему это полностью асинхронно нельзя сделать в твоем случае- интернесно
KlonD90
18.08.2017
07:25:52
Таймураз
18.08.2017
07:26:20
Google
Дмитрий
18.08.2017
07:26:21
Ilgiz
18.08.2017
07:29:06
Таймураз
18.08.2017
07:29:34
KlonD90
18.08.2017
07:29:48
ну да нужно взвешенные пулы
по domain'у
Ilgiz
18.08.2017
07:30:26
Очередь
так пример выше по сути и по очереди будет делать
Сергей
18.08.2017
07:31:01
Привет
На сервере время 10:30
в ноде получаю время 07:30
это как так?) откуда время берет нода?)
Дмитрий
18.08.2017
07:32:14
UTC +3
dima
18.08.2017
07:33:19
node + typescript юзает кто?