mirror of https://github.com/OpenIPC/wiki.git
120 lines
4.6 KiB
Markdown
120 lines
4.6 KiB
Markdown
# OpenIPC Wiki
|
|
[Table of Content](index.md)
|
|
|
|
Majestic Streamer
|
|
-----------------
|
|
|
|
### Preamble
|
|
|
|
Majestic is a video streaming application, the heart of our firmware (in
|
|
relation to camera/video surveillance functionality). Majestic is configurable
|
|
via /etc/majestic.yaml file, and has many features/services enabled by default.
|
|
Unneeded options can be switched off for better security and performance.
|
|
|
|
### Camera related URLs in firmware
|
|
|
|
With firmware running, you can access the camera using URLs below
|
|
(192.168.1.10 is an example of camera IP address):
|
|
|
|
#### Live video
|
|
|
|
* http://192.168.1.10/ - [HLS][hls] live streaming is web browser.
|
|
* http://192.168.1.10/mjpeg.html - [MJPEG][mjpeg] & [MP3][mp3] streaming in web browser.
|
|
* http://192.168.1.10/video.mp4 - [MP4][mp4] video (Fragmented MP4).
|
|
* rtsp://192.168.1.10 - Main channel of [RTSP][rtsp] streamer (video0 in config).
|
|
* rtsp://192.168.1.10/stream=1 - Second channel of RTSP streamer (video1 in config)
|
|
|
|
#### Still image
|
|
|
|
* http://192.168.1.10/image.jpg - image snapshot in [JPEG][jpeg] format.
|
|
Supports specific image parameters in URL, e.g. `/image.jpg?width=640&height=360&qfactor=73&color2gray=1`:
|
|
-`width` and `height` - size of picture to scale original image.
|
|
- `qfactor` - JPEG quality factor between 1 and 99.
|
|
- `color2gray` - force to grayscale conversion.
|
|
- `crop` - crop image in format `16x16x320x320`,
|
|
where first numbers are left and top image coordinates
|
|
and others are image width and height.
|
|
* http://192.168.1.10/image.heif - image snapshot in [HEIF][heif] format,
|
|
use `stream` parameter to specify channel (the same approach as for RTSP channels)
|
|
* http://192.168.1.10/image.yuv - image snapshot in [YUV420][yuv] format.
|
|
* http://192.168.1.10/image.dng - [raw image][raw] snapshot from the sensor in
|
|
[Adobe DNG][dng] format (only for v>=2 HiSilicon processors).
|
|
|
|
##### Tips:
|
|
|
|
To convert YUV image to a more common image format, use `convert` command from
|
|
ImageMagick software. Run it like this:
|
|
```
|
|
convert -verbose -sampling-factor 4:2:0 -size 1920x1080 -depth 8 image.yuv image.png
|
|
```
|
|
where `1920x1080` is the picture resolution of video0, and `.png` is the target
|
|
image format.
|
|
|
|
### Audio input
|
|
|
|
* http://192.168.1.10/audio.opus - [Opus][opus] audio stream.
|
|
* http://192.168.1.10/audio.m4a - [AAC][aac] audio stream.
|
|
* http://192.168.1.10/audio.mp3 - [MP3][mp3] audio stream.
|
|
* http://192.168.1.10/audio.pcm - Raw [PCM][pcm] audio stream.
|
|
* http://192.168.1.10/audio.alaw - [A-law][alaw] compressed audio stream.
|
|
* http://192.168.1.10/audio.ulaw - [μ-law][ulaw] compressed audio stream.
|
|
* http://192.168.1.10/audio.g711a - [G.711][g711] A-law audio stream.
|
|
|
|
##### Tips:
|
|
|
|
To play audio stream use [ffplay][ffplay] utility from [ffmpeg][ffmpeg] package.
|
|
|
|
```
|
|
ffplay -ar 48000 -ac 1 -f s16le http://192.168.1.10/audio.pcm
|
|
ffplay -ar 48000 -ac 1 -f alaw http://192.168.1.10/audio.alaw
|
|
ffplay -ar 48000 -ac 1 -f mulaw http://192.168.1.10/audio.ulaw
|
|
ffplay -ar 8000 -ac 1 -f alaw http://192.168.1.10/audio.g711a
|
|
```
|
|
|
|
To play audio on camera speaker over network (Hisilicon/Goke only):
|
|
|
|
```
|
|
curl -T test.pcm http://10.216.128.66:8888/play_audio
|
|
```
|
|
|
|
[PCM][pcm] file can be prepared using [sox][sox] program:
|
|
|
|
```
|
|
sox speech.mp3 -t raw -r 8000 -e signed -b 16 -c 1 test.pcm
|
|
```
|
|
|
|
### API
|
|
|
|
Night API endpoint (make sure `nightMode` is enabled in Majestic config,
|
|
or use it from the camera without restrictions):
|
|
|
|
* http://192.168.1.10/night/on - Turn on night mode.
|
|
* http://192.168.1.10/night/off - Turn off night mode (set to day).
|
|
* http://192.168.1.10/night/toggle - Toggle current mode.
|
|
|
|
### Monitoring
|
|
|
|
* http://192.168.1.10/metrics - Standard Node exporter compatible
|
|
and application-specific metrics for [Prometheus](https://prometheus.io/).
|
|
|
|
|
|
[aac]: https://en.wikipedia.org/wiki/Advanced_Audio_Coding
|
|
[alaw]: https://en.wikipedia.org/wiki/A-law_algorithm
|
|
[dng]: https://en.wikipedia.org/wiki/Digital_Negative
|
|
[g711]: https://en.wikipedia.org/wiki/G.711
|
|
[heif]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
|
|
[hls]: https://en.wikipedia.org/wiki/HTTP_Live_Streaming
|
|
[jpeg]: https://en.wikipedia.org/wiki/JPEG
|
|
[mjpeg]: https://en.wikipedia.org/wiki/Motion_JPEG
|
|
[mp3]: https://en.wikipedia.org/wiki/MP3
|
|
[mp4]: https://en.wikipedia.org/wiki/MPEG-4_Part_14
|
|
[opus]: https://en.wikipedia.org/wiki/Opus_(audio_format)
|
|
[pcm]: https://en.wikipedia.org/wiki/Pulse-code_modulation
|
|
[raw]: https://en.wikipedia.org/wiki/Raw_image_format
|
|
[rtsp]: https://en.wikipedia.org/wiki/RTSP
|
|
[ulaw]: https://en.wikipedia.org/wiki/%CE%9C-law_algorithm
|
|
[yuv]: https://en.wikipedia.org/wiki/YUV
|
|
[ffplay]: https://ffmpeg.org/ffplay.html
|
|
[ffmpeg]: https://ffmpeg.org/
|
|
[sox]: https://en.wikipedia.org/wiki/SoX
|