Custom Cisco Desk Device Video Layouts in PowerPoint Slides
November 6, 2023The devices in the Cisco Desk series for RoomOS have some great capabilities for sharing live content in meetings and calls. One of the amazing ways Desk devices can enable more captivating presentations is with the Immersive Sharing feature. This feature allows the audience to keep focus on both the presenter and the content, by adding an overlay of the camera video within the presentation channel. With Immersive Share, you can use the touchscreen on the Desk device to change the position and size of your camera video embedded within the presentation content, both before and during the share.
However, what if you want to present PowerPoint slides that require custom layouts for each slide, so the Desk device camera video is properly sized and in the right location based on the content? To see how this can be this can be done through the power of macros and the roomOS xAPI, you can leverage a great demo: the Webex Desk Slide Presenter integration.
About the demo
The demo was created by Joe Hughes and arranged by Dirk-Jan Uittenbogaard, both Cisco Technical Solutions Architects. The original instructions can be found on the Cisco Community Forums and now updated here for this blog. To get started, just follow the steps below to run the demo and see it in action. The macro enabled PowerPoint slides that are included also make great templates to repurpose for your own immersive presentations.
Brief explanation
With this integration, eachPowerPoint slide controls **where/how big **your camera video appears on the screen by looking for a specially named shape. The complete demo can be found on GitHub and the components are as follows:
- xAPI macro: WebexDeskSlidePresenter.js This JavaScript file will be deployed to the Desk device as an onboard macro that enables custom control of the Immersive Share feature. For more information on how to work with the xAPI, check out the tech docs.
- PowerPoint file that contains a macro: TemplateDeskProMacro_verXX.pptm
- Users can also create macros inside a PowerPoint presentation. The PowerPoint macro created for the slides in this demo does the following:
- Checks if the slide contains a shape with a special name to indicate where the video should be placed
- Calculates where the Desk device should put (your) camera feed and how big it should be
- Sends API calls to the Desk device to put your video in the right location.
- PowerPoint file that contains a macro (
TemplateDeskProMacro_verXX.pptm
)
Requirements
In order to run this demo integration, you will need the following:
- Webex video device: Desk, DeskMini, DeskPro
- Video device: ability to add a user (administration)
- Macro-enabled PowerPoint slides (included)
- The computer running PowerPoint to be on the same network as the Webex Desk device
How to setup the demo
For a quick rundown on how to use this demo, check out this great Vidcast by Dirk-Jan Uittenbogaard.
Before you start, download this ZIP file from GitHub. It contains the 2 files you need: the .PPTM
file and the .JS
file.
- Desk device: Use the web IP to access the device and log in. For administrator setup, see this help article for more information.
- Desk device: Under SETUP, click Users and then "Create User". Role: only 'RoomControl' Password: you decide
- Desk device: Under CUSTOMIZATION click Macro editor, then "Import from file".
- PowerPoint: Open the downloaded PPTM (M=Macro) file
- When the popup is shown, click "enable macros"
- On slide 1, enter the IP-address of your (locally accessible) Desk Pro + the username/password you created in the previous step. Note that when you go into presentation view and click the "start macro" button, your password will be hidden.
- PowerPoint: Start your presentation
- Start slideshow on slide 1 and click "Start Macro" (and confirm that you want to run the macro)
- The password is now invisible, and the presentation can start. Click the 'self-view toggle' button to check if you appear in the test box below the start button.
In step 5, item 2 you RUN the PowerPoint macro. You will have to run the macro every time you open this PowerPoint presentation.
Make your own macro-enabled slides
Now that you have the demo running and can see how the integration works, you should be ready to design and present your own immersive slides using the PPTM deck as your template. Here are the steps to get started:
Open the
.PPTM
file.RUN the Macro (Remember: you always must do this when opening this
.PPTM
file).Copy slides from your original presentation.
Paste your slides in the .
PPTM
file (and "keep formatting"). Paste them AFTER SLIDE 1 because that is needed for the integration with the Desk device.On every slide where video needs to be added, add a 'rectangle' shape (best to keep a 16:9 ratio).
Right-click on the shape.
Select "Size and Position”.
Set Height to 4.5 and Width to 8 (16:9 aspect ratio).
Click on "Lock aspect ratio”.
Now you can resize and position the square.
Select the rectangle and open the "selection pane" to "rename" the rectangle
RENAME your rectangle to "VideoSquare" or any of the names listed below under "Video embed options" below. The shape name defines its appearance.
Go into presentation mode and see your video appear in the slide (don't forget to look at the Desk device self-view).
Video embed options
This demo has a variety of options for creating immersive slides, providing a lot of flexibility. The descriptions for each of the video layouts contained in the demo slides are referenced in the matrix below.
NAME | IN-CALL ONLY? | Video Channel | Video on Slide | Background | Notes | |
VideoSquare | - | no | yes | transparent | Or use 'VideoShape' | |
VideoSquare_50 | - | no | yes | transparent | (1-100) Transparency number | |
VideoSquare_PiP | - | no | yes | real | Pip with your physical background | |
VideoSquare_FlipPip | - | no | yes | real | Reverse Pip (PPT small, you big) | |
CameraOnly | - | no | yes | current | Show camera, no slide | |
ContentOnly | - | no | no | - | Slide without video | |
SideBySide_[123x] | ✓ | no | yes | current | Slide and video same size | |
SideBySide_[123x]_u | ✓ | yes | no | current | 1=Cam, 2=PC(USBc), 3=HDMI, u=mute video | |
Prominent | ✓ | no | yes | current | Small video outside big content | |
StopContentShare | ✓ | no | yes | current | Stops sharing PPT | |
StopImmersiveShare | ✓ | yes | no | current | Keeps sharing, video moves to video channel | |
SpeakerTrackDiagnostic | - | no | yes | real | Send Speaker track in content channel | |
PreviousSlide | - | - | - | - | Uses the previous slide's command |
There are some other important guidelines to note:
- You can only have 1 object per slide.
- The names are not case-sensitive.
- The VideoSquare object can be transparent (i.e. invisible).
Demo FAQs
Q: Where does the video go?
A: This mechanism uses immersive share. That means the PowerPoint with your video is shared in the content channel and people can also see you via video (thumbnail)
Q: What if I have a virtual background configured?
A: That won't be visible except with the "CameraOnly" object.
Q: What if a slide does not have any of these boxes?
A: Immersive share will stay engaged (no camera) and the slide (PC source) will still be visible.
Q: Can I use shapes like circles, triangles, etc.?
A: You could but it doesn't help you because the DeskPros video shape is a square, 16:9
Q: How can I quickly create a 16:9 shape?
A: Create a square, double click it, under size uncheck "lock aspect ratio", make the height:9 width:16, check "aspect ratio", now resize
Q: I don't see my video!
A: Did you configure and double-check everything as described above? Did you start the macro?
Q: I see my video but not on a specific slide?
A: Does the rectangle that you created have the right name?
A: Did you group the rectangle? (you should not)
Need some help? We Got You Covered!
As always, support is available if you have any questions or need some guidance. For help with Cisco RoomOS xAPI and device macros, check out their dedicated support channels. If you need assistance with the other APIs covered here on the Developer portal, the Webex Developer Support Team is standing by and happy to help.