Économiseur d'écran enchanteur pour Kodi

image alt

Attribuer un économiseur d'écran à Kodi


Le projet est conçu pour créer un économiseur d'écran "Enchanting" avec une quantité minimale de code source en Python. Le projet est le plugin le plus simple pour le centre multimédia Kodi.

Le projet montre comment créer un très beau économiseur d'écran entièrement basé sur le travail de la communauté "OpenSource". Un projet d'intégration, c'est un exemple d'écriture de deux composants indépendants, chacun prenant environ 80 lignes de code. Le premier composant est un générateur de contenu, un script shell, le deuxième composant est un plugin Kodi multimédia center, qui est responsable de l'affichage du contenu.

Et enfin, si vous êtes un programmeur et utilisez le système de contrôle de version Git, vous pouvez visualiser votre travail, l'écrire dans un fichier vidéo et profiter du résultat sur un écran de télévision ou d'ordinateur, en vous appuyant sur votre chaise avec une tasse de café. Et lors des fraîches soirées d'automne, vous pouvez dormir tranquillement sous votre économiseur d'écran, sans oublier de régler la minuterie de l'appareil dans Kodi.

Préambule


Vous pouvez sans cesse regarder trois choses:
comment le feu brûle, comment l'eau coule et comment les autres travaillent.

Puisque le plugin est écrit pour le "Kodi Multimedia Center", je vais donc visualiser le travail de la super équipe de "Kodi Programmers".

Utiliser des plugins dans Kodi


Le Kodi Multimedia Center est un programme très puissant et flexible, fonctionnant en conjonction avec la bibliothèque externe ffmpeg, pour décoder les fichiers audio et vidéo.

Pour créer une application tierce, Kodi utilise le mécanisme d'extension «addons» ou simplement des plug-ins. Pour créer mon propre plugin, j'ai besoin de quelques compétences et d'un peu de connaissance du langage de programmation Python.

Le mécanisme du plugin Kodi est extrêmement flexible et pratique. Python est un langage interprété, ce qui signifie que je n'ai pas besoin de compiler quoi que ce soit, de le compiler dans un package logiciel séparé, de souffrir avec des fichiers de construction comme "makefile", etc.

Pour la distribution finale du plugin Kodi, il suffit de l'emballer dans l'archive Zip, en respectant certaines règles sur la structure du répertoire. Ayant la dernière archive Zip sous la main, elle peut être installée sur n'importe quel appareil sur lequel Kodi fonctionne: un ordinateur, une tablette et enfin un téléviseur (c'est-à-dire un tas de TV + une seule plaque), en spécifiant l'archive comme source de plug-in.

Structure du plugin Kodi


 └── screensaver.kodi.universe
     ├── README.md
     ├── addon.xml
     ├── changelog.txt
     ├── create.sh
     ├── fanart.jpg
     ├── icon.png
     ├── ressources
     │ ├── langue
     │ │ ├── anglais
     │ │ │ └── strings.po
     │ │ └── russe
     │ │ └── strings.po
     │ ├── settings.xml
     │ └── peaux
     │ └── par défaut
     │ ├── 720p
     │ │ └── kodi-univers.xml
     │ ├── 1080i
     │ │ └── kodi-univers.xml
     │ └── médias
     │ ├── black.jpg
     │ ├── buran.jpg
     │ └── kodi-univers.mkv
     └── screensaver.py


  • README.md - fichier facultatif, contient une description du projet pour github.com
  • addon.xml - un fichier avec une description du plugin; il contient le type de plugin, l'encodage, la version, les dĂ©pendances, le nom de l'auteur, etc.
  • changelog.txt - un fichier optionnel avec une liste des modifications du projet
  • create.sh est un fichier facultatif, un script bash est conçu pour crĂ©er un Ă©conomiseur d'Ă©cran d'archive Zip (a) et gĂ©nĂ©rer un fichier vidĂ©o Ă  partir de l'historique Git Ă  l'aide de l'outil Gource, le fichier n'a pas de relation avec le plugin Kodi lui-mĂŞme, il est nĂ©cessaire pour une distribution pratique du plugin. Il est entièrement autonome, c'est-Ă -dire n'ayant que ce fichier, vous pouvez toujours crĂ©er une archive Zip complète du plugin (si vous avez une connexion Internet).
  • fanart.jpg - image d'arrière-plan du plugin
  • icon.png - l'icĂ´ne principale
  • resources - rĂ©pertoire avec les ressources du plugin
  • screensaver.py - le fichier principal du plugin, contient tout le code source du plugin en Python, le nom du fichier peut ĂŞtre n'importe quoi, l'essentiel est que ce nom soit Ă©crit dans le fichier addon.xml

Description des ressources du plugin


Le répertoire des ressources contient les fichiers suivants:

  • language / English / strings.po - chaĂ®nes d'interface de plugin originales en anglais
  • language / Russian / strings.po - traduction en russe, le fichier est inclus dans le mĂ©canisme Kodi standard pour traduire le contenu dans les langues nationales des pays, le dĂ©but du fichier contient un en-tĂŞte de texte standard de plusieurs lignes (un exemple peut ĂŞtre trouvĂ© sur le site Web kodi.wiki , section plugins) , puis il existe des sauts de ligne composĂ©s de trois champs:

    • msgctxt - lien vers un numĂ©ro de ligne unique
    • msgstr - identifiant de la chaĂ®ne de texte d'origine en anglais
    • msgstr - traduction de la valeur msgid dans la langue nationale, dans ce cas, en russe (rĂ©pertoire russe)

  • settings.xml - le fichier principal des paramètres du plugin, dĂ©crit le menu graphique des propriĂ©tĂ©s du plugin, dont les paramètres de chaĂ®ne peuvent ĂŞtre modifiĂ©s, oĂą:

    • id - identifiant de ressource texte
    • label - une Ă©tiquette numĂ©rique unique pour le champ de texte (correspond au champ msgctxt dans le fichier de traductions strings.po)
    • type - un type de ressource prĂ©dĂ©fini (tous les types possibles sont dĂ©crits sur le site Web kodi.wiki , section plugins)
    • default - la valeur par dĂ©faut du paramètre (vous pouvez rĂ©initialiser le paramètre Ă  cette valeur en utilisant le menu Kodi du mĂŞme nom)

  • resources / skins / default / 1080i / kodi-univers.xml - fichier de configuration xml
  • resources / skins / default / 720p / kodi-univers.xml - fichier xml de configuration qui dĂ©crit l'emplacement des contrĂ´les du plug-in (contrĂ´les), leur gĂ©omĂ©trie, la taille globale, la position des Ă©lĂ©ments, le type de visibilitĂ©, etc. Le nom de la configuration est dĂ©terminĂ© en fonction du mode de l'adaptateur vidĂ©o (par exemple, 1080i ou 720p)

contenu de Russian / strings.po
# Kodi Media Center language file # Addon Name: Screensaver Kodi Universe # Addon id: screensaver.kodi.universe # Addon Provider: berserktv msgid "" msgstr "" "Project-Id-Version: Kodi Addons\n" "Report-Msgid-Bugs-To: alanwww1@kodi.org\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Kodi Translation Team\n" "Language-Team: English \ (http://www.transifex.com/projects/p/xbmc-addons/language/en/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgctxt "#32001" msgid "Screensaver" msgstr " " msgctxt "#32002" msgid "Video file" msgstr "" msgctxt "#32003" msgid "Not Video" msgstr "  " 



contenu de settings.xml
  <?xml version="1.0" encoding="utf-8" standalone="yes"?> <settings height="800"> <category label="32001"> <setting id="videofile" label="32002" type="video"/> <setting id="not-video" type="bool" \ label="32003" default="false"/> </category> </settings> 


Ressources média du plugin:

  • resources / skins / default / media / black.jpg - fond noir qui remplit l'Ă©cran avant de dĂ©marrer la vidĂ©o
  • resources / skins / default / media / buran.jpg - image futuriste du vaisseau spatial "Bourane, sur les ailes d'un rĂŞve"
  • resources / skins / default / media / kodi-univers.mkv - le fichier vidĂ©o principal qui est lu cycliquement par le plugin jusqu'Ă  l'Ă©vĂ©nement d'Ă©veil

Fichier de configuration racine du plugin - addon.xml


Addon.xml - est le fichier de configuration principal du plugin, à partir duquel Kodi prend toutes les informations nécessaires pour lancer le plugin et l'intégrer dans le centre multimédia.

contenu addon.xml
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="screensaver.kodi.universe" name="Kodi Universe" \ version="0.1.2" provider-name="berserktv"> <requires> <import addon="xbmc.python" version="2.7"/> </requires> <extension point="xbmc.ui.screensaver" library="screensaver.py" /> <extension point="xbmc.addon.metadata"> <platform>all</platform> <source>https://github.com/berserktv/screensaver.kodi.universe </source> <summary lang="en">Kodi Universe</summary> <summary lang="ru"> </summary> <description lang="en">Screensaver - Kodi Universe </description> <description lang="ru">  -  </description> <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license> </extension> </addon> 


Les principaux paramètres du plugin sont:

  • Section complĂ©mentaire
    • id - identifiant texte unique du plugin
    • name - nom du plugin
    • version - version plugin
    • provider-name - nom du fournisseur du plugin

  • Section requise - dĂ©pendances
    dans cette section les modules dont dépend le fonctionnement de ce plug-in
  • Section d' extension - extensions
    dans cette section (il peut y en avoir plusieurs), le type du plugin est indiqué,
    point d'entrée principal du plugin:
    point = "xbmc.ui.screensaver" library = "screensaver.py"

    dans notre cas, le plugin est le «Screen Saver» auquel il est transmis
    contrôle en appelant un script python appelé "screensaver.py"

    point = "xbmc.addon.metadata" peut également être spécifié dans la section extensions
    avec le type de plateforme sur laquelle le plugin peut fonctionner, le nom et la description du plugin
    dans une langue / des langues particulières, ainsi que le type de plugin LICENCE
    La quantité totale de métadonnées pouvant être spécifiées dans cette section d'extension peut être
    Vous pouvez trouver suffisamment d'informations volumineuses et plus détaillées sur le site Web
    kodi.tv

Implémentation du plugin


Étant donné que le plugin doit être extrêmement simple et direct, dans sa mise en œuvre, je me limiterai à un fichier source principal screensaver.py situé dans le répertoire racine de screensaver (a)

Pour que le script python soit appelé, je l'ai enregistré dans le fichier addon.xml, voir la section ci-dessus

Le langage de programmation Python est assez flexible, il vous permet d'effectuer la même action de plusieurs façons, et pour plus de clarté, j'utiliserai l'approche orientée objet avec les classes.

contenu screensaver.py
  # -*- coding: utf-8 -*- # Plugin for Kodi mediacenter # Kodi Universe - Very Simple Screensaver # GNU GENERAL PUBLIC LICENSE. Version 2, June 1991 import os import sys import xbmc import urllib import xbmcgui import xbmcaddon __id__ = 'screensaver.kodi.universe' __addon__ = xbmcaddon.Addon(id=__id__) __path__ = __addon__.getAddonInfo('path') def_video_url = __path__+'/resources/skins/default/media/kodi-universe.mkv' class BsPlaylist: def __init__(self,): pass def getPlaylist(self,): try: xbmc.PlayList(1).clear() except: pass self.playlist = xbmc.PlayList(1) item = xbmcgui.ListItem("item1") self.playlist.add(__addon__.getSetting("videofile"),item) return self.playlist class BsPlayer(xbmc.Player): def __init__(self,): pass def onPlayBackStarted(self): xbmc.executebuiltin("PlayerControl(RepeatAll)") def onPlayBackStopped(self): return class Screensaver(xbmcgui.WindowXMLDialog): def __init__( self, *args, **kwargs ): pass def onInit(self): video_url = __addon__.getSetting("videofile") if (video_url == ""): video_url = def_video_url __addon__.setSetting("videofile", video_url) if (__addon__.getSetting("not-video") == "true" \ or not os.path.isfile(video_url) ): return li = BsPlaylist() self.vpl = li.getPlaylist() if self.vpl: xbmc.sleep(2000) self.getControl(1).setImage("black.jpg") self.player = BsPlayer() if not xbmc.getCondVisibility("Player.HasMedia"): self.player.play(self.vpl,windowed=True) def onAction(self,action): try: xbmc.PlayList(1).clear() except: pass try: xbmc.Player().stop() except: pass try: self.close() except: pass if __name__ == '__main__': scr = Screensaver( 'kodi-universe.xml', __path__, 'default', '', ) scr.doModal() del scr 


économiseur d'écran de classe (xbmcgui.WindowXMLDialog)


La classe principale de l'économiseur d'écran

L'API Python Kodi comprend plusieurs modules principaux: xbmc, xbmcgui, xbmcplugin, xbmcaddon et xbmcvfs . Pour travailler avec l'interface graphique Kodi, j'utiliserai le module xbmcgui. Ce module contient des classes responsables de différents éléments d'interface.

Pour créer une boîte de dialogue de plugin avec son interface décrite dans le fichier de configuration xml, la classe xbmcgui est utilisée.WindowXMLDialog

Contenu kodi-univers.xml
  <?xml version="1.0" encoding="utf-8" standalone="yes"?> <window type="window"> <controls> <control type="image" id="1"> <description>Background image</description> <posx>0</posx> <posy>0</posy> <colordiffuse>FF555555</colordiffuse> <aspectratio scalediffuse="false" align="center" \ aligny="center">scale</aspectratio> <width>1920</width> <height>1080</height> <texture>buran.jpg</texture> </control> <control type="videowindow" id="2"> <description>VideoWindow</description> <posx>0</posx> <posy>0</posy> <width>1920</width> <height>1080</height> <visible>true</visible> </control> </controls> </window> 


Le fichier de configuration XML décrit deux éléments de contrôle:

Le premier avec l'identifiant - 1 , est une image de fond - "Tempête de neige, sur les ailes d'un rêve", de certaines tailles, alignée au centre de l'écran.

Le deuxième élément avec l'identifiant - 2 , est une fenêtre de lecture de la vidéo, avec un signe de visibilité et certaines dimensions géométriques.

La classe Screensaver hérite de la classe WindowXMLDialog et possède trois méthodes:

  • La mĂ©thode constructeur __init__ est appelĂ©e automatiquement lorsque l'objet est créé
  • OnInit - mĂ©thode d'initialisation graphique, appelĂ©e avant la première fenĂŞtre d'affichage
  • La mĂ©thode onAction est une mĂ©thode de traitement d'Ă©vĂ©nements qui est appelĂ©e lorsque certains Ă©vĂ©nements se produisent, dans ce cas, lorsqu'un Ă©vĂ©nement d'Ă©veil se produit, c'est-Ă -dire en cliquant sur le bouton de la souris, le clavier, en dĂ©plaçant le pointeur de la souris ou l'arrivĂ©e de tout Ă©vĂ©nement Ă  partir du panneau de commande

La classe Screensaver utilise deux classes d'assistance:

  • Classe BsPlayer - hĂ©ritĂ©e de la classe standard de lecteur vidĂ©o XBMC xbmc.Player , la classe contient trois mĂ©thodes:
    1. La méthode constructeur __init__ est appelée automatiquement lorsque l'objet est créé
    2. Substitution de la méthode de démarrage vidéo onPlayBackStarted
    3. Substitution de la méthode de fin de vidéo onPlayBackStopped

      Remarque: depuis que j'ai redéfini la méthode d'arrêt de la lecture et qu'elle est vide,
      alors la règle fonctionnera: N'arrêtons pas, allons-y

  • Classe BsPlaylist - une classe de liste conçue pour renvoyer un objet xbmc.PlayList
    la classe contient deux méthodes:

    1. La méthode constructeur __init__ est appelée automatiquement lorsque l'objet est créé
    2. La méthode getPlaylist pour définir une liste de lecture à l'aide de la liste XBMC standard - xbmc.PlayList

L'algorithme général de l'économiseur d'écran (a) est le suivant:

  1. Lorsque l'événement d'appel Screensaver se produit (a) - l'inactivité de l'utilisateur pendant le nombre spécifié de minutes et l'absence de lecture vidéo / audio active, Kodi transfère le contrôle au script screensaver.py
  2. Sur la base du fichier de configuration xml, la fenêtre graphique principale du plugin est créée. Lorsque la fenêtre graphique est initialisée, les ressources de chaîne des paramètres du plugin sont chargées (le menu est «paramètres»).

Si le fichier vidéo n'est pas spécifié
__addon __. getSetting ("fichier vidéo")

il est rempli avec un paramètre par défaut
video_url = def_video_url
__addon __. setSetting ("videofile", video_url)

s'il n'y a pas d'indicateur - "désactiver la lecture vidéo"
__addon __. getSetting ("non-vidéo")

l'image futuriste «Tempête de neige sur les ailes du rêve» est affichée pendant deux secondes
xbmc.sleep (2000)

en outre par l'identifiant de la commande 1, une image de fond noir est définie
self.getControl (1) .setImage ("black.jpg")

puis le lecteur vidéo XBMC commence par une liste de lecture à fichier unique
self.player.play (self.vpl, windowed = True)

Le fichier vidéo est lu en cercle jusqu'au moment où il arrive
événement éveillé, c.-à-d. toute action utilisateur active

Création de visualisations pour le plugin Kodi dans Ubuntu


Remarque:
Toutes les instructions décrites ci-dessous seront exécutées sous le système d'exploitation Linux, à savoir la distribution Ubuntu

Il est également possible d'effectuer les étapes décrites ci-dessous dans un système d'exploitation compatible Debian - la condition principale pour le lancement sera la présence du gestionnaire de paquets Apt dans le système, c'est-à-dire un gestionnaire qui vous permet d'installer le logiciel Deb dans le système. Bien sûr, vous pouvez effectuer les étapes suivantes sur n'importe quel système Linux, mais cela nécessitera des actions supplémentaires de votre part et il est possible de modifier la séquence de certaines commandes (par exemple: installer des packages RPM au lieu de Deb, etc.)

Gource est un projet très intéressant et fascinant. Gource est nommé d'après la source, c'est-à-dire code source + G (graphique). Cette application vous permet de visualiser l'historique des changements dans le système de contrôle de version. Gource comprend nativement Git, pour d'autres systèmes tels que SVN, Mercurial, il existe des convertisseurs qui vous permettent de convertir la base de stockage au format Git.

Gource - rend incroyablement beau avec OpenGL, et dispose d'un grand nombre de paramètres pour son travail. Cet outil incroyablement puissant pour générer une visualisation "Enchanting" que j'utiliserai.

Pour créer une visualisation, j'ai besoin d'une séquence de commandes décrite dans un script bash

Pour générer la vidéo, j'ai besoin de deux programmes principaux:
Gource - pour créer le fichier vidéo source pour l'historique Git de tout projet spécifié
FFmpeg - une bibliothèque pour l'encodage et le décodage vidéo et audio

Script pour générer un fichier vidéo de plugin


contenu create.sh
  #!/bin/bash # This is script of the generation video from "Gource". # # project: Screensaver Kodi Universe (https://berserk.tv) # This script creates a ZIP archive of a Kodi screensaver. # GNU GENERAL PUBLIC LICENSE. Version 2, June 1991 # #     , #        # git zip ffmpeg gource    sudo OUT_DIR="output" OUT="kodi-universe.mkv" NAME_PROJ="screensaver.kodi.universe" MEDIA_PATH="${NAME_PROJ}/resources/skins/default/media" NAME_REP="https://github.com/berserktv/${NAME_PROJ}.git" GSFILE="output.ppm" SECONDS_PER_DAY="1" GOURCE_FRAME_RATE="30" RESOLUTION="-1920x1080" CODEC_OUT_FRAME_RATE="25" # -vcodec -     , # libx264         (h.264) # -profile -    (baseline, main, high, # high10, high422, high444) # -pix_fmt -    (yuv420p, yuv422p, yuv444p) FFPARAM="-vcodec libx264 -profile:v high422 -pix_fmt yuv420p" GSPARAM1="--camera-mode track ${RESOLUTION} --stop-position 1.0 \ --seconds-per-day ${SECONDS_PER_DAY}" GSPARAM2="--git-branch origin/master --multi-sampling \ --stop-at-end --hide-filenames" GSPARAM3="--highlight-users --file-idle-time 13 --max-files 0 --hide date" GSPARAM4="--title Kodi --bloom-multiplier 1.0 --bloom-intensity 1.0" VIS="visualize" # GIT         GIT_REP="https://github.com/xbmc/xbmc.git" # arg1 -   git , #         # example: ./create.sh "https://github.com/facebook/react.git" if [ -n "$1" ]; then GIT_REP="$1"; fi #   git zip ffmpeg  gource packages="git zip ffmpeg gource" for i in $packages; do if ! dpkg -s $i | grep -q "install ok installed"; then sudo apt-get install -y $i; fi done #    test -d ${OUT_DIR} && rm -rf ${OUT_DIR} test -d ${OUT_DIR} || mkdir -p ${OUT_DIR} cd ${OUT_DIR} #  Screensaver  GIT ,   if ! git clone ${NAME_REP} ${NAME_PROJ}; then echo "Error, not load ${NAME_REP}, exit ..."; exit 1; fi if ! git clone ${GIT_REP} ${VIS}; then echo "Error, not load ${GIT_REP}, exit ..."; exit 2; fi #    Screensaver(a) gource ${VIS} ${GSPARAM1} ${GSPARAM2} ${GSPARAM3} ${GSPARAM4} \ --output-framerate ${GOURCE_FRAME_RATE} --output-ppm-stream ${GSFILE} ffmpeg -y -r ${GOURCE_FRAME_RATE} -f image2pipe -vcodec ppm \ -i ${GSFILE} ${FFPARAM} -r ${CODEC_OUT_FRAME_RATE} ${OUT} && sync mv -f ${OUT} ${MEDIA_PATH} rm -f ${GSFILE} #     #   GIT    screensaver() test -d ${NAME_PROJ}/.git && rm -fr ${NAME_PROJ}/.git zip -r ${NAME_PROJ}.zip ${NAME_PROJ} 


Le script doit être exécuté en tant qu'utilisateur normal, mais au démarrage, le script nécessite l'installation des programmes git zip ffmpeg gource suivants

S'ils sont absents, le script tentera de les installer à l'aide de la commande d' augmentation des privilèges - sudo .

En bref, le script fait ce qui suit:

  • Il tĂ©lĂ©charge deux projets depuis Internet avec Github.
    Le premier projet est Screensaver lui-mĂŞme
    Deuxième projet - XBMC (Kodi)

    si vous spécifiez un argument sur la ligne de commande représentant un chemin Git, vous pouvez charger n'importe quel projet Git pour la visualisation, un exemple de chargement d'un autre projet Git:

     ./create.sh https://github.com/facebook/react.git 

    dans ce cas, je prends le célèbre moteur Facebook pour la visualisation - React
  • ExĂ©cute le programme Gource avec des arguments de ligne de commande pour gĂ©nĂ©rer des fragments vidĂ©o au format PPM non compressĂ©.
    La vidéo sera générée jusqu'à ce que l'utilisateur ferme la fenêtre Gource avec la souris (en cliquant sur la croix) ou jusqu'à ce que l'utilisateur appuie sur la touche ESC

    Remarque:
    Je ne vous recommande pas de générer une vidéo d'une durée supérieure à trois minutes , car cela peut prendre un certain temps et vous obligera à stocker plus de 30 Go d' espace libre sur votre disque dur. Une minute d'images avec une résolution de 1920 × 1080 (FullHD) et une fréquence de 30 images par seconde nécessite environ 10 Go d'espace sur le disque dur. Il s'agit d'un fichier temporaire et après avoir généré le conteneur vidéo MKV correct (codec h.264) à l'aide de FFmpeg, ce fichier est supprimé et le fichier résultant reste, ce qui prend 20 Mo pour une minute de vidéo FullHD à 25 images par seconde.

    Avec ces paramètres Gource que le script utilise, vous avez la possibilité de sélectionner n'importe quelle section de temps depuis le début du développement du projet jusqu'à présent, l'échelle linéaire en bas de la fenêtre Gource en est responsable. Vous pouvez utiliser la souris pour sélectionner à tout moment, et la visualisation commence à partir de ce moment, c'est-à-dire tous les objets précédents à l'écran disparaissent, ce qui rend la vidéo plus dynamique.


  • DĂ©marre le programme FFmpeg avec une liste d'arguments pour crĂ©er un conteneur MKV Ă  partir de l'ensemble d'images Gource d'origine;
  • CrĂ©e l'archive Zip finale avec le projet Screensaver (a) et le fichier vidĂ©o gĂ©nĂ©rĂ©;

Options de Gource


  • 01 - mode camĂ©ra de piste en mode camĂ©ra
    (suit les utilisateurs actifs actuels)
  • 02 - position d' arrĂŞt 1.0 position finale
    (définit la position finale pour la lecture, plage de 0,0 à 1,0)
  • 03 --secondes par jour 1 nombre de jours par seconde vidĂ©o
    (le paramètre détermine la quantité de travail que vous verrez dans l'intervalle d'une seconde de la vidéo)
  • 04 --Git-Branch Origin / Master Project Work Branch
  • 05 - arrĂŞt de fin après la fin du journal git
  • 06 - le lissage multi-Ă©chantillonnage permet
  • 07 --hide-filenames supprimer les noms de fichiers
  • 08 - les utilisateurs en surbrillance mettent en Ă©vidence les noms d'utilisateur
  • 09 --file-idle-time 13 temps d'arrĂŞt pour le fichier
    (la durée après laquelle le nom de fichier est supprimé de l'affichage)
  • 10 --max-files 0 nombre maximum de fichiers
    (une valeur de 0 supprime la limite du nombre de noms de fichiers affichés)
  • 11 - masquer la date supprimer la date pour laquelle le cadre actuel est affichĂ©
  • 12 - titre Kodi le nom qui apparaĂ®t dans le coin infĂ©rieur gauche de la vidĂ©o
  • 13 --bloom-multiplier 1.0 contrĂ´le l'effet de la "floraison lĂ©gère" en utilisant le rayon.
  • 14 - L' intensitĂ© de floraison 1.0 contrĂ´le l'effet de la «floraison lĂ©gère» en utilisant l'intensitĂ©.
  • 15 - cadence de sortie 30 trames de sortie par seconde
  • 16 --output-ppm-stream name nom du fichier de sortie au format PPM

remarque: certains paramètres peuvent s'exclure mutuellement,
Une liste complète des paramètres peut être trouvée ici .

Petit didacticiel vidéo pour l'économiseur d'écran (a)



1) Téléchargez le projet depuis github:
  git clone https://github.com/berserktv/screensaver.kodi.universe.git 


2) Générez une vidéo et créez une archive Zip du plugin:
  cd screensaver.kodi.universe chmod u+x create.sh ./create.sh 


3) Temps de génération vidéo et utilisation de l'espace disque libre:
       .           -    20      Gource (PPM)   MKV      FFmpeg. (  h.264)  ,   Git  XBMC (Kodi)   700            .       PPM   10     ( FullHD, 30   ). 


4) Installez l'économiseur d'écran dans Kodi
     ""   Kodi (        )   Kodi - "" => " " => " Zip "   ,     Kodi Universe    Screensaver(),     .  Settings ( ) => " " => "" 

Source: https://habr.com/ru/post/fr466067/


All Articles