Introduction
Google Chromecast est un appareil que vous branchez sur le port HDMI de votre téléviseur. À l'aide de votre smartphone ou de votre ordinateur comme télécommande, vous pouvez utiliser Chromecast pour accéder au contenu vidéo. Le plugin Chromecast permet à un lecteur de diffuser des vidéos depuis votre bureau ou votre navigateur Chrome Android à l'aide du lecteur Brightcove vers le périphérique Chromecast.
Le plugin prend en charge toutes les vidéos Video Cloud ou les flux externes utilisant HLS ou DASH, y compris les flux cryptés DRM utilisant Widevine. La publicité est prise en charge par l'insertion d'annonces côté serveur Video Cloud (SSAI). Les annonces et les listes de lecture côté client ne sont pas prises en charge.
Pour utiliser le plugin, procédez comme suit:
- Incluez le plugin Chromecast pour le lecteur Brightcove (voir la section Mise en œuvre ci-dessous).
- Assurez-vous que le Chromecast se trouve sur le même réseau que votre appareil qui va lire la vidéo.
- Commencez à lire la vidéo.
- Cliquez sur le bouton Cast et sélectionnez votre appareil Chromecast.
Composants d'application Chromecast
Le logiciel derrière Chromecast comprend les composants suivants :
-
Application de l'expéditeur: Il s'agit de toute application pouvant lancer une session de diffusion et communiquer avec un récepteur. L'application de l'expéditeur peut être considérée comme la partie « côté client » de l'écosystème Chromecast.
Le plugin Chromecast pour Brightcove Player active l'application de l'expéditeur dans Brightcove Player. Vous en apprendrez plus sur ce sujet.
-
Application récepteur: Il s'agit d'une application Web personnalisée hébergée sur Internet public et exécutée sur un appareil Chromecast. Il gère la communication entre l'application de l'expéditeur et l'appareil récepteur. Il peut être considéré comme une application HTML d'une seule page avec des ressources CSS et JavaScript.
Par défaut, le plugin Chromecast utilise l'application Brightcove Cast Receiver, qui est hébergée sur notre CDN. L'application du récepteur est une application web qui est chargée sur le Chromecast lors d'une session de diffusion.
Appareils Chromecast pris en charge
Les appareils suivants sont pris en charge:
- Chromecast (3e génération)
- Chromecast Ultra
- Chromecast avec Google TV
Comment ça fonctionne
L'implémentation actuelle (plugin / receiver version 2.x) utilise l'API CAF (Cast Application Framework).
Lorsque le plug-in de récepteur Chromecast est ajouté, le lecteur affichera un bouton de diffusion dans l'interface utilisateur du lecteur lorsqu'un Chromecast est disponible sur le réseau local.
Lorsque l'on clique sur ce bouton, une session de diffusion est lancée avec la vidéo en cours de chargement dans le lecteur. Voici comment cela fonctionne :
- Le plugin envoie un ensemble de paramètres au récepteur.
- Le récepteur reflète le lecteur émetteur en le chargeant à partir du CDN de Brightcove.
- Une fois chargé, le lecteur côté récepteur charge l'ID vidéo de l'API de lecture qui a été envoyé au début de la session de diffusion.
- Ensuite, le lecteur côté récepteur commence la lecture à la position de la tête de lecture du lecteur émetteur.
Ce processus est identique pour les sources non-Video Cloud, sauf qu'il n'y a pas de demande d'API Playback.
Analytique
Actuellement, du point de vue analytique, la session de distribution est traitée comme une session de lecture entièrement nouvelle.
Du point de vue UX, le spectateur verra son flux en pause sur le périphérique émetteur et reprendre sur le récepteur.
Du point de vue des données, comme nos métriques sont anonymisées par défaut, elles sont enregistrées en tant que nouveau spectateur en commençant un nouveau flux sur un appareil distinct. C'est ce qui se passe réellement.
Exigences
Les exigences suivantes sont nécessaires pour le plug-in Chromecast:
- Brightcove Player v6.45.0 ou plus récent
- Plugin Brightcove Chromecast v2.0.0 ou plus récent
Mise en œuvre
Le plugin Chromecast pour Brightcove Player est utilisé comme tous les autres plugins Brightcove Player, c'est-à-dire que vous devez charger le plugin dans le lecteur.
Utilisation de Studio
Les étapes suivantes détaillent l'utilisation de Studio pour charger le plugin.
- Ouvrez le module PLAYERS et créez un nouveau lecteur ou localisez le lecteur auquel vous souhaitez ajouter le plugin.
- Sélectionnez le lien pour que le joueur ouvre ses propriétés.
- Dans le menu de navigation de gauche, sélectionnez Plugins.
-
Ensuite, sélectionnez le Ajouter un plugin bouton, puis sélectionnez Plugin Brightcove.
Ajouter un bouton Plugin -
Élargir le Plug-in Brightcove déroulant et sélectionnez Récepteur Chromecast.
Récepteur Chromecast -
Facultatif: Entrez les options de configuration dans la zone de texte Options (JSON) . Un exemple pour le lecteur par défaut dans le compte 1752604059001 est affiché. Bien sûr, vous devez saisir les informations relatives à votre joueur.
{ "playerUrl" : "https://players.brightcove.net/1507807800001/default_default/index.min.js" }
Voir ci-dessous pour plus de détails sur les options.
-
Sélectionnez le sauvegarder bouton. Vous allez maintenant voir le Récepteur Chromecast plugin ajouté à la liste des plugins pour votre lecteur.
Plugin ajouté - Pour publier le lecteur, sélectionnez Publier et intégrer > Publier les modifications.
- Pour fermer la boîte de dialogue ouverte, sélectionnez Fermer.
-
Revenez sur MEDIA et publiez votre vidéo ou votre liste de lecture à l'aide du lecteur que vous venez de mettre à jour pour Chromecast.
Une fois le plugin chargé, la lecture de la vidéo et un périphérique Chromecast disponible est à portée, le bouton cast apparaîtra dans le lecteur comme indiqué ici dans cette capture d'écran d'un lecteur :
Configuration manuelle
Suivez ces étapes pour ajouter le plugin à l'aide de l'éditeur JSON:
- Ouvrez le module PLAYERS et créez un nouveau lecteur ou localisez le lecteur auquel vous souhaitez ajouter le plugin.
- Sélectionnez le lien pour que le joueur ouvre ses propriétés.
-
Dans le menu de navigation de gauche, sélectionnez JSON Editor.
Éditeur JSON -
Ajouter un objet au
plugins
tableauVotre code doit ressembler à ceci :
{ "compatibility": true, "video_cloud": { "policy_key": "your policy key" }, "player": { "template": { "name": "single-video-template", "version": "6.45.4" } }, "studio_configuration": { "player": { "responsive": true, "height": 540, "width": 960, "units": "px" } }, "plugins": [ { "name": "chromecastReceiver", "options": {}, "stylesheets": ["https://players.brightcove.net/videojs-chromecast-receiver/2/videojs-chromecast-receiver.css"], "scripts": ["https://players.brightcove.net/videojs-chromecast-receiver/2/videojs-chromecast-receiver.js"] } ] }
Voir ci-dessous pour plus de détails sur les options.
Options de configuration
Quelle que soit la méthode que vous choisissez pour configurer le plug-in Chromecast pour Brightcove Player, vous pouvez transmettre des options pour modifier le comportement du plug-in. Bien que la configuration de ces options ne soit pas nécessaire, une personnalisation supplémentaire est possible pour les utilisateurs avancés.
Pour transmettre des options en code, vous devez utiliser quelque chose de similaire à ce qui suit :
videojs.getPlayer('myPlayerID').ready(function() {
var myPlayer = this;
options = {};
options.playerUrl = '//players.brightcove.net/1752604059001/default_default/index.min.js'; myPlayer.chromecastReceiver(options);
});
Conseils
Si votre ou vos lecteurs Web contiennent un grand nombre de plugins ou de scripts personnalisés, vous devriez envisager de créer un lecteur léger spécialement pour la lecture Chromecast.
Étant donné que le lecteur Web et son moteur de lecture sont quelque peu gourmands en ressources, l'exécution dans un environnement aux ressources limitées (comme un Chromecast) avec des scripts lourds supplémentaires peut avoir un impact négatif sur l'expérience utilisateur!
Options
Le plug-in Chromecast prend en charge les options suivantes:
-
Type:options.appName
string
Par défaut: 'Brightcove Chromecast CAF v2.0'Remplacez le nom d'application par défaut par votre propre nom personnalisé.
-
Type:options.playerUrl
string
Défaut : ''Par défaut, le lecteur côté expéditeur est mis en miroir sur le récepteur. Vous pouvez utiliser cette option pour fournir une URL Brightcove Player personnalisée côté récepteur.
Puisqu'il s'agit d'un lecteur Brightcove chargé sur le récepteur, vous pouvez personnaliser, styler et déboguer le lecteur en dehors de Chromecast.
Notez que lorsque vous utilisez l'option
playerUrl
, les lecteurs utilisés en tant qu'expéditeur et récepteur sont différents. Si vous utilisez des lecteurs limités à un domaine, vous devez utiliser la liste blanche. La liste blanche doit être faite pour le joueur expéditeur , PAS pour le joueur utilisé comme récepteur (qui est le joueur spécifié dans cette option). -
Type:options.splashScreen
string
Défaut : ''Les écran de démarrage qui doit être affiché avant une vidéo et lorsque les vidéos changent.
-
Type:options.ssaiDynamicMacros
Array
Par défaut : indéfiniCette option permet aux utilisateurs de transmettre un ensemble de macros publicitaires dynamiques au récepteur Chromecast à partir du lecteur web.
Chaque élément de ce tableau doit être une chaîne qui correspond au nom d'une variable globale (propriété de
window
). Cette valeur sera ensuite transmise au lecteur sur le Chromecast et utilisée lors de la résolution des macros publicitaires dans une URL VOD SSAI.Par exemple, supposons que votre implémentation SSAI repose sur
exampleMacro
une disponibilité mondiale. Vous devez ajouter ce qui suit aux options du plugin Chromecast :"ssaiDynamicMacros": ["exampleMacro"]
Lorsque l'expéditeur diffuse, le joueur transmet la valeur de
window.exampleMacro
across au récepteur, qui la capte automatiquement grâce à la résolution macro SSAI intégrée.
Options peu courantes
Les options suivantes ne sont généralement pas utilisées.
-
Type :options.authRequest
string
object
oufunction
Par défaut : {}
Vous pouvez utiliser cette option si vous avez besoin du Chromecast pour effectuer une demande pour obtenir l'autorisation de lire du contenu avant qu'une vidéo ne soit demandée.
Vous pouvez également l'utiliser pour obtenir des cookies, mais votre serveur devra être configuré pour autoriser
players.brightcove.net
la possibilité de définir des cookies interdomaines si vous hébergez votre propre contenu.Utilisation de la chaîne
Quand
authRequest
est une chaîne, une requête GET vide sera adressée à cette URL.Utilisation d'objets
Quand
authRequest
est un objet, il peut être utilisé pour spécifier certaines propriétés de charge utile de requête:Propriété Type Obligatoire Défaut Description url
string
Oui ''
L'URL à demander method
string
Non GET
La méthode HTTP à utiliser body
string
Non ''
Le corps de la requête headers
object
Non {}
Objet décrivant les en-têtes HTTP où les clés sont le nom d'en-tête et les propriétés sont les valeurs d'en-tête withCredentials
boolean
Non false
Objet décrivant les en-têtes HTTP où les clés sont le nom d'en-tête et les propriétés sont les valeurs d'en-tête timeout
number
Non 15000
Combien de millisecondes attendre avant d'abandonner la demande d'authentification Utilisation de la fonction
Quand
authRequest
est une fonction, elle doit renvoyer une chaîne ou un objet selon ces usages.
Limitations et problèmes connus
- Le contenu HEVC / 4K est uniquement pris en charge sur les appareils Chromecast Ultra et les Chromecast plus récents avec les appareils Google TV.
- La publicité côté client n'est actuellement pas prise en charge, mais SSAI est prise en charge!
- L'ajustement de la vitesse de lecture n'est pas actuellement pris en charge par ce plugin.
- Nous avons constaté des problèmes de recherche sur l'expéditeur après qu'une piste de sous-titres a été sélectionnée et affichée dans le récepteur.
- Sur Chromecast avec les appareils Google TV, nous avons constaté des problèmes avec l'interface utilisateur ainsi que des problèmes de lecture lors de l'utilisation de sous-titres.
- Google a cessé de prendre en charge les origines non sécurisées (HTTP) avec Chromecast, de sorte que le plugin ne fonctionnera pas dans des contextes non sécurisés. Dans ce cas, le bouton Chromecast du lecteur n'apparaîtra pas.
-
Étant donné que le plugin Chromecast repose sur la prise en charge du navigateur pour la diffusion, il n'est pris en charge que dans les combinaisons OS/navigateur suivantes :
- Desktop/Chrome
- Android/Chrome
- Google ne prend pas en charge plusieurs instances du bouton de l'expéditeur Chromecast sur une seule page. Les solutions de contournement possibles seraient d'intégrer Brightcove Player à l'aide de l'implémentation du lecteur Standard (iframe), ou d'instancier et de détruire dynamiquement les joueurs au besoin. Voir le document Brightcove Player Exemple : Chargement dynamique du lecteur pour obtenir des informations sur cette dernière possibilité.
- Ce plugin n'est pas diffusé dans Google Nest Hub. Le plugin prend uniquement en charge les appareils Chromecast réels (Chromecast et Chromecast Ultra).
- Android WebView ne prend pas en charge la diffusion avec Chromecast. Pour plus d'informations , voir le Suivi des problèmes d'Android.
Changements de la v1.x à la v2.x
Outre les modifications internes, comme l'utilisation de l'API CAF au lieu de l'API Chromecast v2, les interfaces suivantes ont changé:
-
options.css
etoptions.js
ne sont plus pris en charge. customData.analyticsParams
était ajoutécustomData.catalogData
a été renommécustomData.catalogParams
pour améliorer la cohérence avec d'autres usagescustomData.policyKey
a été remplacé parcustomData.catalogParams.policyKey
customData.keySystems
était ajouté
Changelog
Voir le Récepteur Chromecast et version du plug-in.
Pour les notes de version historiques, voir le changelog ici.