Привет,
Хочу сделать стриминг с распбери пая на сервер веб-апи. Всё пишу на .net core. Звук не нужен, говорят, что в таком случае можно просто отправлять картинки с камеры на сервер. Интересует минимальная латенси (чтоб только сетевые задержки влияли)
Захватывать картинки - есть либа и это вроде не сложно, но с веб апи я работал с обычными запросами, если я буду отправлять 24 картинки в секунду, даже разрешения 640 на 480 через пост запросы, это, блин, очень много запросов ) там не известно, какие-то кадры могут раньше приехать, какие-то зависнуть по разным причинам.
Слышал про разные протоколы, типа udp, он вроде как для видео используется, если какие-то кадры не дошли, он их пропускает, работает быстрее, но не знаю, подходит ли для моего случая, я с ним не работал.
Еще пробовал кодировать даже в base64 и отправлять по вебсокетам, но прям шляпа получалась.
Хотя с захватом видео/изображений тоже непонятно, вроде как на камеру есть свой процессор и надо как-то на нем всё делать, по возможности вообще не надо основной процессор нагружать, но я не понимаю, что читать даже.
Есть какие-то примеры кода, статьи на эту тему? Я порыскал, но как-то не знаю, как правильно вопрос сформулировать. Как делают стриминг просто картинками?
Захватывать картинки - есть либа и это вроде не сложно, но с веб апи я работал с обычными запросами, если я буду отправлять 24 картинки в секунду, даже разрешения 640 на 480 через пост запросы, это, блин, очень много запросов ) там не известно, какие-то кадры могут раньше приехать, какие-то зависнуть по разным причинам.
Я бы посмотрел в сторону grpc streaming - там можно 1 раз открыть соединение и отправлять много сообщений + не нужно в base64 кодировать.
Либо вообще подумал над собственным протоколом поверх tcp.
Ещё в raspberry вроде есть аппаратный кодировщик видео - вероятно видео будет транслировать более эффективно, тк врядли между соседними кадрами будет очень большая разница, но как именно можно принять видео на стороне дотнета - хз. Возможно нужно будет ещё одно какое-то приложение поднять, которое будет читать поток видео и сохранять его в виде картинок.
Привет, спасибо
По капчурингу тут используется raspivid, хотя вышла новая библиотека libcamera. Raspivid больше не будет поддерживаться и надо в любом случае на новую пересаживаться, но это не суть важно в моем вопросе
По ссылке транслируется именно видео, а как я уже писал, в других источниках говорится, что так как не требуется передавать звуковую дорожку, можно просто отправлять отдельные кадры как jpeg, и это вроде как должно работать быстрее, вот про это хотелось бы каких-то подробностей
Мне кажется, это гибче, при плохом сигнале (например, очередь можно сделать, и если она будет сильно расти, можно считать, что медленно отправляются) можно будет на лету сжимать в более низкое разрешение или уменьшать частоту кадров.
Хотя может такое и с видео делается
Ну и приемник там тоже непонятный, не веб апи ) так что вроде всё мимо
Я подробнее еще посмотрю попозже, может что интересное узнаю