Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
A small Android app for watching RTSP streams from IP cameras, with hardware H.264/H.265 decoding. It is built for cameras running [OpenIPC](https://openipc.org) firmware and works on phones, tablets, TVs, set-top boxes and car devices.

<p align="center">
<img src="screenshots/quad_menu.jpg" alt="Quad view with three cameras and the menu" width="640">
<img src="screenshots/quad_menu.jpg" alt="Multi-view with eight cameras and the menu" width="640">
</p>

## Download
Expand All @@ -31,11 +31,11 @@ A beta channel is available on [Google Play](https://play.google.com/apps/intern

- **Video:** RTSP playback, hardware H.264/H.265 decoding via MediaCodec
- **Audio:** AAC (RFC 3640 `mpeg4-generic`, ADTS, MP4A-LATM), Opus, G.711 μ-law/A-law, L16 PCM (mono/stereo)
- **Display:** single camera, or Quad mode with 4 cameras at once
- **Display:** single camera, or Quad mode with up to 8 cameras at once (2×2 or 3×3 grid)
- **Controls:** pinch-to-zoom, pan, double-tap to reset, Android TV remote (Leanback launcher)
- **Network:** Basic and Digest authentication, RTSP keepalive, automatic reconnection with exponential back-off, connection-quality indicator
- **WebUI:** built-in browser for the camera's web interface
- **More:** long-press screenshot, 4 camera slots, URLs can be shared from other apps
- **More:** long-press screenshot, 8 camera slots, URLs can be shared from other apps

## Requirements

Expand All @@ -60,7 +60,7 @@ A beta channel is available on [Google Play](https://play.google.com/apps/intern
| Item | Action |
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Q** | Turn Quad mode on or off |
| **1**–**4** | Switch to a camera slot. The active slot's number shows the connection quality: green under 100 ms of jitter, yellow 100–300 ms, red above 300 ms. A grey number is an empty slot. |
| **1**–**8** | Switch to a camera slot. The active slot's number shows the connection quality: green under 100 ms of jitter, yellow 100–300 ms, red above 300 ms. A grey number is an empty slot. |
| **Settings** | Edit the RTSP URL of the active slot (single-camera mode only) |
| **WebUI** | Open the camera's web interface; credentials come from the RTSP URL (single-camera mode only) |
| **Exit** | Close the app. The small text next to it is the app version and build hash. |
Expand All @@ -81,15 +81,14 @@ The app accepts plain-text shares (`ACTION_SEND`, `text/plain`). Sharing an `rts

### Quad mode

Shows all configured slots in a 2×2 grid. Each cell has its own connection and decoder. Long-press a cell to play its audio (long-press it again to mute); the selected cell shows an AUDIO badge and is remembered. Tap any cell to open the menu.
Shows the configured slots in a 2×2 grid, or in a 3×3 grid once any of slots 5–8 is used. Each cell has its own connection and decoder, so the device's video decoder limits how many high-resolution streams play smoothly: with five or more cameras, their substreams are a good choice. Some cameras accept only one RTSP client at a time. Long-press a cell to play its audio (long-press it again to mute); the selected cell shows an AUDIO badge and is remembered. Tap any cell to open the menu.

## Known limitations

> [!IMPORTANT]
> These are known gaps that we plan to address. Each one has an issue — comments, test results and pull requests are welcome.
>
> - **RTSP over TCP only.** No UDP or multicast — [#7](https://github.com/OpenIPC/decoder/issues/7)
> - **Only 4 camera slots** — [#13](https://github.com/OpenIPC/decoder/issues/13)
> - **G.726 audio is not supported** — [#14](https://github.com/OpenIPC/decoder/issues/14)
> - **Credentials are sent in clear text** over plain RTSP/HTTP (Basic auth unless the camera asks for Digest); RTSPS is not supported and not planned — [#16](https://github.com/OpenIPC/decoder/issues/16)
>
Expand Down
11 changes: 5 additions & 6 deletions README.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
Компактное приложение для Android: показывает RTSP-потоки с IP-камер и декодирует H.264/H.265 аппаратно. Создано для камер с прошивкой [OpenIPC](https://openipc.org). Работает на телефонах, планшетах, телевизорах, ТВ-приставках и автомобильных устройствах.

<p align="center">
<img src="screenshots/quad_menu.jpg" alt="Режим Quad: три камеры и меню" width="640">
<img src="screenshots/quad_menu.jpg" alt="Мультивид: восемь камер и меню" width="640">
</p>

## Скачать
Expand All @@ -31,11 +31,11 @@

- **Видео:** воспроизведение RTSP, аппаратное декодирование H.264/H.265 через MediaCodec
- **Звук:** AAC (RFC 3640 `mpeg4-generic`, ADTS, MP4A-LATM), Opus, G.711 μ-law/A-law, L16 PCM (моно и стерео)
- **Режимы:** одна камера или Quad — 4 камеры на одном экране
- **Режимы:** одна камера или Quad — до 8 камер на одном экране (сетка 2×2 или 3×3)
- **Управление:** масштаб двумя пальцами, перемещение, сброс двойным касанием, пульт Android TV (Leanback)
- **Сеть:** авторизация Basic и Digest, RTSP keepalive, автоматическое переподключение с растущей задержкой, индикатор качества связи
- **WebUI:** встроенный браузер для веб-интерфейса камеры
- **Прочее:** скриншот долгим нажатием, 4 слота для камер, приём ссылок из других приложений
- **Прочее:** скриншот долгим нажатием, 8 слотов для камер, приём ссылок из других приложений

## Требования

Expand All @@ -60,7 +60,7 @@
| Пункт | Действие |
|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Q** | Включить или выключить режим Quad |
| **1**–**4** | Переключиться на слот камеры. Цвет номера активного слота показывает качество связи: зелёный — джиттер меньше 100 мс, жёлтый — 100–300 мс, красный — больше 300 мс. Серый номер — пустой слот. |
| **1**–**8** | Переключиться на слот камеры. Цвет номера активного слота показывает качество связи: зелёный — джиттер меньше 100 мс, жёлтый — 100–300 мс, красный — больше 300 мс. Серый номер — пустой слот. |
| **Settings** | Изменить RTSP-адрес активного слота (только в режиме одной камеры) |
| **WebUI** | Открыть веб-интерфейс камеры; логин и пароль берутся из RTSP-адреса (только в режиме одной камеры) |
| **Exit** | Закрыть приложение. Мелкий текст рядом — версия приложения и хеш сборки. |
Expand All @@ -81,15 +81,14 @@

### Режим Quad

Показывает все настроенные слоты сеткой 2×2. У каждой ячейки своё подключение и свой декодер. Долгое нажатие на ячейку включает её звук (повторное — выключает); у выбранной ячейки виден значок AUDIO, выбор запоминается. Коснитесь любой ячейки, чтобы открыть меню.
Показывает настроенные слоты сеткой 2×2, а если занят хотя бы один из слотов 5–8 — сеткой 3×3. У каждой ячейки своё подключение и свой декодер, поэтому число плавно идущих потоков высокого разрешения ограничено видеодекодером устройства: для пяти и более камер лучше брать их дополнительные потоки (substream). Некоторые камеры допускают только одно RTSP-подключение одновременно. Долгое нажатие на ячейку включает её звук (повторное — выключает); у выбранной ячейки виден значок AUDIO, выбор запоминается. Коснитесь любой ячейки, чтобы открыть меню.

## Известные ограничения

> [!IMPORTANT]
> Это известные пробелы, которые мы планируем закрыть. На каждый заведён issue — комментарии, результаты проверок и pull request приветствуются.
>
> - **Только RTSP поверх TCP.** UDP и multicast не поддерживаются — [#7](https://github.com/OpenIPC/decoder/issues/7)
> - **Только 4 слота для камер** — [#13](https://github.com/OpenIPC/decoder/issues/13)
> - **Не поддерживается звук G.726** — [#14](https://github.com/OpenIPC/decoder/issues/14)
> - **Логин и пароль передаются в открытом виде** по RTSP/HTTP без шифрования (Basic, если камера не запросила Digest); RTSPS не поддерживается и не планируется — [#16](https://github.com/OpenIPC/decoder/issues/16)
>
Expand Down
11 changes: 5 additions & 6 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
一款小巧的 Android 应用,用于观看 IP 摄像机的 RTSP 视频流,支持 H.264/H.265 硬件解码。专为运行 [OpenIPC](https://openipc.org) 固件的摄像机设计,可在手机、平板、电视、电视盒子和车载设备上使用。

<p align="center">
<img src="screenshots/quad_menu.jpg" alt="四分屏模式:三路摄像机与菜单" width="640">
<img src="screenshots/quad_menu.jpg" alt="多画面模式:八路摄像机与菜单" width="640">
</p>

## 下载
Expand All @@ -31,11 +31,11 @@

- **视频:** RTSP 播放,通过 MediaCodec 进行 H.264/H.265 硬件解码
- **音频:** AAC(RFC 3640 `mpeg4-generic`、ADTS、MP4A-LATM)、Opus、G.711 μ-law/A-law、L16 PCM(单声道/立体声)
- **显示:** 单路画面,或 Quad 四分屏(同时显示 4 路摄像机)
- **显示:** 单路画面,或 Quad 多画面(最多同时显示 8 路摄像机,2×2 或 3×3 网格)
- **操作:** 双指缩放、拖动平移、双击复位,支持 Android TV 遥控器(Leanback 启动器)
- **网络:** 支持 Basic 和 Digest 认证、RTSP 保活,断线后自动重连(指数退避),连接质量指示
- **WebUI:** 内置浏览器,可打开摄像机的网页管理界面
- **其他:** 长按截图,4 个摄像机槽位,可接收其他应用分享的地址
- **其他:** 长按截图,8 个摄像机槽位,可接收其他应用分享的地址

## 系统要求

Expand All @@ -60,7 +60,7 @@
| 菜单项 | 功能 |
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| **Q** | 开启或关闭 Quad 四分屏模式 |
| **1**–**4** | 切换摄像机槽位。当前槽位编号的颜色表示连接质量:绿色为抖动低于 100 毫秒,黄色为 100–300 毫秒,红色为高于 300 毫秒。灰色编号表示该槽位未配置。 |
| **1**–**8** | 切换摄像机槽位。当前槽位编号的颜色表示连接质量:绿色为抖动低于 100 毫秒,黄色为 100–300 毫秒,红色为高于 300 毫秒。灰色编号表示该槽位未配置。 |
| **Settings** | 编辑当前槽位的 RTSP 地址(仅单路模式) |
| **WebUI** | 打开摄像机网页界面,用户名和密码取自 RTSP 地址(仅单路模式) |
| **Exit** | 退出应用。旁边的小字是应用版本号和构建哈希。 |
Expand All @@ -81,15 +81,14 @@

### Quad 四分屏模式

以 2×2 网格显示所有已配置的槽位。每个画面都有独立的连接和解码器。长按某个画面即可播放其声音(再次长按则静音);被选中的画面显示 AUDIO 标记,选择会被记住。点击任意画面即可打开菜单。
以 2×2 网格显示已配置的槽位;只要使用了第 5–8 个槽位中的任意一个,就改为 3×3 网格。每个画面都有独立的连接和解码器,因此能流畅播放多少路高分辨率码流取决于设备的视频解码器:五路及以上时建议使用摄像机的子码流。部分摄像机同一时间只允许一个 RTSP 客户端。长按某个画面即可播放其声音(再次长按则静音);被选中的画面显示 AUDIO 标记,选择会被记住。点击任意画面即可打开菜单。

## 已知限制

> [!IMPORTANT]
> 以下是我们计划解决的已知不足,每一项都有对应的 issue。欢迎留言、提交测试结果和 pull request。
>
> - **仅支持 RTSP over TCP**,不支持 UDP 和组播 — [#7](https://github.com/OpenIPC/decoder/issues/7)
> - **仅有 4 个摄像机槽位** — [#13](https://github.com/OpenIPC/decoder/issues/13)
> - **不支持 G.726 音频** — [#14](https://github.com/OpenIPC/decoder/issues/14)
> - **用户名和密码以明文传输**(未加密的 RTSP/HTTP;摄像机未要求 Digest 时发送 Basic),不支持 RTSPS,也不计划支持 — [#16](https://github.com/OpenIPC/decoder/issues/16)
>
Expand Down
Loading
Loading