AlexxIT/go2rtc

★ 14,195⑂ 0

Ultimate camera streaming application

14,195Star
0Fork
0Watch
0Issue
GoLanguage
-License
Created · last push · repository size 0 KB · default branch -

README

https://github.com/AlexxIT/go2rtc/blob/HEAD/go2rtc - GitHub

https://github.com/AlexxIT/go2rtc/blob/HEAD/go2rtc - GitHub Stars https://github.com/AlexxIT/go2rtc/blob/HEAD/go2rtc - Docker Pulls https://github.com/AlexxIT/go2rtc/blob/HEAD/go2rtc - GitHub Downloads

https://github.com/AlexxIT/go2rtc/blob/HEAD/go2rtc - Trendshift

Ultimate camera streaming application with support for dozens formats and protocols.

Inspired by


Table of Contents

Installation

1. Download binary or use Docker or Home Assistant add-on or integration 2. Open web interface: http://localhost:1984/ 3. Add streams to config

Developers: integrate HTTP API into your smart home platform.

go2rtc: Binary

Download binary for your OS from latest release:

| name | description | |-----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------| | go2rtc_win64.zip | Windows 10+ 64-bit | | go2rtc_win32.zip | Windows 10+ 32-bit | | go2rtc_win_arm64.zip | Windows ARM 64-bit | | go2rtc_linux_amd64 | Linux 64-bit | | go2rtc_linux_i386 | Linux 32-bit | | go2rtc_linux_arm64 | Linux ARM 64-bit (ex. Raspberry 64-bit OS) | | go2rtc_linux_arm | Linux ARM 32-bit (ex. Raspberry 32-bit OS) | | go2rtc_linux_armv6 | Linux ARMv6 (for old Raspberry 1 and Zero) | | go2rtc_linux_mipsel | Linux MIPS (ex. Xiaomi Gateway 3, Wyze cameras) | | go2rtc_mac_amd64.zip | macOS 11+ Intel 64-bit | | go2rtc_mac_arm64.zip | macOS ARM 64-bit | | go2rtc_freebsd_amd64.zip | FreeBSD 64-bit | | go2rtc_freebsd_arm64.zip | FreeBSD ARM 64-bit |

Don't forget to fix the rights chmod +x go2rtc_xxx_xxx on Linux and Mac.

PS. The application is compiled with the latest versions of the Go language for maximum speed and security. Therefore, the minimum OS versions depend on the Go language.

go2rtc: Docker

The Docker containers alexxit/go2rtc and ghcr.io/alexxit/go2rtc support multiple architectures including 386, amd64, arm/v6, arm/v7 and arm64. These containers offer the same functionality as the Home Assistant add-on but are designed to operate independently of Home Assistant. It comes preinstalled with FFmpeg and Python.

go2rtc: Home Assistant add-on

Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.

1. Settings > Add-ons > Plus > Repositories > Add

   https://github.com/AlexxIT/hassio-addons
   
2. go2rtc > Install > Start

go2rtc: Home Assistant Integration

WebRTC Camera custom component can be used on any Home Assistant installation, including HassWP on Windows. It can automatically download and use the latest version of go2rtc. Or it can connect to an existing version of go2rtc. Addon installation in this case is optional.

go2rtc: Master version

Latest, but maybe unstable version:

Configuration

This is the go2rtc.yaml file in YAML-format. The configuration can be changed in the WebUI at http://localhost:1984. The editor provides syntax highlighting and checking.

go2rtc webui config

The simplest config looks like this:

streams:
  hall-camera: rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0
More information can be found here.

Features

A summary table of all modules and features can be found here.

Core modules

Streaming input

public protocols

private protocols

devices

files

scripts

webrtc

Streaming output

Streaming ingest

Supported for: flv, mjpeg, mpegts, rtmp, rtsp, webrtc.

This is a feature when go2rtc expects to receive an incoming stream from an external application. The stream transmission is started and stopped by an external application.

Two-way audio

Supported for: doorbird, dvrip, exec, isapi, multitrans, ring, roborock, rtsp, tapo, tuya, webrtc, wyze, xiaomi.

Two-way audio can be used in browser with WebRTC technology. The browser will give access to the microphone only for HTTPS sites (read more).

Stream to camera

You can play audio files or live streams on any camera with two-way audio support.

read more

Publish stream

You can publish any stream to streaming services (YouTube, Telegram, etc.) via RTMP/RTMPS.

read more

Preload stream

You can preload any stream on go2rtc start. This is useful for cameras that take a long time to start up.

read more

Streaming stats

WebUI provides detailed information about all active connections, including IP-addresses, formats, protocols, number of packets and bytes transferred. Via the HTTP API in json or dot) format on an interactive connection map.

go2rtc webui net

Codecs

If you have questions about why video or audio is not displayed, you need to read the following sections.

| Name | FFmpeg | RTSP | Aliases | |------------------------------|----------|---------------|-------------| | Advanced Audio Coding | aac | MPEG4-GENERIC | | | Advanced Video Coding | h264 | H264 | AVC, H.264 | | G.711 PCM (A-law) | alaw | PCMA | G711A | | G.711 PCM (µ-law) | mulaw | PCMU | G711u | | High Efficiency Video Coding | hevc | H265 | HEVC, H.265 | | Motion JPEG | mpjpeg | JPEG | | | MPEG-1 Audio Layer III | mp3 | MPA | | | Opus Codec | opus | OPUS | | | PCM signed 16-bit big-endian | s16be | L16 | |

Codecs filters

go2rtc can automatically detect which codecs your device supports for WebRTC and MSE technologies.

But it cannot be done for RTSP, HTTP progressive streaming, HLS technologies. You can manually add a codec filter when you create a link to a stream. The filters work the same for all three technologies. Filters d

More Video Trending projects

1

Genymobile / scrcpy

C★ 149,650⑂ 0
2

harry0703 / MoneyPrinterTurbo

Python★ 123,776⑂ 0
3

obsproject / obs-studio

C★ 76,223⑂ 0
4

FFmpeg / FFmpeg

C★ 64,235⑂ 0
5

calesthio / OpenMontage

Python★ 59,205⑂ 0
6

heygen-com / hyperframes

TypeScript★ 50,163⑂ 0