Brevet FR3095916A1 — publié le 20201113

Description Titre de l'invention : Procédé de production d'un fichier vidéo Domaine technique [0001] La présente invention concerne un procédé de production d'un fichier vidéo. [0002] Le domaine technique dc l'invention est celui de de la production de fichiers vidéo. [0003] Plus particulièrement le domaine de l'invention est celui dc la production de fichiers vidéo comportant des effets en trois dimensions on parle aussi de rendu 3D. [0004] Le domaine de l'invention est encore celui de la production de fichiers vidéo en envi- ronnement de calcul contraint et en temps de production contraint. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION [0005] Dans l'état de la technique on connaît des besoins d'affichage d'informations identiques sur un grand nombre d'écran. Par exemple dans un hôtel comportant plusieurs dizaines de chambres et des couloirs d'accès il y a un écran par chambre et plusieurs écrans par couloir. Si les informations à afficher sont statiques, c'est-à-dire qu'elles ne varient pas dans le temps alors les solutions existantes de télédiffusion font l'affaire. [0006] Cependant, si l'on souhaite afficher des données dynamiques, par exemple, des per- formances énergétiques en temps réel dc on a besoin d'une autre solution dc rendu. Lorsque l'on pense à un tel contenu dynamique on pense à un navigateur web qui est capable dc rendre une page html en fonction de données qui évoluent dans le temps. Dans l'état de la technique il est possible de trouver des écrans, par exemple des smart TV qui sont capables d'interpréter une page html car elle intègre un navigateur web. [0007] Cependant cette solution là également à des limites. En effet si l'on souhaite effectuer l'interprétation d'une page web comportant des éléments de rendu 3D alors on se heurte à un problème de taux de ratiaichissement. Pour qu'une vidéo paraissent fluide, c'est-à-dire qu'elle ne heurte pas la perception humaine, il faut qu'elle ait une fréquence image d'au moins 25 images pas secondes. Des valeurs classiques, pour les systèmes d'affichage, sont entre 30 et 60 images par seconde. [0008] Dans l'état de la technique ce problème ne se pose pas car soit le fréquence image n'est pas important, soit le dispositif effectuant le rendu est doté d'une puissance de calcul suffisante pour assurer la fréquence image. [0009] Cependant à, l'échelle d'un hôtel, le déploiement d'une telle puissance de calcul pour chaque écran représente un surdimensionnement des écrans qui devraient tous être des ordinateurs dotés de capacités graphiques avancées c'est-à-dire de processeurs dédiés au calcul graphique 3D. Un tel processeur est également appelé un GPU. [0010] Dans l'état de la technique il faudrait donc accepter une mise à l'échelle externe, en- 2 traînant une immobilisation de moyens de calcul et une surconsommation énergétique quand ces moyens sont employés, pour pouvoir résoudre le problème, c'est dire permettre une visualisation en 3D de données en temps réel. Résumé de l'invention [0011] L'invention offre une solution aux problèmes évoqués précédemment, en permettant de produire une vidéo avec la fréquence image souhaitée et des éléments 3D, ladite vidéo étant exploitable par un système existant de télédiffusion. [0012] Grâce à l'invention, il devient possible de surmonter les difficultés de l'état de la technique et de produire des vidéos basées sur un contenue dynamique et du rendu 3D, lesdites vidéos étant diffusable sur des écrans simples. [0013] Un aspect de l'invention concerne un procédé de production d'un fichier vidéo, avec une fréquence image prédéterminée, la vidéo étant définie par une séquence d'instructions interprétable par un navigateur internet enregistrée dans au moins un fichier, par un dispositif de traitement caractérisé en ce qu'il comporte les étapes suivantes : Acquisition d'une fréquence image et d'une durée pour la vidéo à produire ; Création d'un environnement d'interprétation de la séquence d'instructions ; Connexion de l'environnement d'interprétation à un écran virtuel ; Activation, dans l'environnement d'interprétation, du au moins un fichier par une demande de rendu du fichier ; Pour chaque image, tant que le nombre d'images dans la vidéo est inférieur à la durée de la vidéo à produire : - Interruption de l'interprétation du fichier à la fin de la production d'une image ; - Capture de l'image ; - Enregistrement de l'image capturée dans la vidéo ; - Reprise de l'interprétation du fichier [0014] Outre les caractéristiques qui viennent d'être évoquées dans le paragraphe précédent, le procédé de production d'un fichier vidéo selon un aspect de l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : Le dispositif de traitement est un dispositif de traitement sans GPU ; Le taux de production d'image est contrôlé par le détournement de la fonction « requestAnimationFrame » du navigateur internet utilisé dans l'environnement d'interprétation ; Chaque image capturée est validée par au moins un comptage de ses pixels, 3 toute erreur de validation provoquant une réinitialisation du processus de production ; La séquence d'instructions comporte des appels à des fonctions de rendu tridimensionnel ; L'environnement d'interprétation comporte un moteur d'interprétation d'instructions, l'activité de ce moteur étant commandé par des instructions de production de la vidéo ; Le moteur d'interprétation est intégré dans un navigateur internet sans tête ; Le moteur de rendu est sélectionné dans la liste formée d'au moins : Gecko, KHTML, WebKit, Trident, EdgeHTML, Presto ; La capture d'image est. réalisée à travers l'environnement d'interprétation ; Le procédé comporte une étape de sélection de la résolution de l'écran virtuel. [0015] L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Brève description des dessins [0016] Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. La figure 1 montre une représentation de moyens pour la mise en oeuvre du procédé selon l'invention ; La figure 2 montre des étapes du procédé selon l'invention. Description des modes de réalisation 100171 Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. 100181 I fig.11 montre un dispositif 100 de traitement. La dispositif 100 de traitement comporte : Un microprocesseur 110; Des Moyens 120 de stockage ; Une interface 130 de communication permettant au dispositif de traitement de recevoir et d'émettre des messages, par exemple selon un protocole reposant sur un protocole dit IP. 100191 Les moyens 120 de stockage sont, par exemple un disque dur, un disque SSD, une grappe de disque dur, une grappe de disque dur SSD, un disque usb, local ou distant. 100201 La figure 1 montre aussi que le microprocesseur du dispositif 100 de traitement, les moyens de stockage du dispositif de traitement et l'interface de communication du dispositif de traitement sont interconnectés par un bus 140. 100211 La figure 1 montre aussi que les moyens 120 de stockage comportent plusieurs zones. La figure 1 montre que les moyens 120 de stockage comporte : - Une zone 120.1 de paramétrage qui permet d'enregistrer, pour la production d'une vidéo : - Une fréquence d'image, - Une durée - Une résolution - Une url d'un fichier correspondant à la vidéo à produire. Une zone 120.2 moteur d'interprétation comportant des codes instructions pour la mise en oeuvre d'un navigateur web. Dans une variante préférée il s'agit d'un navigateur headlcss. Une zone 120.3 serveur d'écran virtuel qui comporte des codes instructions pour permettre d'émuler au moins un écran. Un tel serveur est, par exemple, Xvbf. Une alternative est Xdummy. Une zone 120.4 orchestrateur qui comporte des codes instructions dont l'exploitation permet l'utilisation des précédents moyens pour la production d'une vidéo. Un tel orchestrateur est, par exemple, Sélénium. [0022] La zone 120.1 de paramétrage peut être une table dans une base de données, chaque enregistrement de la table correspondant à une vidéo à produire, chaque colonne de la table correspondant à un paramètre. La zone de paramétrage peut aussi être un fichier de commande pour appeler un programme. La ligne de commande d'appel comporte alors les paramètres cités. Ici « hase de données » doit être entendu au sens large c'est-à-dire aussi bien un système de gestion de hase de données relationnel, un fichier plat structuré, un fichier XML ou un fichier ISDN. La liste n'est pas exhaustive. [0023] Un navigateur headless, littéralement « navigateur sans tête », est un navigateur web sans interface graphique [0024] Le dispositif 100 de traitement peut être une machine réelle ou une machine virtuelle. [0025] [fig.2] montre une étape 2000 d'acquisition des paramètres des la vidéo à produire. Ces paramètres sont au moins une fréquence image et une durée pour la vidéo. Un autre paramètre est une résolution pour la vidéo. Ces paramètres peuvent être acquis directement via une ligne de commande ou un script, ou indirectement via une lecture dans une base de données. [0026] La figure 2 montre une étape 2010 de création d'un environnement d'interprétation. Cet environnement d'interprétation est un ensemble de moyens du dispositif de traitement qui sont dédiés à la production de la vidéo. En particulier, dans une mise en oeuvre de l'invention, cet environnement d'interprétation comporte l'équivalent d'un onglet d'un navigateur web, le comportement de cet onglet étant piloté par un script. Ce script pilote la production de la vidéo. Il est, par exemple, écrit en python. Il pourrait aussi être écrit en PHP, javascript,... La liste n'est pas exhaustive. Un tel environnement peut être créé, par exemple, en utilisant SeleniurnHQ qui est, à la base, un environnement utilisé pour réaliser des tests automatiques d'application web. [0027] Dans l'invention la vidéo à produire correspond au résultat de l'interprétation d'une page web par un navigateur. Une telle page comporte des éléments html manipulés par des instructions écrites en javascript. L'invention est particulièrement pertinente lorsque les instructions javascript comporte des appels à des primitives 3D par exemple des appels à WebGL. Les éléments composant la page web sont enregistré dans au moins un fichier. En général un tel fichier en référence d'autres dont le contenu est utilisé pour les manipulations précédemment citées. [0028] Dans une variante préférée de l'invention le comportement de l'onglet de l'environnement d'interprétation est modifié de manière à: - Permettre d'utiliser la fonction « requestAnimationFrame » pour effectuer un cadencement de la production du fichier vidéo, c'est-à-dire pour faire en sorte que cette fonction délivre un signal et/ou publie un événement auquel il est possible de s'abonner, à chaque fois qu'une image est disponible ; Propose une fonction de gestion du temps basée sur les paramètres de production de la vidéo. Cette fonction permet de convertir une durée en nombre d'images. Par exemple si l'on souhaite mesurer 2 secondes avant de déclencher une action alors le recours à cette fonction déclenchera cette action dans (nombre d'images produites / fréquence images paramétréc) et ce indépendamment du temps requis pour produire une image. Ainsi dans le rendu final l'action sera bien effectuée à la bonne date. Cette fonction est utilisable dans les fichiers à interpréter pour produire la vidéo. [0029] Ces modifications de comportement sont obtenues par le chargement de code ja- vascript dans l'onglet de l'environnement d'interprétation. Ce code chargé met a disposition la fonction temporelle et surcharge la fonction standard requestAnimationFrame » pour permettre son exploitation par le script de pilotage de la production de la vidéo. Ce script pilotage devient alors capable de cadencer la production de la vidéo en la faisant avancer image par image. [0030] Un environnement d'interprétation selon l'invention est, autrement dit, équivalent à une session de navigation dans un navigateur web, ladite session étant piloté par un script externe au navigateur. [0031] La figure 2 montre une étape 2020 de connexion de l'environnement d'interprétation à un écran virtuel. Dans une mise en oeuvre de l'invention on utilise Xvbf pour pouvoir servir plusieurs écrans virtuels. On choisit la résolution de l'écran virtuel connecté à l'environnement d'interprétation en fonction de la résolution de la vidéo que l'on souhaite produire. [0032] Dans une variante de l'invention on utilise une table de correspondance entre la ré- solution souhaitée pour la vidéo et la résolution demandée à l'écran virtuel. En procédant ainsi on s'assure de disposer du bon nombre de pixels pour les images de la vidéo à produire. Par exemple si l'on souhaite produire une vidéo en résolution 1920 6 1080 alors on utilise une résolution dc 1923 * 1081 pour l'écran virtuel. [0033] Dans l'invention en utilisant un même dispositif de traitement on peut produire si- multanément plusieurs vidéos avec des résolution égales ou différentes en créant plusieurs environnements d'interprétation connectés à différents écrans virtuels. [0034] La figure 2 montre une étape 2030 d'activation d'un fichier correspondant à une page web. Cette activation est pilotée par l'environnement d'interprétation qui demande à l'onglet de l'environnement d'interprétation de charger, dans le langage courant on dit aussi de se connecter à, une adresse web aussi appelée url. Dans une mise en oeuvre préférée de l'invention les fichiers, ou page web, à interpréter pour produire des vidéos sont déployés. [0035] Ici déployé signifie que les fichiers sont installés sur des serveurs web et accessible via le protocole http ou https. Cela permet de tirer avantage des modes de communication existant dans l'environnement d'interprétation, c'est-à-dire le protocole http, tout en maintenant un environnement familier pour les personnes qui produisent ces fichiers qui sont généralement des infographistcs peu intéressés par les détails techniques des outils qu'ils utilisent. On maintient ainsi une homogénéité entre les environnements de production des pages web et les environnements d'interprétation au sens de l'invention. [0036] Dans la pratique l'invention est aussi utilisable si les fichiers à interpréter sont fournis localement c'est à dire une url commençant pas « file:// ». [0037] L'invention est particulièrement pertinente si les fichiers à interpréter comporte des instructions de rendu 3D. En effet de telles instructions implique des temps de calcul long et, pour un dispositif non spécialisé, l'impossibilité d'effectué ces calcul en un temps permettant d'atteindre la fréquence image souhaitée pour une diffusion au fil de [0038] Une fois le fichier activé, l'environnement d'interprétation commence l'interprétation des instructions contenues dans et référencées par le fichier. L'interprétation de ces instructions par l'environnement d'interprétation conduit à des activations de la fonction « requestAnimationFrame » qui a été adaptée pour l'environnement d'interprétation. Lors de l'appel à cette fonction l'environnement d'interprétation met en oeuvre les étapes suivantes : Interruption 2040 de l'interprétation de fichier web ; Capture 2050 d'une image. Dans cet étape le script qui pilote la production de la vidéo émet une instruction de capture d'écran vers l'écran virtuel connecté à l'environnement d'interprétation ; Enregistrement 2060 de l'image capturé dans la vidéo. Dans cette étape le script qui pilote la production de la vidéo ajoute l'image capturée à la vidéo en cours de production. Cette vidéo est un fichier enregistré sur les moyens de 7 stockage du dispositif de traitement. Dans une variante de l'invention l'image capturée est enregistrée horodatée dans un répertoire correspondant à la vidéo à produire. Dans cette variante l'ensemble des images capturé seront assemblées pour obtenir la vidéo. Le mode de production n'est donc pas unique. Reprise 2070 de l'interprétation si le nombre d'image produite est inférieure au produit de la durée de la vidéo par la fréquence image de la vidéo, sinon la vidéo est produite car on dispose de toute ses images. [0039] La spécificité de la solution technique telle que décrite ici c'est qu'il s'agit de capturer le corps, correspondant à la balise HTML nommée body, de la page dans son ensemble. Cela inclut toutes les technologies utilisables dans une page web : HTML, CSS (c'est-à-dire feuille de style en cascade) et ,IS (pour javascript). Le WebGL est une partie de la page web, ladite partie étant incluse, par exemple, dans une balise « Canvas » à l'intérieure de la balise « body » de la page web. La capture vidéo est donc compatible avec n'importe quelle un l web. Le rendu obtenu correspondra au moteur de rendu utilisé, et à l'écran virtuel connecté. [0040] On voit qu'avec l'invention on peut produire une vidéo d'une durée T avec une fréquence image donnée alors que le temps de calcul des toutes les images de la vidéo est supérieure à T. Une fois la vidéo produite elle peut être diffusée sur des écrans standard c'est-à-dire sans capacité d'interprétation d'un fichier web et surtout sans capacité graphique particulière. [0041] Avec l'invention il existe un décalage entre la date d'obtention des mesures permettant de produire la vidéo, par exemple des mesures de consommation énergétique, et l'apparition de la vidéo sur un écran, mais ce décalage reste acceptable et considéré comme temps réel ou dynamique dans un grand nombre d'application qui ne sont pas de l'ordre de la supervision mais du rendu compréhensible d'une information. [0042] L'invention permet donc de produire du contenu dynamique 3D diffusable à grande échelle sans recours à des moyens matériels spécialisés dans le rendu 3D. [0043] Dans une variante de l'invention, à l'étape 2050 de capture, on vérifie que l'image capturée est bien à la résolution attendue. Cela revient à compter les pixels. Si ce n'est pas le cas alors on interrompt le processus de production. Selon les variantes il est alors possible : - Reprendre à partir de la première image le processus de production de la vidéo, c'est-à-dire revenir à l'étape 2030 d'activation ; Reprendre avec une adaptation automatique des paramètres de production dans le sens de la correction de l'erreur. Cela est surtout faisable si l'erreur est détectée dès la première image produite ; où Emettre un message d'alerte vers un superviseur de la production de la vidéo, 8 par exemple un ornai'. [0044] Dans l'invention la production vidéo est basée sur l'interprétation d'un fichier qui comporte des instructions de rendu 3D. Ces instructions sont dc préférence des instructions WebGL. L'environnement de rendu doit donc comporter un moteur de rendu compatible avec cette technologie. Ces moteurs sont au moins : Gecko, KHTML, WebKit, Trident, EdgeHTML, Presto. [0045] Ainsi il est possible de mettre en oeuvre l'invention en utilisant le geckoDriver de Se- leniumHQ. L' utilisation de PyVirtualDisplay permet d'effectuer des captures d'image sur l'écran servi par Xvbf. Ces moyens associés aux étapes de l'invention permettent de produire une vidéo avec des éléments 3D. La vidéo produite peut ensuite être diffusé sur des écrans simples. 9 [Revendication 1] REVENDICATIONSProcédé de production d'un fichier vidéo, avec une fréquence image prédéterminée, la vidéo étant définie par une séquence d'instructions interprétable par un navigateur internet enregistrée dans au moins un fichier, par un dispositif (100) de traitement caractérisé en ce qu'il comporte les étapes suivantes: Acquisition (2000) d'une fréquence image et d'une durée pour la vidéo à produire ; Création (2010) d'un environnement d'interprétation de la séquence d'instructions ; Connexion (2020) de l'environnement d'interprétation à un écran virtuel ; Activation (2030), dans l'environnement d'interprétation, du au moins un fichier par une demande de rendu du fichier ; Pour chaque image, tant que le nombre d'images dans la vidéo est inférieur à la durée de la vidéo à produire : - Interruption (2040) de l'interprétation du fichier à la fin de la production d'une image ; - Capture (2050) de l'image ; - Enregistrement (2060) de l'image capturée dans la vidéo ; Reprise (2070) de l'interprétation du fichier. [Revendication 2] Procédé de production d'une vidéo selon la revendication précédente ca- ractérisé en ce que le dispositif de traitement est un dispositif de traitement sans GPU. [Revendication 3] Procédé de production d'une vidéo selon l'une des revendications pré- cédentes, caractérisé en ce que le taux de production d'image est contrôlé par le détournement de la fonction « requestAnimationFrame » du navigateur intcmct utilisé dans l'environnement d'interprétation. [Revendication 4] Procédé de production d'une vidéo selon l'une des revendications pré- cédentes, caractérisé en ce que chaque image capturée est validée par au moins un comptage de ses pixels, toute erreur de validation provoquant une réinitialisation du processus de production. [Revendication 5] Procédé de production d'une vidéo selon l'une des revendications pré- cédentes, caractérisé en ce que la séquence d'instructions comporte des 10 [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] appels à des fonctions de rendu tridimensionnel. Procédé de production d'une vidéo selon l'une des revendications précédentes, caractérisé en ce que l'environnement d'interprétation comporte un moteur d'interprétation d'instructions, l'activité de ce moteur étant commandé par des instructions de production de la vidéo. Procédé de production d'une vidéo selon la revendication 6 caractérisé en ce que le moteur d'interprétation est intégré dans un navigateur internet sans tête. Procédé de production d'une vidéo selon l'une des revendications 6 ou 7, caractérisé en ce que le moteur de rendu est sélectionné dans la liste formée d'au moins : Gecko, KHTML, WchKit, Trident, EdgeHTML, Presto. Procédé de production d'une vidéo selon l'une des revendications précédentes caractérisé en cc que la capture d'image est réalisée à travers l'environnement d'interprétation. Procédé de production d'une vidéo selon l'une des revendications précédentes caractérisé en cc qu'il comporte une étape de sélection de la résolution de l'écran virtuel.