AlexxIT Smart Home
7.97K subscribers
321 photos
28 videos
289 links
Заметки про развитие моего умного дома
Все полезные ссылки тут:
https://github.com/AlexxIT
Download Telegram
#go2rtc
По многочисленным просьбам, в go2rtc была добавлена прямая поддержка протокола HTTP-FLV. Именно его используют в проекте dom.ru для отображения потока с домофонов.

К сожалению, пока без звука. Но зато видео можно забрать с минимальной задержкой в форматах WebRTC, MSE, MP4, RTSP, включая snapshot в формате mp4.

Если очень нужен звук - можно подключить транскодинг средствами ffmpeg, но это добавляет время к старту потока.

Говорят, хорошо работает в связке с отображением потока на телевирах с Яндекс Алисой.
#go2rtc
Автор rtsp-simple-server отметил go2rtc. Именно его гениальная идея взаимодействия с FFmpeg легла в архитектуру проекта. О чём, конечно же, отмечено в начале документации.
#go2rtc
Марафон очередных бессонных ночей закончен в виде нового релиза go2rtc.

Разных фич стало больше, а размер приложения - меньше. Потому что я выкинул почти все внешние библиотеки и переписал их функции с нуля.

Из большого и сложного появилась базовая поддержка стриминга в Apple HomeKit. Этим конечно сейчас никого не удивишь. Такое умеют разные open source решения.

Зато никто из них не умеет trasparent proxy для HomeKit камер (например Aqara). Это когда камера продолжает работать в экосистеме Apple с полной поддержкой всех своих функций. И дополнительно можно с неё забрать RTSP, WebRTC, MSE, снапшоты и прочее.

А ещё никто из них не имеет маленького и полностью автономного приложения в 5 МБайт, которое можно запустить прям на железе камеры.

Например, разработчик альтернативных прошивок для дешёвых и популярных китайских камер Wyze, добавил go2rtc в качестве основного стримингового ядра на эти камеры. А это значит, что с новым релизом поддержка HomeKit появится прям на них. А, в перспективе, и на других камерах.

Изменений очень много, поэтому релиз может быть не супер стабилен.

https://github.com/AlexxIT/go2rtc/releases/tag/v1.7.0
#go2rtc
Обновления получили сразу два проекта - go2rtc и WebRTC.

1. В go2rtc появилась механика шаринга потока на популярные стриминговые сервисы - YouTube, Telegram и др.

Тут, в первую очередь, интересен Telegram. Ведь он позволяет легко и быстро создать публичную анонимную трансляцию камеры на весь мир. Или же создать закрытую трансляцию для семьи, друзей, подъезда, спонсоров...

Есть один минус - сервера Telegram добавляют к трансляции задержку примерно в 10 секунд. На YouTube я видел задержку менее двух секунд. Тут я готов посотрудничать с командой Павла @durov, чтоб догнать и перегнать этот показатель YouTube. Пишите - сделаем из Telegram топовую стриминговую платформу.

2. Также в go2rtc появилась поддержка two-way audio для протокола DVRIP. Популярные безымянные камеры из Поднебесной.

3. И поддержка two-way audio появилась в карточке WebRTC.

---

На скриншоте выше демонстрация четырёх технологий стриминга камеры за серым IP-адресом (без публичного внешнего доступа):

1. SSH Tunnel - самый сложный в настройке способ. У меня на GitHub есть такой аддон.

2. Telegram - трансляция поддерживается в мобильных и настольных приложениях. Видно отставание потока.

3. WebTorrent - поддерживается в go2rtc довольно давно, есть статья на Хабре.

4. HomeKit - для внешнего доступа нужен "центр умного дома" Apple, у меня это старый iPad Air 2 на постоянном питании. Трансляция на доли секунды опережает WebRTC.

Ещё в список можно добавить сервисы Ngrok и Dataplicity. В бесплатной версии оба позволяют закрепить за своим сервером один публичный адрес.
#go2rtc
Давно мечтал поснимать свои пробежки от первого лица. На прошлой неделе идея стала настолько навязчивой, что не удержался от покупки GoPro.

GoPro это в первую очередь камера. А что мы делаем с камерами? Правильно, добавляем их в go2rtc.

Сегодняшний релиз уже поддерживает модели с HERO9 по HERO12. Более старые имеют другие API. Добавлю по возможности.
#go2rtc
У программистов есть привычка - запускать Doom на любой железке, которая попадётся под руку.

У меня есть привычка - добавлять в go2rtc любую стриминговую технологию, которая попадётся под руку.

Пару дней назад я узнал о забавном способе отображать анимацию в формате ASCII-графики в текстовой консоли сервера.

Всего 150 строк кода, и вы можете повторить такой трюк дома с новой версией go2rtc.

https://www.youtube.com/watch?v=sHj_3h_sX7M
#go2rtc
Меня всегда завораживала карта Zigbee сети. Большую карту интересно разглядывать, как произведение искусства.

В новой версии go2rtc появилась своя карта стриминговой сети. Она живая и интерактивная. Между нодами бегают байты данных, старые ноды исчезают, а новые - появляются. Форматы, протоколы и кодеки, для удобства, названы схожими с FFmpeg именами.

Идея проекта go2rtc не просто реализовывать базовую функцию стриминга. Но и выполнять некую обучающую роль. Чтоб люди, далёкие от видео индустрии, могли на простых и живых примерах понять, насколько глубока эта кроличья нора.

https://youtu.be/ZzePTFl0QFk
Media is too big
VIEW IN TELEGRAM
#go2rtc
Вчера произошло довольно значимое событие - самый популярный open source проект на GitHub теперь использует go2rtc в качестве стримингового ядра!

Конечно же я говорю про Home Assistant. В конце октября команда GitHub подвела итоги года, где первое место по количеству участников занял наш любимый ХА, обогнав не менее достойного конкурента - VSCode.

go2rtc теперь встроен в Home Assistant core, начиная с версии 2024.11. Сотни тысяч новых пользователей будут получать настоящие real time потоки со своих камер, даже не подозревая, кто за этим всем стоит.

Как разработчик, я знаю, что такое решение далось HA core team нелегко. Сделать ставку на стороннее программное обеспечение в такой базовой функции - это очень серьёзный и обдуманный шаг. Вроде даже были попытки реализовать встроенную поддержку WebRTC средствами Python. Похоже, ничего толкового из этого не вышло.

Это лишь первый шаг в использовании go2rtc внутри ядра ХА - отображение потока с камер с помощью технологии WebRTC. На очереди и другие фичи - two way audio, MSE. Возможно, нормальная поддержка HomeKit, как на вход, так и на выход.

Надеюсь, у меня хватит сил, удерживать (а лучше повышать) планку качества и возможностей проекта.