This is a question that I am often asked.
Why does it take so much time to add new features? Why is it complex? What’s the big deal with video calling applications? Why should companies just license this technology from others and not develop it on their own?
The best answer I can provide is that video calling requires a lot of disciplines:
- You need a codec expert. Make that two – one for audio codecs and one for video codecs
- You’ll need someone who knows his voice algorithms and how to fine-tune an audio system (not necessarily the same person as the codec one)
- You’ll need someone who knows his video algorithms – one that knows the niche of real-time bidirectional video and not one that knows how to stream video over the internet (these are two distinct disciplines)
- You’ll need someone who is capable of working with DSPs – assuming you’re developing an embedded solution
- There’s this signaling stuff that needs to be handled – another discipline
- Interoperability. Different than just signaling or media or standards
- Some management stuff – SNMP, TR-069, SSH, TFTP or some other acronym that goes there
That’s a lot to chew for something that should be a feature in a product. And I haven’t touched issues of multiplatform support when you need to do tablets, phones and laptops all at once or dealing with user interfaces, hardware design and some other tasks.
While you might license the bits and pieces of the above stuff from various vendors and then integrate them – this comes at a huge cost of needing to have most of these disciplines in your enterprise to be able to do the integration properly.
Next time you think about building an application that requires video calling – may I suggest you license most of it from someone instead of developing on your own? It will let you focus on things that matter – the actual service and the user experience.