SlideShare a Scribd company logo
Building your own video devices
Building your own video devices
Building your own video devices
• HTTP://WWW.CROWDOPTIC.COM/FILES/ABC_PACERS_GLASS/
• HTTP://WWW.CROWDOPTIC.COM/FILES/CROWDOPTICCLUSTERS/
• HTTP://WWW.CROWDOPTIC.COM/FILES/CURATION/
• HTTP://WWW.CROWDOPTIC.COM/FILES/DISRUPTSF/
• HTTP://WWW.CROWDOPTIC.COM/FILES/MAPLESTESTLARGE_10-15/
• HTTP://WWW.CROWDOPTIC.COM/FILES/NEWSIGNAL/
• HTTP://WWW.CROWDOPTIC.COM/FILES/ZOOM2/
• HTTP://WWW.CROWDOPTIC.COM/FILES/JABBERDEMO/
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices
Building your own video devices

More Related Content

Viewers also liked (20)

PDF
VR, a new technology over 40,000 years old
WithTheBest
 
PDF
How to survive the early days of VR as an Indie Studio
WithTheBest
 
PDF
Measuring Behavior in VR - Rob Merki Cognitive VR
WithTheBest
 
PPTX
How we use vr to break the laws of physics
WithTheBest
 
PPTX
Wizdish rovr
WithTheBest
 
PPTX
Maximizing performance of 3 d user generated assets in unity
WithTheBest
 
PDF
Mixed reality 101
WithTheBest
 
PDF
Transported vr the virtual reality platform for real estate
WithTheBest
 
PPTX
You dont have to be mad to do VR and AR ... but it helps
WithTheBest
 
PDF
Global demand for Mixed Realty (VR/AR) content is about to explode.
WithTheBest
 
PPTX
Haptics & amp; null space vr
WithTheBest
 
PDF
VR Interactions - Jason Jerald
WithTheBest
 
PPTX
The Virtual Self
WithTheBest
 
PDF
Engaging and sharing your VR experience
WithTheBest
 
PPTX
Recreating history in virtual reality
WithTheBest
 
PDF
Unlocking Human Potential with Immersive Technology
WithTheBest
 
PDF
Japheth Funding your startup - dating the devil
WithTheBest
 
PPTX
Cryptocurrencies, Blockchain & Smart Contracts: The New Wave of Decentralizat...
Raffaele Mauro
 
PDF
Riccardo Vittoria
WithTheBest
 
PPTX
Security of IoT Data: Implementing Data-Centric Security and User Access Stra...
Altoros
 
VR, a new technology over 40,000 years old
WithTheBest
 
How to survive the early days of VR as an Indie Studio
WithTheBest
 
Measuring Behavior in VR - Rob Merki Cognitive VR
WithTheBest
 
How we use vr to break the laws of physics
WithTheBest
 
Wizdish rovr
WithTheBest
 
Maximizing performance of 3 d user generated assets in unity
WithTheBest
 
Mixed reality 101
WithTheBest
 
Transported vr the virtual reality platform for real estate
WithTheBest
 
You dont have to be mad to do VR and AR ... but it helps
WithTheBest
 
Global demand for Mixed Realty (VR/AR) content is about to explode.
WithTheBest
 
Haptics & amp; null space vr
WithTheBest
 
VR Interactions - Jason Jerald
WithTheBest
 
The Virtual Self
WithTheBest
 
Engaging and sharing your VR experience
WithTheBest
 
Recreating history in virtual reality
WithTheBest
 
Unlocking Human Potential with Immersive Technology
WithTheBest
 
Japheth Funding your startup - dating the devil
WithTheBest
 
Cryptocurrencies, Blockchain & Smart Contracts: The New Wave of Decentralizat...
Raffaele Mauro
 
Riccardo Vittoria
WithTheBest
 
Security of IoT Data: Implementing Data-Centric Security and User Access Stra...
Altoros
 

More from WithTheBest (12)

PDF
Omnivirt overview
WithTheBest
 
PPTX
Getting Started with Intelligent IoT Messaging - Ken Herron, Emy Carlan, and ...
WithTheBest
 
PDF
From Coffee to Cloud
WithTheBest
 
PDF
HP Wearables and IoT - Our Story - Christine Hawkins
WithTheBest
 
PDF
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...
WithTheBest
 
PPTX
Deploying IoT to Support Low-Income Seniors at Home - Sombit Mishra
WithTheBest
 
PDF
Writing Node.js Bindings - General Principles - Gabriel Schulhof
WithTheBest
 
PDF
Ambient Intelligence - Parham Beheshti
WithTheBest
 
PDF
Moving Beyond Technology-That-Works to Products-That-Matter
WithTheBest
 
PDF
Mastering the IoT With JavaScript and C++ - Günter Obiltschnig
WithTheBest
 
PPTX
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
WithTheBest
 
PPTX
IBM's Watson IoT Platform Allows You to Quickly Connect Devices to Bluemix Cl...
WithTheBest
 
Omnivirt overview
WithTheBest
 
Getting Started with Intelligent IoT Messaging - Ken Herron, Emy Carlan, and ...
WithTheBest
 
From Coffee to Cloud
WithTheBest
 
HP Wearables and IoT - Our Story - Christine Hawkins
WithTheBest
 
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...
WithTheBest
 
Deploying IoT to Support Low-Income Seniors at Home - Sombit Mishra
WithTheBest
 
Writing Node.js Bindings - General Principles - Gabriel Schulhof
WithTheBest
 
Ambient Intelligence - Parham Beheshti
WithTheBest
 
Moving Beyond Technology-That-Works to Products-That-Matter
WithTheBest
 
Mastering the IoT With JavaScript and C++ - Günter Obiltschnig
WithTheBest
 
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
WithTheBest
 
IBM's Watson IoT Platform Allows You to Quickly Connect Devices to Bluemix Cl...
WithTheBest
 
Ad

Recently uploaded (20)

PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PPTX
Designing Production-Ready AI Agents
Kunal Rai
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
July Patch Tuesday
Ivanti
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Designing Production-Ready AI Agents
Kunal Rai
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
July Patch Tuesday
Ivanti
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Ad

Building your own video devices

Editor's Notes

  • #2: Hello My name is Olga and I’m a Sr. Software Engineer at CrowdOptic. At CrowdOptic, we work with cutting edge technology for Smart Glasses. And we do live streaming and have patents for analyzing sensors. Previously, I worked at Salesforce and so know all about the difficulties working with enterprises. In this talk, I’ll describe how we built our own streaming device, what we have achieved so far, and the challenges we faced in the update process as well as in the delivery of the first version to a customer
  • #3: In this era of 3-D printing and lego electronic blocks, it is now easier than ever to build a hardware prototype. At CrowdOptic, we had the idea to build our own streaming device for some time. So, when a couple of customers asked about a static device additionally to a Glass, it was our moment. And we built it. I’ll show you a demo of our product first. Here is our web client from which we can view, store, administer, and report on all of our devices. We can start streaming from here – start it. We have 2-way audio – from the device and to the device. After I stop it the video will be generated and available under archives. Click it and show the video. We have customers in medicine, security, government and other areas. Medical recordings and live streaming of highly technical surgeries will become an essential tool in medical training. Second - we have another application for our patented technology. I’m starting to stream from our CrowdOptic Eye device and Google Glass. Each of these has sensors to identify gps location and heading. When 2 devices view the same region, their line of sights intersect. We call this a cluster. The clusters identify if several people are looking at the same region. For now, we are applying this technology to some military customers. We took a Raspberry PI, added its camera part, wifi plug, power and a switch. And there we have a fully functioning hardware device.  We already had a client app for the Google Glass. It didn’t take too much time to repeat the same communication for live-streaming to our server. Soon after this, I realized that it is hard to track what the device is doing. When it connects or not to our server and when it streams. I quickly came up with the idea to add LED to show this. Pause We capture the video from the camera using a command line utility  - raspivid. Combining this with a powerful open source product -  ffmpeg we ended up with our first prototype
  • #4: This is the main line that sends a camera stream to ffmpeg We use stdbuf to pipe a raspivid stream to ffmpeg as input Output for ffmpeg is our server address. Securing a stream is straightforward. SERVER_ADDRESS is localhost where a proxy is running to encrypt the data and send to our server remotely. That’s it. Our own streaming device!
  • #6: The sales team wants to sell something even before it is built. We had a lot of pressure to finish devices that were already bought by a customer. When a device is already sold the worst thing is blindness. So first rule is…
  • #7: Testing is not a QA only job. It is collaborative work between developers and testers. Whoever designs the product knows best how to simulate different conditions. It is time well spent to design the architecture in such a way that it will be easy to test. When we shipped our first version, we had some bugs. Sending logs using aws log agent and showing the status using LED helped to fix those quickly. For manipulating the device I decided to use an API. It allows us to extend to Smart Glasses and any device types we might have. For example we can use an API to start and stop streaming, which we extensively use in our testing. We also can use an API to modify device properties.
  • #8: When something like this happens nobody is happy. Here’s where rule number 2 comes in
  • #9: If the audio crashes, the video still needs to run The code that analyzes video quality and calculates several parameters should be highly guarded with try catch and be isolated if something unpredictable happens. Make sure to walk through the whole flow and identify actions that are not critical. pause It is common now to release a product where certain features can be disabled before the official rollout happens. Rule3
  • #10: For example enableWebRtc when false should not execute any code(server side, ui) related to webrtc. This will give you an option to disable certain features if they are not working in certain customer conditions or not allowed. For example video file encryption in one of our China servers Additionally every customer is different and requires different settings. We developed eyeconf ui(show it) for configuration properties. It also shows available networks and which one is connected Rule 4:
  • #11: It helps to play with timeout values for certain networks. Or specify bitrate, quality and frames per second especially for demo when using a weak connection. Pause When upgrading a product, the production environment can be different than testing. It is not always possible to keep up with the pace of change and all the customer’s software/hardware differences. This brings us to rule number 5.
  • #12: It took us a month to clean up an update we released on all devices for a customer. We didn’t expect that kind of failure. It was related to a kernel problem because of OpenCv and some other library. It took 5-10 minutes to upgrade. And then a month to find and fix the problem. pause All enterprise customers have their own infrastructure - connection channel bandwidth and firewall rules. Don’t assume anything. Rule 6 says
  • #13: Chasing why our livestreaming didn’t work in IE10 only at a customer place was an almost impossible exercise. There is no remote access to their network to test. And there are limited troubleshooting sessions which can be scheduled. Make sure all the ports are configurable and you can easily change them by a script. This way it will be possible to run some tests at the customer’s site. I have 2 security rules that were the most important for us:
  • #14: It seems that it would be easier to place something to troubleshoot the product. For example if a certain password is supplied, it could show much more information about the state and allow it to stream or execute certain apis. Don’t do that and prohibit others from doing that. Remind everyone of that!
  • #15: Completely no backdoors in the hardware. Consider rule number1: Always think about testing and tools to fix a problem immediately.
  • #16: Pause The next rule says
  • #17: If you think adding key2= random number along with another existing key= random number parameter in your api will improve your security, don’t be fooled. To improve security, verification data has to be gathered from different places, by different channels and can be modified in case of a breach. Now we come to an interesting rule number 9
  • #18: We use ffmpeg, spring, Angular, bootstrap and many more. For our SIP implementation we started with command line utility – sippie. That’s a good start to combine all ready to use solutions. Only after that, revise to see what you have and if you really need that third-party software or instead if you can focus on developing your own. Think twice if you use a library for only 2-3 methods. It can be beneficial to implement those and avoid that library completely. pause At CrowdOptic we solve challenging and unique problems. You can’t find many solutions at StackOverflow. This time I decided to share my knowledge by posting answers for the problems I solved. I use stackoverflow, ffmpeg or Raspberry PI groups, linkedin connections(yes people are answering there highly technical questions), meetups. And ready to use code in Open Source projects. The last rule number 10 says:
  • #19: Valuable information is around us, make sure you know how to use search efficiently. And not afraid to ask people for a help.