1
Screencasting
Rex Tsai
chihchun@kalug.linux.org.tw
http://nutsfactory.net/
H4 @ MR Brown
2013-08-29
(2013-09-01 updated)
2
Screen mirroring solutions
● AirPlay
● mirroring standard for iOS.
● Miracast/WiDi
● RTP/RTSP
● Chromecast
● DIAL
● WebRTC
3
Apple AirPlay
● Wireless Media Streaming / Screen Mirroring Protocol
for iOS
● Discovery – Bonjour / zeroconf
● AirPlay service / RAOP (Remote Audio Output Protocol)
● FairPlay for protect screen content and encrypted
● UDP-based, based on RTSP
● Codec - Apple Lossless codec with 44100 Hz and 2 channels
and H264
● Proprietary protocol, only license audio-streaming to 3rd
partyies
4
Requirement for hacks
● Understand FairPlay / DRM for screen
protection
● FairPlay DRM initiation - ‘/fp-setup’
● Video steaming encryption
● AirTunes/AirPlay private/public RSA keys
● Implement the AirPlay receiver server
5
Commerical products of
AirPlay mirroring
● James Laird reverse-engineered and released the
private key
● VMLite rPlay for Raspberry Pi and Windows
– http://www.youtube.com/watch?v=aviPOINM6Bk
● Electroniccolor -
http://v.youku.com/v_show/id_XNTgwMjQzMTk2.html
AirParrot - http://www.airsquirrels.com/airparrot/
● AirServer - http://www.airserver.com/
● Hacksugar: Live AirPlay mirroring to Mac from iOS |
TUAW - The Unofficial Apple Weblog
– http://www.tuaw.com/2012/02/08/hacksugar-live-airplay-mirroring-to-mac/
6
Micrast/Wireless Display
● Discovery - WiFi Direct (Layer 2 protocol)
● Media Protocol
● RTP
● RTSP
● Available
● Android 4.2
● Windows client available from Intel
● Built-in in Windows 8.1
● Wi-Fi Display Technical Specification 199USD
7
8
9
10
11
AOSP Miracast Sink
● Android 4.2
● https://github.com/kensuke/How-to-Miracast-on-AOSP/wiki
● https://github.com/kensuke/
● Demo - http://www.youtube.com/watch?v=KNEmaIr3FEg
● Possible to port this feature to Android dongle like mk802
12
Chromecast
● DIscovery And Launch http://www.dial-multiscreen.org/
● Based on UpnP & REST
● WebRTC http://www.webrtc.org/
● Support applications
● YouTube
● Netflix
● Google Play Music
● Google Play Movies & TV
● “Google Cast” Browser plugin available for Windows, Mac OS,
Linux. https://chrome.google.com/webstore/detail/google-cast/boadgeojelhgndaghljhdicfkmllpafd
● Bootloader is hacked http://wiki.gtvhacker.com/index.php/Google_Chromecast#Bootloader_Exploit_Package
●
Does not work in AP Isolation mode
https://support.google.com/chromecast/answer/3213084?hl=en
13
Supported Media Types
● Video codecs: H.264 High Profile Level
4.1, 4.2 and 5, VP8
● Audio decoding: HE-AAC, LC-AAC,
CELT/OPUS, MP3
● Containers: MP4/CENC, WebM,
MPEG-DASH, SmoothStreaming
● Level 1 DRM support: Widevine,
Playready
https://developers.google.com/cast/supported_media_types
14
15
16
Chromecast clone Software
● SINK (Server)
● CheapCast - https://github.com/mauimauer/cheapcast
– Supported Applications
● ChromeCast
● YouTube
● PlayMovies
● GoogleMusic
● GoogleCastSampleApp
● GoogleCastPlayer
● Fling
● TicTacToe
– Unstable, Android's WebView does not work well on old device like mk802.
● SOURCE (Clients)
● AirCast
● RemoteCast
17
References
● Unofficial AirPlay Protocol Specification
http://nto.github.io/AirPlay.html
● Wi-Fi Display Technical Specification v1.0.0
http://www.wi-fi.org/knowledge-center/published-specifications
● Stream Laptop Content over HDTV with Intel® Wireless Display
https://www-ssl.intel.com/content/www/us/en/architecture-and-technology/intel-wireless-display.html
● https://www.wi-fi.org/sites/default/files/uploads/wp_Miracast_Industry_20120919.pdf
● DIAL-2ndScreenProtocol-1.6.4.pdf http://www.dial-multiscreen.org/dial-protocol-specification
● Google Cast API https://developers.google.com/cast/

Screencasting

  • 1.
  • 2.
    2 Screen mirroring solutions ●AirPlay ● mirroring standard for iOS. ● Miracast/WiDi ● RTP/RTSP ● Chromecast ● DIAL ● WebRTC
  • 3.
    3 Apple AirPlay ● WirelessMedia Streaming / Screen Mirroring Protocol for iOS ● Discovery – Bonjour / zeroconf ● AirPlay service / RAOP (Remote Audio Output Protocol) ● FairPlay for protect screen content and encrypted ● UDP-based, based on RTSP ● Codec - Apple Lossless codec with 44100 Hz and 2 channels and H264 ● Proprietary protocol, only license audio-streaming to 3rd partyies
  • 4.
    4 Requirement for hacks ●Understand FairPlay / DRM for screen protection ● FairPlay DRM initiation - ‘/fp-setup’ ● Video steaming encryption ● AirTunes/AirPlay private/public RSA keys ● Implement the AirPlay receiver server
  • 5.
    5 Commerical products of AirPlaymirroring ● James Laird reverse-engineered and released the private key ● VMLite rPlay for Raspberry Pi and Windows – http://www.youtube.com/watch?v=aviPOINM6Bk ● Electroniccolor - http://v.youku.com/v_show/id_XNTgwMjQzMTk2.html AirParrot - http://www.airsquirrels.com/airparrot/ ● AirServer - http://www.airserver.com/ ● Hacksugar: Live AirPlay mirroring to Mac from iOS | TUAW - The Unofficial Apple Weblog – http://www.tuaw.com/2012/02/08/hacksugar-live-airplay-mirroring-to-mac/
  • 6.
    6 Micrast/Wireless Display ● Discovery- WiFi Direct (Layer 2 protocol) ● Media Protocol ● RTP ● RTSP ● Available ● Android 4.2 ● Windows client available from Intel ● Built-in in Windows 8.1 ● Wi-Fi Display Technical Specification 199USD
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
    11 AOSP Miracast Sink ●Android 4.2 ● https://github.com/kensuke/How-to-Miracast-on-AOSP/wiki ● https://github.com/kensuke/ ● Demo - http://www.youtube.com/watch?v=KNEmaIr3FEg ● Possible to port this feature to Android dongle like mk802
  • 12.
    12 Chromecast ● DIscovery AndLaunch http://www.dial-multiscreen.org/ ● Based on UpnP & REST ● WebRTC http://www.webrtc.org/ ● Support applications ● YouTube ● Netflix ● Google Play Music ● Google Play Movies & TV ● “Google Cast” Browser plugin available for Windows, Mac OS, Linux. https://chrome.google.com/webstore/detail/google-cast/boadgeojelhgndaghljhdicfkmllpafd ● Bootloader is hacked http://wiki.gtvhacker.com/index.php/Google_Chromecast#Bootloader_Exploit_Package ● Does not work in AP Isolation mode https://support.google.com/chromecast/answer/3213084?hl=en
  • 13.
    13 Supported Media Types ●Video codecs: H.264 High Profile Level 4.1, 4.2 and 5, VP8 ● Audio decoding: HE-AAC, LC-AAC, CELT/OPUS, MP3 ● Containers: MP4/CENC, WebM, MPEG-DASH, SmoothStreaming ● Level 1 DRM support: Widevine, Playready https://developers.google.com/cast/supported_media_types
  • 14.
  • 15.
  • 16.
    16 Chromecast clone Software ●SINK (Server) ● CheapCast - https://github.com/mauimauer/cheapcast – Supported Applications ● ChromeCast ● YouTube ● PlayMovies ● GoogleMusic ● GoogleCastSampleApp ● GoogleCastPlayer ● Fling ● TicTacToe – Unstable, Android's WebView does not work well on old device like mk802. ● SOURCE (Clients) ● AirCast ● RemoteCast
  • 17.
    17 References ● Unofficial AirPlayProtocol Specification http://nto.github.io/AirPlay.html ● Wi-Fi Display Technical Specification v1.0.0 http://www.wi-fi.org/knowledge-center/published-specifications ● Stream Laptop Content over HDTV with Intel® Wireless Display https://www-ssl.intel.com/content/www/us/en/architecture-and-technology/intel-wireless-display.html ● https://www.wi-fi.org/sites/default/files/uploads/wp_Miracast_Industry_20120919.pdf ● DIAL-2ndScreenProtocol-1.6.4.pdf http://www.dial-multiscreen.org/dial-protocol-specification ● Google Cast API https://developers.google.com/cast/