Raspberry Pi Tank - это открытый проект по управлению игрушечным танком с помощью Raspberry Pi. Видеосигнал передается через интернет (Wi-Fi), управление осуществляется прямо из браузера . ( http://pitank.com )
Интересная работа, сейчас ковыряюсь с чем то подобным. На видео как я понял разрешение 960x720? Если не секрет, как сделана передача видео? Сам сейчас пробую разные варианты, но пока не получил желаемого результата.
Да по умолчанию изображение передается в 960x720, но можно выбрать любое от 320x240 до 1280x1024. Пока лучше результаты по задержке видеопотока удалось получить с использованием Logitech c270 (любая камера с поддержкой linux uvc подойдёт) и mjpg-streamer. Задержка составляет порядка 100 мс, что вполне комфорно для удаленного управления. Mjpg-streamer потребляет совсем немного ресурсов(1-3% cpu Raspberry Pi), так как не занимается перекодировкой изображений. Из камеры он получает jpg и стримит его в веб. Mjpg формат поддерживается практически всеми браузерами нативно, причем даже телефонными браузерами android и IOS. Единственный его минус в том, что ему требуется значительная полоса пропускания по сравнению с другими алгоритмами сжатия. Нужно быть готовым, что потребуется 3-5 мегабит для 1280x1024 и 20 кадров в секунду. Для wifi это непроблема, а с 3g скорее всего работать нормально не будет. Пробовал другие варианты для стриминга c перекодировкой, но пока нигде результата по задержке меньше чем секунда не получил. Постараюсь написать статью на pitank.com в ближайшее время с инструкциями как использовать mjpg streamer, так что следите за обновлениями.
Не увидел новый пост, спасибо за пояснение. Немного прервался на проектирование, оснастку для производства корпусных изделий, да и работы много. 1280x720 с 25 кадрами в секунду, это минимум который мне необходим. Хотелось бы все таки 1920x1080 правда я сомневаюсь, что возможно получить такое разрешение с необходимыми задержками. Сейчас есть 1280x720 с 25 (на UV4L Mjpg), правда задержка еще далека от необходимой, у Вас на видео лучше. Что касается полосы пропускания, я готов отдать 90% от возможной, остальное останется для UDP и nginx, так же готов отдать до 50% загрузки CPU, GPU. Как раз хотел расспросить, буду ждать. Пока мне не просто дается, установки и настройки на linux. Глянул Ваш проект, у Вас Perl + Ruby + JavaScript. Я остановился на более простой связке Node.js + JavaScript.