Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

The Current State of Android and Video

In the OS landscape, Android is by far the most widely used for tablets and mobile devices. With over 900 million current activated users and approximately 70% market share in the space, the platform is not only the most popular, but it’s also the most fragmented in terms of OEM’s and OS versions out there.

Android History and Origins
Android is a Java-Based operating system used for mobile phones and tablet computers. It was introduced and developed initially by Android, with financial backing from Google. Google acquired Android in 2005. Google announced their mobile plans for Android in 2007 and the first iteration of Android hit the shelves in 2008. Android is the world’s most widely distributed and installed mobile OS. However, in terms of application usage and video consumption, iOS devices lead the way. A consistent user experience and standardized video playback are two of the reasons for this.

Performance of Video on Android
When running video on Android devices, the experience varies from OEM to OS version to media source. Because of this lack of standardization with video, we wanted to give an overall look at the top mobile devices running Android to determine how video is delivered and how it performs across a few key sites and platforms.

We tested the following top devices running the most used versions of Android (2.3, 4.0, 4.1 or 4.2):

  • Google Nexus 7
  • Google Nexus 4
  • Samsung Galaxy 4
  • HTC One
  • Samsung Galaxy II
  • HTC EVO 4G
In summary, the newer versions had overall better video capabilities and quality. On devices running 4.1 or higher, the video players were generally built in, and most were shown in one-third of the screen and ran with little interruption.

On the devices running older versions of Android, the experience was inconsistent across sites and the video performance wasn’t as strong. Some of the top video sites showed the option for either video display on a player or in the web browser, and some had very poor viewing capabilities for video.

A sample look at the different variations of video transfer and display on the Android devices is below:



Click to enlarge


Open Source on Android
Because Android is open source, Google releases the code under the Apache License. For this reason, every OEM modifies the open source code for their devices.

OEM’s create their own coding and specifications for Android for each device. This makes any standardization very difficult. When testing different versions of Android on different target devices, there are a lot of inconsistencies.

Google regularly releases updates for Android which further confuses things. End users often do not upgrade, either because they don’t know how, or because their device does not support the new release. The scattered consistency of updates further confuses any efforts at standardization.

Two of the largest and most widely used Android OEM’s both released their latest open source codes earlier this year. For the Samsung Galaxy codes please click here. For the HTC One click here.


Versions of Android
In 2008 Android v1.0 was released to consumers. Starting in 2009, Android started using dessert and confection code names which were released in alphabetical order: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, and the latest, Jelly Bean.

A historical look at the Android devices is below:




In terms of market share, the Gingerbread remains the most popular.





Top Android Devices per OS version
The top devices running Android in terms of both sales and popularity come from various OEM’s, with the majority from Samsung, HTC, LG and Asus. A few of the top devices from the most widely used Android OS versions are as follows:



Click to enlarge


DRM Content on Android
Android offers a DRM framework for all devices running their 3.0 OS and higher. Along with their DRM framework, they offer consistent DRM for all devices using Google’s Widevine DRM (free on all compatible Android devices) which is built on top of their framework. On all devices running 3.0 and higher, the Widevine plugin is integrated with the Android DRM framework to protect content and credentials. However, the content protection depends on the OEM device capabilities. The plug in provides licensing, safe distribution and protected playback of media content.

The image below shows how the framework and Widevine work together.



Click to enlarge


Closed Captions on Android
As developers know, closed captioning is not a simple “feature” of video that can be simply activated. There are a number of formats, standards, and approaches and it’s especially challenging for multiscreen publishers. On Android devices, closed captioning varies from app to app. However, any device using Jelly Bean 4.1 or higher can use their media player which supports internal and external subtitles. Click here for more information.

For any device using the Gingerbread version or lower which do not have any support for rendering subtitle, you can either add subtitle support yourself or integrate a third party solution.

Most larger broadcasters pushing content to OTT devices now serve closed captioning on Android (Hulu Plus, HBO GO, and Max Go to name a few).


Does Android support HLS?
Android has limited support for HLS (Apple’s HTTP Live streaming protocol), and device support is not the same from one version or one device to the next. Android devices before 4.x (Gingerbread or Honeycomb), do not support HLS. Android tried to support HLS with Android 3.0, but excessive buffering often caused streams to crash. Devices running Android 4.x and above will support HLS, but there are still inconsistencies and problems.





Best Practices for Video on Android
For deploying video on Android, there are several suggested specifications to follow. Below is a list of files supported by Android devices. Developers can also use media codecs either provided by any Android-powered device, or additional media codecs developed by third-party companies. If you want to play videos on Android, find a multi-format video player or convert videos to Android compatible formats using an encoding company.





Video Specifications for Android
Below are the recommended encoding parameters for Android video from the Android developer homepage. Any video with these parameters are playable on Android phones.





Video Encoding Recommendations
This table below lists examples of video encoding profiles and parameters that the Android media framework supports for playback. In addition to these encoding parameter recommendations, a device’s available video recording profiles can be used as a proxy for media playback capabilities. These profiles can be inspected using the CamcorderProfile class, which is available since API level 8.




For video content that is streamed over HTTP or RTSP, there are additional requirements:
  • For 3GPP and MPEG-4 containers, the moov atom must precede any mdat atoms, but must succeed the ftypatom.
  • For 3GPP, MPEG-4, and WebM containers, audio and video samples corresponding to the same time offset may be no more than 500 KB apart. To minimize this audio/video drift, consider interleaving audio and video in smaller chunk sizes.
For information about how to target your application to devices based on platform version, read Supporting Different Platform Versions.

Source: Encoding.com

Google Needs a Strategy for Video on Android Devices

Many content owners who want to get their live event-based streaming content on mobile phones and tablets quickly find out that getting it to Android devices is extremely challenging. Unlike Apple’s iOS platform, Google has yet to provide an easy way to get live video to Android devices, and to date, it hasn’t detailed any strategy for fixing the situation. Many content owners I have spoken with, as well as those who help these content owners encode and distribute their video, are now questioning why they should even continue to go through all the trouble of trying to support Android-based devices at all.

While media companies can always build an app for their event series, most do one-off events and are faced with streaming to the mobile web and reaching their audience using browsers on Android and iOS devices. When Android phones became popular, live video was supported in the mobile browser via Adobe Flash, so digital video professionals with live content to distribute were able to keep doing what they were doing on the desktop. That’s not to say that Flash was perfect; in many cases these desktop players were heavy, containing ad overlays and metadata interaction that had a major impact on the playback quality. To get better quality video playback, some people turned to RTSP delivery. Android touted RTSP as its native live video format until Android 2.3.4 came out, after which that feature no longer worked.

The most effective way to get live video to Android browsers was to make a stripped-down Flash player that didn’t demand much from the phones. Video was decoded in the software, but it would drain batteries quickly. It was imperfect, but it functioned well enough. With the introduction of Android 3.0, it looked like HLS support was going to be built-in for all future devices, and that has held true — sort of. HLS support doesn’t match the specification, and buffering is common. Industry-leading HLS implementations such as those from Cisco and Akamai Technologies will not load on Android devices, so for the most part, content owners went back to Flash. But now Flash isn’t available for new Android phones.

Right now, content owners are left in an awkward state if they want to deliver live video to Android browsers. If Flash is present, you can deliver a basic Flash video player. If it is not, you can try to deliver HLS, but the HLS manifests must either be hand-coded or created using Android-specific tools. If the HLS video can play without buffering, you’ll find that there is no way to specify the aspect ratio, so in portrait mode it looks broken. The aspect ratio problem seems to have been fixed in Android 4.1, but it will often crash if you enter video playback in landscape mode and leave in portrait. You can allow the HLS video to open and play in a separate application, but you lose the ability to communicate with the page, and exiting the video dumps users back on their home screens.

Content owners can still send the same live video to iOS devices that they could in 2009, and it will play smoothly with little buffering. Live video support for browser-based streaming within Android tablets and phones is a significant challenge with little help available from Google. And with Google still talking about removing H.264 video support in Android, many content owners are wondering why they should even try to support Android any longer.

What’s clear is that Google doesn’t have a strategy to fix the problem, and many content owners and video ecosystem vendors are frustrated. Content owners want to get their live video on as many devices and platforms as possible, and right now, getting it to Android devices is very difficult and costly. Unless Google steps in to solve the problem, don’t expect content owners to continue to try to support Android devices for live video streaming.

By Dan Rayburn, Streaming Media

Android’s Gingerbread Brings WebM to Mobile Phones

Monday’s release of Android 2.3, code named Gingerbread, is adding support for the WebM open video format to the smart phone platform. Gingerbread users will be able to play WebM videos in their device’s Chrome browser, and Android application developers will be able to make use of WebM as well.

The first version of Android will ship with libvpx 0.9.2, which is a slightly outdated version of WebM. Support for the newest WebM release 0.9.5, code-named Aylesbury, will be pushed out with a maintenance release, according to Google’s WebM product manager John Luther. Users will be able to access every WebM video stream or file with the WebM release included in Gingerbread, but the coming update should help with the format’s playback performance and memory footprint, amongst other things.

Support for Android is an important first step for WebM to gain market share. Google open sourced the video format in May, and it has since been integrated into Firefox, Chrome and Opera. WebM has also gotten more support from video vendors and application developers.

Luther said in November that 80 percent of YouTube’s popular videos are now available in WebM, and Skype’s client started to utilize WebM for its new group video chat functionality. The next step for WebM is to get on devices, and the first chipsets supporting hardware acceleration for WebM are expected to reach the market place in early 2011.

However, it may take a while before many Android users will be able to make use of WebM. Most network operators are notoriously slow to roll out new Android versions. In fact, 56 percent of all Android handsets are still running version 2.1 or older, despite the fact that 2.2 has been available for close to six months now.

By Janko Roettgers, GigaOM