Skip to content

Commit 1f7fd62

Browse files
Learn Build Service GitHub AppLearn Build Service GitHub App
authored andcommitted
Merging changes synced from https://github.com/MicrosoftDocs/azure-docs-pr (branch live)
2 parents da99e9d + 1d71353 commit 1f7fd62

16 files changed

+170
-17
lines changed

articles/azure-monitor/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Overview of Microsoft services and functionalities that contribute
44
ms.topic: overview
55
author: rboucher
66
ms.author: robb
7-
ms.date: 12/07/2023
7+
ms.date: 02/05/2024
88
ms.reviewer: robb
99
---
1010
# Azure Monitor overview
@@ -36,7 +36,7 @@ You can also export monitoring data from Azure Monitor into other systems so you
3636
- Integrate with other third-party and open-source monitoring and visualization tools
3737
- Integrate with ticketing and other ITSM systems
3838

39-
If you're a System Center Operations Manager (SCOM) user, Azure Monitor now includes a preview of Azure Monitor [SCOM Managed Instance (SCOM MI)](./vm/scom-managed-instance-overview.md). Operations Manager MI is a cloud-hosted version of Operations Manager and allows you to move your on-premises Operations Manager installation to Azure.
39+
If you're a System Center Operations Manager (SCOM) user, Azure Monitor now includes Azure Monitor [SCOM Managed Instance (SCOM MI)](./vm/scom-managed-instance-overview.md). Operations Manager MI is a cloud-hosted version of Operations Manager and allows you to move your on-premises Operations Manager installation to Azure.
4040

4141
The following diagram shows a high-level architecture view of Azure Monitor.
4242

articles/communication-services/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,8 @@ items:
344344
href: quickstarts/voice-video-calling/get-started-raw-media-access.md
345345
- name: Add video background effects
346346
href: quickstarts/voice-video-calling/get-started-video-effects.md
347+
- name: Add Augmented Reality filters to your video calls
348+
href: tutorials/add-video-augmented-reality-tutorial.md
347349
- name: Diagnostics
348350
items:
349351
- name: Diagnose your network
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
---
2+
title: Tutorial - Add Augmented Reality filter to your app
3+
titleSuffix: An Azure Communication Services tutorial
4+
description: In this tutorial, you learn how to add Augmented Reality filter to your app using Azure Communication Services and other effects SDKs.
5+
author: sloanster
6+
services: azure-communication-services
7+
8+
ms.author: micahvivion
9+
ms.date: 01/15/2024
10+
ms.topic: tutorial
11+
ms.service: azure-communication-services
12+
ms.subservice: calling
13+
ms.custom: mode-other
14+
---
15+
16+
# Tutorial: How to add Augmented Reality filters to your video calls
17+
18+
> [!NOTE]
19+
> DeepAR SDK is third-party software which is licensed under its own terms. Microsoft does not make any representations or warranties concerning the use of third-party software.
20+
21+
In some usage scenarios, you may want to apply some video processing to the original camera video, such as background blur or background replacement.
22+
This can provide a better user experience.
23+
The Azure Communication Calling video effects package provides several video processing functions. However, this isn't the only choice.
24+
You can also integrate other video effects library with ACS raw media access API.
25+
26+
We'll use DeepAR SDK(https://www.deepar.ai/) as an example to show how to integrate other effects libraries with ACS Calling SDK.
27+
Let's try DeepAR to enrich your video with Augmented Reality!
28+
29+
## Prerequisites
30+
31+
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
32+
- An Azure Communication Service resource. Further details can be found in the [Create an Azure Communication Services resource](../quickstarts/create-communication-resource.md) quickstart.
33+
- An Azure Communication Services voice and video calling enabled client. [Add video calling to your app](../quickstarts/voice-video-calling/get-started-with-video-calling.md?pivots=platform-web).
34+
- DeepAR license key. [Getting started | DeepAR](https://docs.deepar.ai/deepar-sdk/platforms/web/getting-started).
35+
36+
## How video input and output work between ACS Web SDK and DeepAR
37+
Both ACS Web SDK and DeepAR can read the camera device list and get the video stream directly from the device.
38+
We want to provide consistency in the app, and DeepAR SDK provides a way for us to directly input a video stream acquired from ACS Web SDK.
39+
Similarly, ACS Web SDK needs the processed video stream output from DeepAR SDK and sends this video stream to the remote endpoint.
40+
DeepAR offers the option to use a canvas as an output. ACS Web SDK can consume the raw video stream captured from the canvas.
41+
42+
Here's the data flow:
43+
44+
:::image type="content" source="./media/ar/videoflow.png" alt-text="The diagram of data flow between ACS SDK and DeepAR SDK.":::
45+
46+
47+
## Initialize DeepAR SDK
48+
49+
To enable DeepAR filters, you need to initialize DeepAR SDK, this can be done by invoking `deepar.initialize` API.
50+
```javascript
51+
const canvas = document.createElement('canvas');
52+
const deepAR = await deepar.initialize({
53+
licenseKey: 'YOUR_LICENSE_KEY',
54+
canvas: canvas,
55+
additionalOptions: {
56+
cameraConfig: {
57+
disableDefaultCamera: true
58+
}
59+
}
60+
});
61+
```
62+
Here we disable the default camera because we want ACS Web SDK to provide the source video stream.
63+
The canvas is required as this provides a way for ACS Web SDK to consume the video output from DeepAR SDK.
64+
65+
## Connect the input and output
66+
67+
To start a video call, you need to create a `LocalVideoStream` object as the video input in SDK.
68+
```javascript
69+
const deviceManager = await callClient.getDeviceManager();
70+
const cameras = await deviceManager.getCameras();
71+
const camera = cameras[0]
72+
const localVideoStream = new LocalVideoStream(camera);
73+
await call.startVideo(localVideoStream);
74+
```
75+
By doing this, ACS SDK directly sends out the video from camera without processed by DeepAR.
76+
We need to create a path to forward the video acquired from ACS SDK to DeepAR SDK.
77+
78+
```javascript
79+
const deviceManager = await callClient.getDeviceManager();
80+
const cameras = await deviceManager.getCameras();
81+
const camera = cameras[0]
82+
const inputVideoStream = new LocalVideoStream(camera);
83+
const inputMediaStream = await inputVideoStream.getMediaStream();
84+
const video = document.createElement('video');
85+
const videoResizeCallback = () => {
86+
canvas.width = video.videoWidth;
87+
canvas.height = video.videoHeight;
88+
};
89+
video.addEventListener('resize', videoResizeCallback);
90+
video.autoplay = true;
91+
video.srcObject = inputMediaStream;
92+
deepAR.setVideoElement(video, true);
93+
```
94+
Now we have finished configuring the input video. To configure the output video, we need another `LocalVideoStream`.
95+
96+
```javascript
97+
const outputMediaStream = canvas.captureStream(30);
98+
const outputVideoStream = new LocalVideoStream(outputMediaStream);
99+
await call.startVideo(outputVideoStream);
100+
```
101+
102+
## Start the effect
103+
104+
In DeepAR, effects and background processing are independent, which means you can apply the filter while enabling the background blur or background replacement.
105+
```javascript
106+
// apply the effect
107+
await deepAR.switchEffect('https://cdn.jsdelivr.net/npm/deepar/effects/lion');
108+
// enable the background blur
109+
await deepAR.backgroundBlur(true, 8);
110+
111+
```
112+
:::image type="content" source="./media/ar/screenshot.png" alt-text="Screenshot of the video effect.":::
113+
114+
## Stop the effect
115+
116+
If you want to stop the effect, you can invoke `deepar.clearEffect` API
117+
```javascript
118+
await deepAR.clearEffect();
119+
```
120+
To disable the background blur, you can pass `false` to `deepar.backgroundBlur` API.
121+
122+
## Disable DeepAR during the video call
123+
124+
In case you want to disable DeepAR during the video call.
125+
You need to call `deepar.stopVideo`.
126+
Invoking `deepar.stopVideo` also ends the current media stream captured from the canvas.
127+
128+
```javascript
129+
await outputVideoStream.switchSource(cameras[0]);
130+
await deepAR.stopVideo();
131+
```
132+
133+
## Next steps
134+
For more information, see the following articles:
135+
136+
- Learn about [Video effects](../quickstarts/voice-video-calling/get-started-video-effects.md?pivots=platform-web).
137+
- Learn more about [Manage video during calls](../how-tos/calling-sdk/manage-video.md?pivots=platform-web).
138+
- DeepAR documentation. [Getting started | DeepAR](https://docs.deepar.ai/deepar-sdk/platforms/web/getting-started).
132 KB
Loading
76.1 KB
Loading

articles/defender-for-cloud/adaptive-application-controls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ When you enable and configure adaptive application controls, you get security al
1919

2020
By defining lists of known-safe applications, and generating alerts when anything else is executed, you can achieve multiple oversight and compliance goals:
2121

22-
- Identify potential malware, even any that antimalware solutions can miss
22+
- Identify potential malware, even any that antimalware solutions can miss
2323
- Improve compliance with local security policies that dictate the use of only licensed software
2424
- Identify outdated or unsupported versions of applications
2525
- Identify software your organization banned but is nevertheless running on your machines

articles/defender-for-cloud/adaptive-network-hardening.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,5 +137,3 @@ To delete an adaptive network hardening rule for your current session:
137137
## Next steps
138138

139139
- View common questions about [adaptive network hardening](/azure/defender-for-cloud/faq-defender-for-servers#which-ports-are-supported-by-adaptive-network-hardening-)
140-
141-

articles/defender-for-cloud/agentless-malware-scanning.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ Microsoft Defender for Cloud's Defender for Servers plan 2 supports an agentless
1515

1616
Agentless malware scanning provides:
1717

18-
- Up-to-date and comprehensive malware detection capabilities that utilize the [Microsoft Defender Antivirus](/microsoft-365/security/defender-endpoint/microsoft-defender-antivirus-windows?view=o365-worldwide) engine and [cloud protection](/microsoft-365/security/defender-endpoint/cloud-protection-microsoft-defender-antivirus?view=o365-worldwide) signature feed that Microsoft's intelligence feeds support.
18+
- Up-to-date and comprehensive malware detection capabilities that utilize the [Microsoft Defender Antivirus](/microsoft-365/security/defender-endpoint/microsoft-defender-antivirus-windows) engine and [cloud protection](/microsoft-365/security/defender-endpoint/cloud-protection-microsoft-defender-antivirus) signature feed that Microsoft's intelligence feeds support.
1919

20-
- Quick and full scans that use heuristic and signature-based threat detection.
20+
- Quick and full scans that use heuristic and signature-based threat detection.
2121

2222
- Security alerts that are generated when malware is detected. These alerts provide extra details and context for investigations, and are sent to both the Defender for Cloud Alerts page and Defender XDR.
2323

@@ -32,7 +32,7 @@ Agentless malware scanning offers the following benefits to both protected and u
3232

3333
- **Detect potential threats** - The agentless scanner scans all files and folders including any files or folders that are excluded from the agent-based antivirus scans, without having an effect on the performance of the machine.
3434

35-
You can learn more about [agentless machine scanning](concept-agentless-data-collection.md) and how to [enable agentless scanning for VMs](enable-agentless-scanning-vms.md).
35+
You can learn more about [agentless machine scanning](concept-agentless-data-collection.md) and how to [enable agentless scanning for VMs](enable-agentless-scanning-vms.md).
3636

3737
> [!IMPORTANT]
3838
> Security alerts appear on the portal only in cases where threats are detected on your environment. If you do not have any alerts it may be because there are no threats on your environment. You can [test to see if the agentless malware scanning capability has been properly onboarded and is reporting to Defender for Cloud](enable-agentless-scanning-vms.md#test-the-agentless-malware-scanners-deployment).

articles/defender-for-cloud/agentless-vulnerability-assessment-azure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Container vulnerability assessment powered by Microsoft Defender Vulnerability M
2424
- **Exploitability information** - Each vulnerability report is searched through exploitability databases to assist our customers with determining actual risk associated with each reported vulnerability.
2525
- **Reporting** - Container Vulnerability Assessment for Azure powered by Microsoft Defender Vulnerability Management provides vulnerability reports using following recommendations:
2626

27-
| Recommendation | Description | Assessment Key
27+
| Recommendation | Description | Assessment Key |
2828
|--|--|--|
2929
| [Azure registry container images should have vulnerabilities resolved (powered by Microsoft Defender Vulnerability Management)](https://ms.portal.azure.com/#view/Microsoft_Azure_Security_CloudNativeCompute/AzureContainerRegistryRecommendationDetailsBlade/assessmentKey/c0b7cfc6-3172-465a-b378-53c7ff2cc0d5) | Container image vulnerability assessment scans your registry for commonly known vulnerabilities (CVEs) and provides a detailed vulnerability report for each image. Resolving vulnerabilities can greatly improve your security posture, ensuring images are safe to use prior to deployment. | c0b7cfc6-3172-465a-b378-53c7ff2cc0d5 |
3030
| [Azure running container images should have vulnerabilities resolved (powered by Microsoft Defender Vulnerability Management)](https://ms.portal.azure.com/#view/Microsoft_Azure_Security_CloudNativeCompute/ContainersRuntimeRecommendationDetailsBlade/assessmentKey/c609cf0f-71ab-41e9-a3c6-9a1f7fe1b8d5)  | Container image vulnerability assessment scans your registry for commonly known vulnerabilities (CVEs) and provides a detailed vulnerability report for each image. This recommendation provides visibility to vulnerable images currently running in your Kubernetes clusters. Remediating vulnerabilities in container images that are currently running is key to improving your security posture, significantly reducing the attack surface for your containerized workloads. | c609cf0f-71ab-41e9-a3c6-9a1f7fe1b8d5 |

articles/defender-for-cloud/agentless-vulnerability-assessment-gcp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.topic: how-to
1111

1212
Vulnerability assessment for GCP, powered by Microsoft Defender Vulnerability Management, is an out-of-box solution that empowers security teams to easily discover and remediate vulnerabilities in Linux container images, with zero configuration for onboarding, and without deployment of any agents.
1313

14-
In every account where enablement of this capability is completed, all images stored in Google Registries (GAR and GCR) that meet the following criteria for scan triggers are scanned for vulnerabilities without any extra configuration of users or registries. Recommendations with vulnerability reports are provided for all images in Google Registries (GAR and GCR), images that are currently running in GKE that were pulled from Google Registries (GAR and GCR) or any other Defender for Cloud supported registry (ACR or ECR). Images are scanned shortly after being added to a registry, and rescanned for new vulnerabilities once every 24 hours.
14+
In every account where enablement of this capability is completed, all images stored in Google Registries (GAR and GCR) that meet the criteria for scan triggers are scanned for vulnerabilities without any extra configuration of users or registries. Recommendations with vulnerability reports are provided for all images in Google Registries (GAR and GCR), images that are currently running in GKE that were pulled from Google Registries (GAR and GCR) or any other Defender for Cloud supported registry (ACR or ECR). Images are scanned shortly after being added to a registry, and rescanned for new vulnerabilities once every 24 hours.
1515

1616
Container vulnerability assessment powered by Microsoft Defender Vulnerability Management has the following capabilities:
1717

0 commit comments

Comments
 (0)