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 [Update April 2020: Exoplayer binary is now available on Apkpure] 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.
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:
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_mode 22 |
22 = HDCP2, 11 = HDCP1, off = HDCP not enabled right now
- Check HDCP authentication status:
1 2 |
cat /sys/module/hdmitx20/parameters/hdmi_authenticated 1 |
1=authenticated ok, 0 = failed to authenticate.
- HDCP keys for device
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_lstore 22 |
00 = no HDCP key, 14 = has HDCP1_key, 22 = has HDCP2_key
- Check TV HDCP version
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_ver 14 |
22 = TV supports HDCP2, 14 = TV supports HDCP1)
- Disable HDCP protection:
1 |
echo "-1" > /sys/class/amhdmitx/amhdmitx0/hdcp_mode |
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Think Exoplayer came bundled on my Poplar TV dev board.
Amlogic has support for HDCP but it appears to require that the box be encrypted and locked down. Most people seem to rather want a hackable box instead.
if i pick HDCP 2.2 and video stop afer its mean the tv or monitor dose not support HDCP 2.2 ?
I can’t download the apk file being mentioned in the link https://download.cnx-software.com/index.php/s/9uPAZwCN3caWrIV .Will it be possible to fix that link?
You can now download Exoplayer.apk @ https://apkpure.com/exoplayer-networkstream-progressive-hls-dash/com.moviestime.exoplayer