Integration of most IP cameras for live viewing works with many available cameras.
As myServer 6 displays the user interface using browser technology, the camera feed must support displaying natively in a browser. Many cameras support an mjpeg output. This is the preferred means. Many other cameras support RTSP output. Allonis's IP Camera driver can instruct the camera to take "snapshot images" and send those to the browser. h.264 and h.265 popular camera protocols require an "app" with a media player embedded to display video. This is not natively supported in a browser.
BlueIris is a Windows based camera NVR (network video recorder) that also can transcode many cameras outputs to a mjpeg stream that can be displayed in the browser. The downside is encoding is a very CPU intensive operation so a fast Windows PC is required to transcode multiple streams concurrantly. Running myServer 6 on the same PC is popular, but note that BlueIris will take much of the processor resources that may impact myServer's performance.
You can also use a Raspberry Pi 3/4 with it's varied supported cameras as an IP camera. An ESP8232 Wifi board is also a very inexpensive and low overhead camera that can be used.
Camera Control
Many IP cameras also support Pan / Tilt / Zoom and other controls. the Generic IP Camera driver supports sending those commands. The key is to know which command gets sent for your camera make / model.
Some references for camera control:
https://www.ispyconnect.com/sources.aspx
Camera Snapshot and Recording
Look in myServer/Configuration/Media folders. Make sure the folder is pointing to a valid location. The PI via the IPCameras driver will do the recording. It reads the h264 frames from the camera and transcodes to .mp4 video using FFMPeg. The file will be placed in the videos folder of the media folder defined in myServer. The default name is <<CameraName>>-<<timestamp>>.mp4
360 View Cameras
360 cameras are of two types. Those intended for active sports and systems for vehicles.
For RVs, Trucks and Autos, on the market are camera systems that have typically four cameras. Front, Rear and sides. These camera images are brought into a specialized NVR where their images are combined (stiched) and edited (cropped) so that they appear from a vehicle top side view to show a full 360 degree view around the vehicle. The top of the vehicle is an image that is superimposed to create the illusion of a birds eye view. The output of this NVR can be integrated into myServer browser by treating the NVR as a "camera".
Sports cameras (like those from GoPro, Garmin, Samsung) contain wide angle lenses and software that allows the output to be dynamic in that you can click on the touchscreen (like on your phone) and move the image to view a 360 degree spherical perspective. We haven't yet tested to see how this might integrate with myServer's browser but it looks like fun.
This section will be further expanded as we gain more background with these emerging products.
Installation
The IPCamera driver is Legacy. Please see the new MediaMTX driver for the latest.
Example of configuring the IP Camera Driver
Download and install the IP Camera Driver from Software Updater on the primary myServer 6 Controller. You should also download the sample HTML5 Sheer.Tablets and Phones UI templates and install on your myServer 6 Controller.
Restart myServer 6.
- Within IP Camera Driver, Define a Host (local myServer PI IP Address:8083) using Command Builder and Update
- Within the IP Camera Driver , Click Configure Cameras. WebRTC should open.
- Wihtin WebRTC, define the Streams by clicking Add Streams. Save
- Within the IP Camera Driver, click Discover. This will add the WebRTC defined cameras to the list of cameras. myServer Variables are automatically created for the cameras.
- Name the "Make" of the camera either: "Camera" (no control of PTZ) or "Onvif" (for Onvif compatible cameras) or "Visca" (for Serial over ethernet controlled cameras - common in conference room cams).
- You should now be able to view the camera in a myServer web page.
- click configuration and choose Add Controller from the command list.
- Edit the command for the IP Camera <<IPCameras|AddController~Name~IP Address~8083~RoomName>>
- The IP Camera Driver will create vars for the various cameras using {video_1_image}} as the naming convention. The default camera scenes will then automatically display those camera views if the camera is compatible with the IP Camera Driver.
- Open browser and open your systems "iPad" user interface. Select the camera icon.
- The Camera user interface should open. Select which camera you would like to view full screen
- Shortly, the camera stream should connect and you should be watching the live camera image. You can control pan / tilt as well (if supported by your camera and configured in the Camera Driver).
- The supported commands for the IPCamera driver are listed in the Command builder within the IP Camera Driver Configuration.
How it works: The IPCamera Driver builds image command URL for taking snapshots.
Video|1~SetItem~Snapshot~http://192.168.1.77/cgi-bin/snapshot.cgi?1
Chrome Developer Tools on the display browser can tell you what the frame rate is for the jpeg continual refresh images. This rate is typically how many images per second the camera can take JPEG still pictures. To increase this number, eliminate any non needed services that the camera is processing using the cameras setup method.
The RTSP settings are saved to: /usr/local/Allonis/rtspcamera/config.json
Example settings:
Name: Diner Cam1
Make: Visca (this tells the driver to use the "Visca" protocol - ie: not Onvif)
Model: Camera
Type: Camera
IP Address: 192.168.1.204
Network Port: 52381
Stream #: 0
Stream URL: rtsp://admin:
Device Address: http://192.168.1.216:8083/stream/fe7294b3-0ef8-44c0-83fe-4f99d9007424/channel/0/
Serial Number: fe7294b3-0ef8-44c0-83fe-4f99d9007424
Room: Equipment
Planned: MediaMatrix component to replace WebRTC
From V5 documentation:
Using the GenericIPCam driver in Family manager add the cameras so they look like this
Then open the driver. You should see something like this
Finally double click on the camera to edit the details.
If the camera requires authentication enter the username and password. Otherwise you can leave off the ?user=<<username>>&pw=<<password>> bits in the following urls.
The two important fields are the Snapshot Image and Live Image.
The Snapshot image is for the static jpg image capture. Its url looks like
http://<<ipaddress>>:<<ipport>>/image/cam1?user=<<username>>&pw=<<password>>
Note: cam1 is the camera name you gave the camera in your BlueIris settings. Make sure it matches your camera name.
This image is exposed in the {{video_<id>_image}} server variable.
The live image is for the motion jpeg live stream. Its url looks like
http://<<ipaddress>>:<<ipport>>/mjpg/cam1/video.mjpg?user=<<username>>&pw=<<password>>
Again Note: cam1 is the camera name you gave the camera in your BlueIris settings. Make sure it matches your camera name.
This image is exposed in the {{video_<id>_liveimage}} server variable.
You would normally want to use the live image server variable on your scenes. However, if you have more than six cameras on your system you will run into browser limitations trying to view all the cameras on one page. Most browsers (Chrome, Safari) impose a limit of a maximum of 6 concurrent connections to a single web server at a time. If you try to view 8 motion jpegs from the same BlueIris server you'll only get to see 6 of them,
The workaround for this limitation is to switch to viewing the static image variable and then in the designer checking the reload box on the image properties. This tells the javascript to immediately reload a new image as soon the the current image is displayed. You'll still see motion just at a reduced framerate. I've been able to put up to 16 cameras on one page using this technique.
On a side note cameras these days boast incredibly high resolutions. More than is necessary for any casual viewing in a browser. I typically configure Blue Iris's web server encoder options to automatically scale down the image to make things a bit more efficient. Especially on network traffic. Here's an example of what I do. Use the best hardware acceleration option that is available on your Blue Iris PC.
Known bugs:
3/23/2023: Driver Locks up when adding a second controller. RTSP software not loading. RTSP display resolution issue. Difficult to scroll to bottom of Add Controller UI.