Body worn solutions from Axis capture valuable evidence. And they’re an effective way to deter bad behavior and positively influence the actions of camera wearers and the public alike. They record incidents as they appeared to the camera wearer, and as they sounded to all involved. They deliver recordings with high quality audio and video that you can use in internal investigations and in court.
Availability in more countries/regions is planned for next year. Stay tuned for updated information on this page or contact your local Axis office if you have any urgent requests.
Footage from Axis body worn cameras is a useful tool for teaching personnel how to respond to situations they’re likely to encounter. For example, you can analyze footage of an incident. Or use portions of an encounter as the basis for testing how students would respond to a similar set of circumstances before revealing the real outcome.
Axis body worn solution - including the robust camera, docking stations and system controller - has been designed as an open system architecture, which allows for integration with video management systems (VMS) and evidence management systems (EMS), making the solution incredibly flexible.
You can plug Axis body worn solutions right into an Axis video management system or use your own preferred system. You can store video in the cloud or onsite. Either way you’ll do a better-than-ever job of deterring and protecting, and of gathering documentation and forensic evidence. And of course, Axis body worn solutions give you superior image quality and video that holds up in court.
The Axis body worn solution brings several concrete advantages, e.g.:
Store as much footage as you need without compromising image quality
View and label material from any cell phone (mobile app will be released during Q3 2020)
Find and retrieve evidence quickly and easily
Easy integration with VMS & EMS systems
Cost effective and scalable solution
Designed from the ground up with cybersecurity in mind
To help you build a strong integration with Axis body worn solution, we have developed trainings, API’s, code examples and important information about things you should consider when designing your integration. Follow the step-by-step guidelines below to learn more about suggested architecture, development examples and recommended considerations.
The fastest way to get to know and get a good understanding of the Axis body worn solution is to read the introduction presentation and run the online training. You will learn about the components involved, the capabilities offered and various security aspects.
Introduction presentation – for integration of Axis body worn (pdf)
Camera user (police officer or security guard)
Carries and uses the body worn camera on patrol.
User scenarios:
Investigator
Processes recordings and metadata that the camera user produces. For smaller departments, one person can have both the camera user and investigator roles.
User scenarios:
Prosecutor
User scenarios:
Once you are familiar with Axis body worn data flow, such as adding a user, assigning a camera and transfer of recordings, it is a good idea to try out the body worn integration example. We have used the same APIs covered in this section for integration of the body worn solution in AXIS Camera Station.
Follow the install instructions to configure Axis body worn Swift service example. For example:
You may need to open the port specified during the installation (default 8080).
After installation it is possible to run the server without running as a service if you want to be able to see the logs directly in a terminal window. To do this, make sure you stop the service first and simply double click the AxisBodyWornSwiftServiceExample.exe file.
The server will now be listening on the port specified during installation.
You can also run it as a service with the start command.
The screenshots are representative and may not match the latest version of the sample code. We will add new features in this sample code, please check the readme file inside AxisBodyWornSwiftServiceExample_R1.1.2.zip for more detailed information.
When run as a service, you should configure it to start automatically every time the computer boots.
The logs from the service are logged in Windows event viewer. You can type “event” in the windows search bar and run it. In the event viewer, choose Windows logs and then Applications. The logs will be listed under the application name AxisBodyWornSwiftServiceExample.
If you have a NAS device with Swift server or an application that works as a Swift Server, you can try setting it up as a content destination for the body worn system as well. Learn more about the Swift API if you need a deeper understanding of the API.
In order to test, upload the config file in the Body Worn Manager. You can do this either during the setup wizard or afterwards in the content destination tab.
If you get any errors, please make sure that the Windows firewall is not blocking. You can disable it temporary or configure the correct ports that enable the communication.
The containers storing the files will be created in the directory specified during installation. The uploader needs a json connection file which will have been auto generated. It is located in the storage location specified during installation, named as config.json.
The Body Worn Manager handles all camera configuration. The data is pushed form the body worn system to the content destination. This is different from how you normally integrate with other Axis cameras. The VMS or EMS is acting like a server and listening for data that is pushed from the system controller. At the end of the transfer you will get a video and metadata, while all the configuration takes place outside the content destination in the Body Worn Manager.
After configuration, by running the “AxisBodyWornSwiftServiceExample.exe” or of the general Swift server, please try filming a few clips and offloading them to your server. You can use Wireshark to sniff the network and get API calls during the transfer.
To understand the file structures that the swift server creates, consult the body worn API documentation.
For every recording, a new container will be created. It is named as <userid>_<deviceid>_date_time where Username is the nice name and userid is the UUID of the user who was assigned to the camera when it was recording and deviceid is the id of the camera that did the recording.
Note that if the user who did the recording for some reason doesn't exist in the Users folder, the naming of the container will instead be <userid>_<deviceid>_date_time.
In every recording container there will be one or multiple clips with the naming <date>_<time>_<id>.<mkv|mp4>. And its corresponding metadata, <containername>.<moviename>.metadata.json. There will also be a metadata file for the container which is called <containername>.metadata.json
To make integration easier, the 'status: Complete' metadata attribute value of a container is also available as a zero size file named 'complete', inside the container directory, when it is set. Thereby an integrating application can notify/watch for that file to appear instead of polling and parsing the json metadata file.
Axis body worn solution is constantly evolving with new features and functions. Our recent development is the Capability API. It allows you to integrate our extended and updated features in your own timeline. It is backwards compatible, which makes sure that if the capabilities API is not supported in your integration, it will work as it is used to, without any effect.
For instance, StoreBookmarks capability allow the user to tag each clip with a category and notes out in the field using the body worn assistant application, available in Android's Google Play and on the iOS App Store. If you have not implemented StoreBookmarks yet to parse the new notes and categories from the end user, it will simply turn off that functionality in our app. You can find more information on the Body worn API.
You are now prepared to start your implementation. It is up to you to decide which programming language to use, but feel free to look at parts of the sample code and convert them to your choice of programming language.
Axis body worn is designed to be used with HTTPS, however, during the first development phase it is better to use HTTP since encryption will make things complicated to debug.
You can get video files in MP4 or MKV format, including Audio codec AAC (48kHz only). If you get your file in MKV format you can later on use the AXIS Media Control SDK to parse the data.
You should pay attention on how you would like to store the metadata information, i.e. in XML or txt format. You probably want to have a strategy for storing the metadata and videos together. Do not forget to show interesting metadata to the user if needed.
You should send “200 OK” to the system controller to complete the file transfer. The system controller will then delete the recording and you will own the data. So, before sending “200 OK”, make sure that the file transfer is completed, and that the file is not corrupt.
Save and handle the data in your content destination. Once you have received the data, you need to handle it in a good and secure way.
If your system is offline, the system controller will try to push data regularly and will keep the recordings until they are transferred.