2. • Ingénieur développement Java, PHP, et plus, depuis 2005,
pour des applications back-end essentiellement
• Mes expériences dans la TV numérique :
Architecte logiciel pour la plateforme de service
IPTV xDSL/FTTH chez SFR
En 2005, développeur Java pour une
expérimentation de la technologie
DVB-H (TNT pour mobile), chez ByTel.
Qui suis je ?
3. Développer une application pour toutes les TV
connectées, et boitiers TV (SetTopBox),
implique qu’il faut utiliser une multitude de
SDKs propriétaires.
Et oui, il n’y a pas de standards :(
4. Développer une application pour toutes les TV
connectées, et boitiers TV (SetTopBox),
implique qu’il faut utiliser une multitude de
SDKs propriétaires.
Et oui, il n’y a pas de standards :(
5. Pour choisir…
Une étude* récente montre, qu’au 3ème trimestre 2015 le marché des box
et/ou TV connectées se concentrent autour des produits mentionnés ci-
dessous :
* http://www.prnewswire.com/news-releases/chromecast-leads-global-digital-media-streamer-market-for-
fifth-straight-quarter-says-strategy-analytics-300184359.html
8. Roku - Le langage BrightScript
' *********************************************************
' ** Roku Hello World Example
' *********************************************************
Sub Main()
' roMessagePort = objet pour l’envoi des événements
port = CreateObject("roMessagePort")
' roParagraphScreen = composant pour la création d’un écran
screen = CreateObject("roParagraphScreen")
screen.SetMessagePort(port)
screen.SetTitle("Example")
screen.AddParagraph("Hello World!")
screen.Show()
wait(0, screen.GetMessagePort())
End Sub
Les applications Roku sont développés à l’aide du langage BrightScript.
Sa syntaxe ressemble au Basic.
Il est optimisé pour les systèmes embarqués.
http://sdkdocs.roku.com/display/sdkdoc/Roku+SDK+Documentation
10. Google Cast - 1/2
Les applications possibles du Cast sont :
Diffusion de vidéos ou musique.
Le contrôle est assuré depuis l’application sender.
Rendu des jeux (HTML5) à distance.
Disponible depuis la 2nde génération
Extension de l’affichage d’une app sur la TV
Disponible depuis la 2nde génération
11. Google Cast - 2/2
1. http://www.dial-multiscreen.org/
2. http://multicastdns.org/
3. Chercher « RAMP Protocol »
LAN
« Sender »
C’est une application
qui fonctionne
sur iOS
ou Android,
ou dans un navigateur
Chrome.
Le SDK est fourni par
Google.
Découverte avec les protocoles
DIAL (1) pour la 1ère génération
mDNS (2) depuis la 2nde génération
« Receiver »
C’est une application
HTML/JS
qui fonctionne
sur une Android TV,
ou un Cast, ou une
SetTopBox
compatible Cast.
Dialogue avec des protocoles
propriétaires de Google.
RAMP (3) était utilisé par la 1ère génération.
14. Android TV - 2/4
Android TV est désormais présents sur les téléviseurs des fabricants suivants
En France, les opérateurs ci-dessous ont choisi Android TV, comme l’OS de leur
nouvelle SetTopBox.
15. Android TV - 3/4
Comme pour les autres appareils de cet OS, les Android TV vous permettent de créer
des applications et des jeux à partir des mêmes API.
Mais, vous est aussi possible de créer de nouvelles chaines de TV…
16. <TvInputs display_name="Rich TV Input" name="Your Company" description="This is a sample TV input for demonstrating
advanced features of TV Input Framework." logo_thumb_url="http://commondatastorage.googleapis.com/android-tv/
YourCompany.jpg" logo_background_url="http://commondatastorage.googleapis.com/android-tv/YourCompany.jpg">
<Channels>
<Channel display_number="2-1" display_name="Google" video_width="1280" video_height="720" logo_url="http://
storage.googleapis.com/android-tv/images/google.png">
<Program title="Introducing Gmail Blue" duration_sec="107" video_url="http://commondatastorage.googleapis.com/android-
tv/Sample%20videos/April%20Fool's%202013/Introducing%20Gmail%20Blue.mp4" video_type="HTTP_PROGRESSIVE"
poster_art_url="http://storage.googleapis.com/android-tv/images/gmail.png" description="Introducing Gmail Blue
Introducing Gmail Blue Introducing Gmail Blue Introducing Gmail Blue." content_rating="com.android.tv/US_TV/US_TV_14/
US_TV_D/US_TV_L" genres="EDUCATION,TECH_SCIENCE"/>
<Program title="GoogleIO 2014 Casting To The Future" duration_sec="2595" video_url="http://
commondatastorage.googleapis.com/gtv-videos-bucket/sample/GoogleIO-2014-CastingToTheFuture.mp4"
video_type="HTTP_PROGRESSIVE" poster_art_url="http://storage.googleapis.com/gtv-videos-bucket/sample/images_480x270/
ToTheFuture2-480x270.jpg" description="GoogleIO 2014 Casting To The Future" content_rating="com.android.tv/US_TV/
US_TV_PG/US_TV_D" genres="EDUCATION,TECH_SCIENCE"/>
<Program title="GoogleIO 2014 Making Google Cast Ready Apps Discoverable" duration_sec="840" video_url="http://
commondatastorage.googleapis.com/gtv-videos-bucket/sample/GoogleIO-2014-MakingGoogleCastReadyAppsDiscoverable.mp4"
video_type="HTTP_PROGRESSIVE" poster_art_url="http://storage.googleapis.com/gtv-videos-bucket/sample/images_480x270/
MakingGoogleCastReadyAppsDiscoverable-480-270.jpg" description="GoogleIO 2014 Making Google Cast Ready Apps
Discoverable." content_rating="com.android.tv/US_TV/US_TV_14/US_TV_D/US_TV_L" genres="EDUCATION,TECH_SCIENCE"/>
<Program title="Introducing Google Fiber to the Pole" duration_sec="131" video_url="http://
commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Fiber%20to
%20the%20Pole.mp4" video_type="HTTP_PROGRESSIVE" poster_art_url="http://storage.googleapis.com/android-tv/images/
fiber.png" description="Introducing Google Fiber to the Pole." content_rating="com.android.tv/US_TV/US_TV_PG/US_TV_D"
genres="EDUCATION,TECH_SCIENCE"/>
<Program title="Introducing Google Nose" duration_sec="122" video_url="http://commondatastorage.googleapis.com/android-
tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Nose.mp4" video_type="HTTP_PROGRESSIVE"
poster_art_url="http://storage.googleapis.com/android-tv/images/nose.png" description="Introducing Google Nose
Introducing Google Nose Introducing Google Nose Introducing Google Nose Introducing Google Nose"
content_rating="com.android.tv/US_TV/US_TV_14/US_TV_D/US_TV_L" genres="EDUCATION,TECH_SCIENCE"/>
</Channel>
….
</Channels>
</TvInputs>
Android TV - 4/4
Les données associées à votre chaine sont récupérées à partir d’un fichier XML,
similaire à cet exemple :
http://commondatastorage.googleapis.com/android-tv/rich_tv_inputs_tif.xml
18. Apple TV - 1/3
tvOS hérite de bon nombre d’API de iOS.
Les nouveautés sont :
• Apple TV Markup Langage et TVMLJS
• TVMLKit, pour l’utilisation de TVML et TVJS avec les applications natives.
• TVServices, qui permet de remplacer le contenu de la zone top shelf (en vert)
19. Apple TV - 2/3
L’Apple TV permet de développer des :
• applications traditionnelles, qui partagent le même code
que sa version iOS
• applications « client-server », qui utilisent le TVML et TVJS.
Le stockage persistant est limité à 200M, et à 500K par application.
Pour cette raison,Apple invite à utiliser iCloud pour la gestion des données
utilisateur.
20. Apple TV - 3/3
<document>
<mainTemplate>
<background>
<img src="path to images on your server/Car_Movie_1920x1080" />
</background>
<menuBar>
<section>
<menuItem>
<title>PLAY</title>
</menuItem>
<menuItem>
<title>SCENES</title>
</menuItem>
<menuItem>
<title>EXTRAS</title>
</menuItem>
</section>
</menuBar>
</mainTemplate>
</document>
https://developer.apple.com/tvos/documentation/
22. Les produits basés sur des standards arrivent…
Le W3C travaille sur la tvapi.
https://github.com/w3c/tvapi
TIZEN, l’OS de la Linux foundation,
opensource, et basé sur les standards,
arrive dans les TV Samsung.
https://www.tizen.org/fr