2. Virtual Collaboration and Video Conferencing
are different areas.
They both have existed without each other.
But now they are coming together.
@lytespark
4. Video conferencing has the potential to
become the key part of virtual collaboration.
However, there are barriers which are
preventing its full integration in virtual
collaboration apps and platforms.
@lytespark
5. The challenge is to remove those barriers
Basic challenges for video conferencing
• Browser/OS/device, connection, hardware, peer distance, scalability,
interoperability, starting barriers.
Specific challenges for video conferencing within virtual
collaboration
• Initiation – triggering the video call at the right moment of a
collaboration process
• UX – more than just showing video/audio, it is about context
• Expectations – meeting emerging requirements (some unknown)
@lytespark
6. Initiation: Make people ready for video calls
Not everyone realizes the benefit from video call, they can see them as
intrusive and unnecessary. It is necessary to introduce video with
appropriate context and timing.
Tips:
• All practices have etiquette
– use text chat first to prepare people for a call
• Some people are uncomfortable. Allow them to connect with audio
only.
– Switching video off via getVideoTracks(). This doesn’t require call re-
initiation, but doesn’t reduce CPU consumption as encoding still
continues.
– Getting “mic only” source within getUserMedia() constraints and making
call “audio-only” will help with CPU usage reduction, but will require call
re-initiation.
@lytespark
7. Initiation: Call initiation at the right time is key
Video conferencing will maximize the benefit when it is used at the right
time. Make sure no-one wastes their time staring at each other.
Tips:
• Remember, they do not always need video conferencing – use it
where it helps communication
• When they need video conferencing, remove the initiation barrier:
– One-click invites
– Use platform appropriate invitation mechanisms
– Help people to deal with tech irritations like “Allow/Deny” buttons.
– Consider different interfaces for browsers, OS and devices.
@lytespark
8. UX: The experience is vital
People are more likely to dislike products for poor user experience than
their cost.
Tips:
• Concentrate on things which can improve UX:
– Clean design
– Smooth animation transitions
– Natural conferencing behaviour
– Help to resolve issues
• Track everything hovered, clicked or tapped during the call and
analyse user journey
• As an example of good practice you can show who is currently
speaking with a blinking glow light.
@lytespark
9. UX: Dealing with poor Internet connection
An unstable internet connection causes a poor call. You cannot fix it and
you cannot argue with someone who produces a screenshot of a
100mbs speedtest…
WebRTC’s getStats() provides you with some statistics chunks, which
can be helpful for “blaming” users in bad connection.
Tips:
• Check connection during the call – as it is not relevant until the
connection is made
• Showing people a message about their poor Internet connection can
shift the blame for failure of service
@lytespark
10. UX: Fighting with IE lovers
There are still lots of IE users – even IE6!
Tips:
• Using WebRTC adaptors can be a good idea if you remember to
update them
• Many uses will not or cannot change browser - asking for an upgrade
to IE11+ and using a WebRTC plugin would be a better option.
• ORTC will be supported by Microsoft in ______________ !!!
• Safari users are more likely to change to Chrome don’t be afraid to
ask
• WebRTC is still buggy sometimes, especially with granting access to
camera / mic. Providing solutions in FAQ is vital.
@lytespark
11. UX: Dealing with poor hardware
Some people think their 2008 Macbook Pros are still top of the range.
They try to compare your app to Skype. But Skype is a desktop app with
a full access to GPU, whilst WebRTC uses CPU.
Tips:
• Constraints will help you to optimize video quality: Bitrate, Frame
Rate and Resolution
• Don’t switch off noise reduction or echo cancellation, the call quality
damage will be more than amount of CPU saved.
• Some indicators such as Frame Rate can tell you if user’s CPU
cannot deal with the call.
• Switching video off via getVideoTracks() to reduce CPU consumption
will not help a lot as encoding still continues.
• Do not be afraid to tell people they have outdated hardware.
@lytespark
12. Expectations: Use-cases – different techs
Virtual collaboration includes both hangouts, presentations, interviews,
networking etc. One video conferencing technology implementation
cannot cover all use-cases.
Tips:
• Abstract from WebRTC original nature. Think of it as just a
combination of protocols, codecs and APIs.
• Swap between the following options depending on conditions:
• 2-4 people conference – mesh connection (fastest & cheapest)
• 5-10 people conference – distribution via MCU, combination and
distribution via MCU, or mesh/MCU hybrid
• 1-to-many broadcast – distribution via MCU
• Switches between technology implementations should be
unnoticeable for end-customers
@lytespark
13. Expectations: Use-cases – different features
Doctors, patients, speed networkers, students, teachers, customers,
suppliers, communities, trainers, sportsmen. There are many, many
potential uses of WebRTC, all with different needs.
Tips:
• Adding small single features to a video chat or broadcast can satisfy
a large, but specific audience.
• Consider security, reliability and speed. Choose how you use
WebRTC for real time collaboration:
– Use WebRTC P2P channels for interacting for better security
– Use socket-to-server channels for better reliability of message delivery
• Using other 3rd parties for virtual collaboration like Google Drive will
not hurt you, but you need to be careful with keeping integrated tools
synced with your application.
@lytespark
14. Solving the typical WebRTC problems to enable
video conferencing is critical.
But for WebRTC to realize it’s potential we must
think beyond just video conferencing and
adapt the technology to the problems people
face with collaboration.
@lytespark