Миссия VideoTech - развить профессиональное сообщество разработчиков и инженеров, работающих над видеозвонками, стриминговыми платформами, плеерами.
Ближайшая конференция - VideoTech 2024, 19 сентября (online), 28-29 сентября, Санкт-Петербург Подробнее о конференции: jrg.su/ssePIu
Темы: - Устройства и плееры (браузеры, Hls.js, dash.js, accessibility) - Раздача видео (CDN, Peer-to-Peer, HTTP/3, кастомные протоколы) - ML/AI (Denoise, повышение качества, перевод и озвучка, генеративные видео) - Кодеки аудио и видео (AV1, VP9, H.264, H.265, H.266, Opus) - Качество видео (метрики, мониторинг, телеметрия и разбор клиентских проблем) - WebRTC (инфраструктура, браузеры, iOS & Android) - Браузерные API (WebCodecs, WebTransport, WebGPU) - Хранение и упаковка (Video Storage, JIT Packaging) - Создание контента (Web-редакторы, генерация видео) - Машинное зрение (распознавание лиц, объектов реального мира, автономные машины)
на 11:09 своим алоцированием ты заруинил всю остальную свою речь, потому что это абсолюнтно непонятный никому маневр (я имею ввиду новичков). По сути дальше смысла нету смотреь если не разобраться в этом самом "аллоцировнии" его сути и смысле. дальше просто непонятно откуда беруться какие адреса, что такое ремоут и локал в контексте каждой машины. фигня в общем
Не удалось понять для чего именно используется imageData. Так как в примерах на слайдах imageData просто рисуется. Видимо имелось в виду что полученная ресайзнутая imageData передается в модель. В таком случае, преимущество webgl readPixels не очевидно так как он делает то же самое. что и getImageData. Единственная разница что readPixels поддерживает возможность передать туда ссылку на Uint8Array, что позволяет не аллоцировать на каждый кадр новую память. Но у readpixels есть неприятный нюанс - он возвращет флипнутое изображение. Надо или компенсируюший флиппинг на шейдере делать или же после чтения jsoм - но это будет стоить еще 0.5 ms-2ms для 1080p на m1 pro, если я верно помню цифры
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Ps8CzdeMrQ8.htmlsi=KQbnWI-k_rODipCA&t=998 Тут ошибка. метод resize возвращает imageData. canvasRenderin2dContext.drawImage не поддерживает передачу туда ImageData.
2d canvas тоже gpu accelerated уже несколько лет. gpu acceleration может пропасть в случает частого чтения пикселей с этого канваса. Проблема не в медленности 2d контекста. В функции resize вы явно делаете ctx.getImageData. Хотя можно прямо canvas передать в canvas.drawImage и это работает быстро
Для FPGA в принципе не нужны высокие "частоты", так как там можно очень сильно распараллелить. Сигналку надо исполнять на обычном проце, а чистое видео пихать на фпагу для транскодинга. Обычно первый вариант продукта выпускают небольшим тиражом, например до 10,000 штук, на обычной фпаге, например Xilinx по $300. А если продукт пошел, то для следующей партии в 25,000 штук заказывают hardcopy (процесс зависит от производителя) - удешевленный процесс производства и тот же чип уже обходится по $100.
Ирина, похоже, слабо разбирается в причинах проблем. Например, Webrtc пользуется tcc (transport cc) и может снижать битрейт ДО появления потерь пакетов - как раз чтобы предотвратить потери.