Archive

Posts Tagged ‘exoplayer’

Test Widevine & PlayReady DRM, HDCP 1.x/2.x, 4K VP9 and H.265 in Android with Exoplayer App

October 21st, 2016 2 comments

I first heard about ExoPlayer in an Android TV Overview presentation at Linaro Connect 2014, but I never really looked into it. The source code is available on Github, and I’ve been given ExoPlayer.apk as it can be used to test UHD H265 support, HDCP 1.x, HDCP 2.x compatibility, PlayReady & Widevine DRM using different format and so on.

ExoPlayer Demo - Click to Enlarge

ExoPlayer Demo – Click to Enlarge

So I installed it on Beelink GT1 Android TV box which I’m currently reviewing, and only include basic Widewine Level 3 DRM, and certainly does not support HDCP features.

There are 9 sections in the app to test various videos and DRM schemes:

  • YouTube Dash
  • Widevine Dash Policy Tests (GTS) – Widewine with or without HDCP, with or without secure video path
  • Widevine HDCP Capabilities Tests – NoHDCP, HDCP 1.0, HDCP 1.1, HDCP 2.0, HDCP 2.1, HDCP 2.2, and HDCP no digital output
  • Widevine Dash MP4, H264 – Various resolution (SD, HD, UHD) for clear or secure videos
  • Widevine Dash WebM, VP9
  • Widevine Dash MP4, H.265
  • SmoothStreaming – Super speed or Super speed (PlayReady)
  • HLS – Apple master playlist, Apple TS media playlist, Apple ID3 metadata, etc…
  • Misc – Various video & audio formats and codecs (MKV, FLV, Google Play videos…)

I tested a few the tests without HDCP nor secure data requirement will work just fine. Widevine secure SD (MP4, H.265) would work fine, but as expect Widevine Secure HD and UHD would not work, and only show a black screen with audio since Level 1 DRM is not supported by my device.

Then I switched to Widewine HDCP 2.2, and to my surprise the video could play… I later found out that HDCP does not kick-in immediately, and if I play the video for a longer time, the video will stop after 9 seconds because Beelink did not get the HDCP 2.2 license for their box.

AFAIC, there’s automatic testing, and each test must be started manually. But it’s still a useful if you are interested in copy protection schemes supported by your Android device.

I’ll complete the post with something unrelated with ExiPlayer, but still interesting to check HDCP support if you own an Amlogic device, as there are some commands to check the status of HDCP:

  • Show whether the TV is currently working with HDCP 2.x or HDCP 1.x:

22 = HDCP2, 11 = HDCP1, off = HDCP not enabled right now

  • Check HDCP authentication status:

1=authenticated ok, 0 = failed to authenticate.

  • HDCP keys for device

00 = no HDCP key, 14 = has HDCP1_key, 22 = has HDCP2_key

  • Check TV HDCP version

22 = TV supports HDCP2, 14 = TV supports HDCP1)

  • Disable HDCP protection:

Android TV Overview – Linaro Connect US 2014

September 17th, 2014 No comments

Google announced Android TV and ADT-1 devkit last June, as the company wants to bring user-friendly Android user-experience to TVs, set-top boxes and game consoles. Mark Gregotski, head of the Linaro Digital Home Group (LHG), has provided a technical overview of Android TV during the on-going Linaro Connect US 2014. You find a summary of yesterday sessions on Linaro’s blog, and the even will last until Friday, where several demos will be showcased.

Android_TV_Goals

SoC companies currently involved in Android TV include Nvidia, Marvell, Qualcomm, Mediatek, Intel, Broadcom, and ST micro, so none of usual Chinese Android TV Box players (Rockchip, Amlogic, AllWinner…) are represented. Android (for smartphone) currently support video playback but you may experience dropped frame from time to time, where in the STB market requirements are not stringent. For example, NTT is said to only allow one frame dropped per month! So Android TV aims to improve video playback. Some of the features related to Android TV includes: VP9/H.265 codecs, 4K support, NDK media APIs, TV input framework, improved AV sync, cast receiver (DIAL protocol, Chromecast functionality), 64-bit secure environment, OpenGL ES 3.1 support, Android Extension Pack, subtitle / closed captions enhancements, etc.

The TV input framework will gather several sources for example Cable, Satellite, IPTV, and Terrestrial video input into one single user interface, for example to display a unified EPG, where the user does not even need to be aware of the source. Android TV uses Exoplayer with support for MPEG DASH and Smooth Streaming, and you can find the source code on github. For PayTV, DRM will also be an important part of Android TV with support for Level 1 Widevine and Playready DRM.

The presentation slide are available here.