Wednesday, June 14, 2017

Codec War - HEVC vs AV1

At WWDC 2017, Apple announced that they will support HEVC (H.265) codecs from iOS 11 and MacOS High Sierra.

HEVC (H.265) is the successor of AVC codec.  The performance is improved by more than 50% compared to AVC codec, and it is possible to make equal quality video with half capacity.

AVC (H.264) codec have been dominating for a long time and it make sense to adopt much improved HEVC. The problem is both AVC & HEVC are not free.

Companies, instead of adopting HEVC, have developed their own codecs. Microsoft made VC-1, and Google made VP8/VP9 (license free). Currently, Youtube and Netflix use VP9 and is the most popular codec beside from HEVC.

In addition, some of the largest tech companies (Amazon, AMD, ARM, Cisco, Google, Intel, Microsoft, Mozilla, Netflix, Nvidia, and more) have joined the Alliance for Open Media (AOM), which aims to finalize the royalty-free alternative video coding format "AV1" by 2018. It is said to be a codec that is 35% more efficient than HEVC.

Apple did not participate in AOM and they announced they will support HEVC at WWDC 17.
A guess is the license owner of HEVC sees the risk and gave Apple a huge discount. Who knows?
Regardless, this is a bad news for AOM to push AV1. Many companies now cannot ignore supporting HEVC anymore.

AV1 is not complete yet. It could be the reason we need something in the mean time. Will Apple support AV1 when it is ready?


Saturday, January 28, 2017

Concentrate on one app store



As a one-man company, I only had limited resources.
I learned I had to use my resources very wisely and accept that I can't build everything. 

One thing I regret when I look back is I have spent a great amount of time on supporting multiple app store.
I have supported Play Store (Google), Amazon, Samsung, Opera, and Hiapk (Chinese app store).

You might think, 'can't I just build one APK and applied to all app store? How hard is that?'
Not really.

You have to:

  • Build separate APKs for at least Amazon & Samsung  app store for numerous reasons.  They won't accept your APK if certain conditions don't meet. [Solution: use flavour in Gradle - I will write another blog how to manage creating multiple APKs for multiple app store]
  • Maintain multiple app stores: trust me, it takes time just to maintain. You need to respond to users feedbacks, some policy change which requires you to update, etc.


I can go in more detail how much work is needed but instead I will convince you another way. It is not worth it.

When I was actively supporting all app stores (2011~2014), following was my profit distribution:
80% Play Store
10% Amazon
10% Samsung
0% Others (Opera, HiAPK, etc)

* Now-a-days it is not fair for me to say the distribution because I currently don't actively support other app stores anymore.
I read from other blogs  that other developers have similar profit distributions.

20% is not a negligible amount. However, if you are making $1000 a year, then you would rather want to concentrate on making your app better to earn $10'000 a year than earn missing $200 from other app store. When you start to make enough profit, then diversify to other app store to maximize your profit. It is not too late to do it then.

However, publishing on Samsung store early has one benefit.
They have their own QA team who reviews apps more strictly like Apple. It means this is a free QA for you. They make sure the quality meets their standard.