The dirty truth of video is getting started is easy, but scaling is incredibly hard. That dynamic makes it very tempting to build video solutions in-house. Thanks to incredible open source work like ffmpeg, you can get started and build a naive on-demand video solution in a matter of weeks and you can continue building out a few features. To keep up with product needs and innovation in the video space you may find yourself with a video PM and a video engineering team; and you may find yourself with a data engineer & data scientist supporting video analytics workflows; and you may find yourself negotiating multiple CDN contracts and optimizing public cloud compute commits; and you may find yourself spending more on a DIY solution than with a vendor; and you may ask yourself, “Well, how did I get here?”1
Guiding Principles
To help customers evaluate the tradeoffs between building their own video solution and working with a vendor like Mux, we encourage them to think through three principles:
- Specialize and trade
- Use cases matter
- Scale matters
Specialize and trade
Very few companies consider the possibility of building their own server racks anymore. They go to Amazon or Google or Microsoft and put in their credit card. These public clouds can move, store, and process bytes better than you can. And for most of the time they can do it cheaper and faster, too. In most use cases, a company entirely dedicated to a problem statement or domain area is going to be better and faster than your internal dev team working in the same space, even with GPT4.
If you do build in-house, remember that your code is a liability, not an asset, and technical debt is the gift that keeps giving. The video space is complex and ever shifting (new codecs, new devices, new players, new standards, new resolutions) — software teams have to keep up with these changes or the world will pass them by. The maintenance and scaling of in-house solutions can be a meaningful drag on internal teams that will invariably get hosed with unplanned work. Go down this road, and you may say to yourself, "My God, what have I done?"
Outsourcing a workflow to a vendor is an explicit bet that the vendor can deliver more now, allowing you to go to market in weeks instead of months. Just as importantly, outsourcing that workflow is a bet that the vendor will make more progress in the future than you will with your own solution.
At Mux, our specialization allows us to focus on video all day, every day, so you don’t have to. We’ve built a feature-rich video platform to support a variety of use cases. We’re shipping new features faster than ever and we’d bet we can ship video features faster than you.
Use cases matter
While there’s a broad spectrum of video use cases and needs, there are clusters that look similar to one another. We use two main frameworks at Mux to talk about customers and their use cases: Archetypes & Video Maturity. Archetypes cover the customer’s business/video use case (e.g., marketplaces, social and sharing platforms, publishing platforms, content companies, etc.) while video maturity addresses the feature and product needs of the company (e.g., simple streaming, smart streaming, premium video, etc.).
At one end of the video maturity spectrum, you have companies that think of video as just another file type (e.g., an mp4 that can be shared on Dropbox or Google Drive). Companies in this segment should consider building in-house as they’re trafficking in the pure commodity of storing and moving bytes. These companies can reasonably get by with a simple DIY solution but need to be careful about slippery slope scope creep that could then require a complicated and expensive migration down the road.
On the other end of the spectrum, companies that want full-featured video (what we call smart streaming or premium video) should consider vendor solutions before embarking on a DIY journey. If there’s something critically unique about the workflow that requires a bespoke solution, the company might benefit from building in-house. Most home-built solutions, however, are arbitrarily unique.
We built our video offering to address smart streaming and premium video use cases wherein customers deeply care about velocity, developer experience, cost control, fast publishing, viewer quality of experience, perceptual quality, and advanced features. Similarly, we’ve focused our platform on addressing common archetypal use cases (e.g., live shopping experiences, user-generated video, creator platforms), and we’re continually adding features to support new use cases (e.g., SRT and DRM).
Scale matters
At a certain scale, every company could DIY everything. You see this in Big Tech where almost every system, from HR software to DevOps tools, are developed in-house. More recently the cloud repatriation movement has been picking up steam among large enterprise players or compute-heavy players. In financial terms, this is Operating Leverage at work. At a certain scale, the fixed cost of building and maintaining a technology becomes minimal relative to the marginal unit costs. Throw in extra security and control dynamics and it follows that at a certain scale merits a bespoke in-house solution. As you’ll see in the example below, however, the scale required for that Operating Leverage to pay off is very significant. If you’re not in the TikTok/Netflix club, you should take a long hard look at the total cost of ownership of video before going on your own DIY journey.
The true total cost of ownership of video
If you’re not treating video like files; not TikTok scale; and have a relatively common use case; if you’re still with us; then what matters most is your time to market and your total cost of ownership (TCO). TCO is composed not just of the raw compute, networking, and storage, but also the human overhead of running the overall system. As it relates to video, we’d categorize these costs into four buckets:
- Core product development & maintenance
- Scaling & support cost
- Feature development & maintenance
- Public cloud & CDN costs
First, some roleplaying
Imagine you’re a social platform called Hot Sauce Happy Hour - and you’re obviously the destination for hot sauce related content. You’ve done remarkably well and you have 100M monthly active users. Your users come to your application to get updates from their friends on various hot sauce challenges, they upload pictures of their rare hot sauces and share recipes. You’re ready to bring video to your product because you think that will really heat up engagement with your platform and lead to other benefits vis-a-vis monetization. You expect that 1% of users will add a video monthly (let’s be honest, there are lots of lurkers even in hot sauce land), and those videos will generally be watched ~80 times (but some may go ghost pepper hot). Videos, on average will be ~30 seconds long.
What makes you special is how great you are at social engagement, UX, and partnerships with advertisers/agencies. You’ve got great scale (but not at YouTube level) and your use case isn’t super specialized. Still, you think you might be able to build the core product (e.g., encoding2, storage, delivery) and features you need by yourself but you’re not sure how that might compare to a vendor-based solution. Let’s do some math together.
Core product development and maintenance
Building a basic video solution with an existing open source player (e.g., video.js) can be accomplished in a matter of weeks or months; in year two and three maintenance is considered to be minimal (~1 week of maintenance thereafter); note that this model is only inclusive of on-demand video workflows and does not include live streaming workflows, which are rarely built in-house given the level of complexity. Those use cases may be solved using Mux, Wowza, or another managed service provider.
We think a dev team could build the most basic solution and manage it for three years for ~$110K.
Scaling & support cost
As the team scales its usage and demand you must add additional resources to support an increasingly complicated video solution. That includes video product management (50% resource) that can help align priorities, roadmaps, and technologies; it also includes Capacity Planning and SRE (50%) that can help manage cloud resource optimization, contracts, and procurement. An in-house analytics solution will also require part-time data and analytics support (25% each) to support insights and monitoring.
This support/scaling team has a going rate of $312K per year to manage a more complex solution.
Feature development & maintenance
A big swath of engineering labor is associated with bringing additional features to the video stack. These features generally help address accessibility, reliability, compatibility, and security. Features generally will take at least 2 -8 weeks to develop (simpler features such as thumbnails and watermarks) while others (e.g., digital rights management) may require a full quarter's worth of development work. Not all features would be built in year 1 but all features would incur some level of maintenance cost in future years.
In a perfect world with a perfect plan, building and maintaining this full set of features would cost $200-300K per year in engineering resources. In the real world, feature development timelines can depend entirely on your original system design - go down the wrong road or with the wrong plan and you may have a rewrite on your hands. Note that all of these features are available today on Mux (or on our near-term roadmap).
Public cloud & CDN costs
This is where scale really starts to matter and the principle of operating leverage kicks in. The use case highlighted above implies 6M+ minutes of encoded video and 480M minutes of delivery in year 1. Storage compounds across years. Using estimates for public cloud unit pricing here and implied volumes, your total cost is $340K in year one, scaling to $650K by year 3.
Total 3-year cost of ownership
Combining the above you can get to a 3-year total cost of ownership of $3.3M! It is notable that raw materials (compute, networking, storage) account for less than half of the total cost of ownership. But that headline number is all most companies consider when evaluating a vendor for video (or other use cases). The other $1.8M of costs associated with developing and maintaining code are a regressive tax that makes a vendor-based solution an attractive choice below mega-scale deployments.
Total cost of ownership with Mux
With Mux you pay for what you use with little-to-no engineering overhead. And with recent pricing shape changes (automatic cold storage, baseline assets, resolution-based pricing), we are more affordable than ever. Using the same volumes as highlighted for the use case above, developing video with Mux is ~50% cheaper than a DIY solution over a three-year period. Moreover, with Mux - you can launch your video product/feature in weeks not months, enjoying our full feature set starting from day one.
And of course, at these volumes, we would create custom pricing for your use case and would reduce these overall costs considerably from here.