Présentation
Media Launcher est un utilitaire de lancement de vidéos qui vient compléter les lecteurs médias existants, en permettant d'ajouter des actions et/ou fonctionnalités avant et après la lecture, que les lecteurs médias ne permettent pas.
Certains diffuseurs, comme par exemple les vidéo-projecteurs JVC, prennent beaucoup de temps à afficher une image après un changement de mode d'affichage (résolution, fréquence de rafraîchissement, etc.). Cet utilitaire permet d'ajouter un délai avant la lecture de la vidéo pour pallier à ce défaut.
Il est également possible de définir des commandes. Celles-ci contiennent une ou plusieurs conditions à remplir pour être exécutées (basées sur la résolution, le ratio, la fréquence, le nom du fichier ou un déclencheur), et une ou plusieurs étapes exécutables. Ces étapes sont lancées dans l'ordre défini dans le fichier de configuration, et peuvent être soit un démarrage de script externe (ou fichier exécutable), soit un appel HTTP vers une URL (commande IP d'appareils, ordres vers un Global Caché ou encore un Arduino), soit une pause de durée paramétrable.
Il devient alors possible d'appeler des mémoires de zoom de vidéo-projecteurs en fonction du ratio d'image, ou encore d'enclencher le mode 3D d'un vidéo-projecteur ou d'un téléviseur en fonction du nom de fichier qui contiendrait la séquence de caractères "3D" ou "-3D" etc.
MediaLauncher se place avant votre lecteur de vidéo. Il ne dispose pas de lecteur de vidéo intégré. Cela signifie que si votre lecteur de vidéos habituel est Media Player Classic, vous devrez associer vos fichier vidéos avec MediaLauncher, afin qu'il puisse appliquer les changements de modes d'affichage et les délais, et c'est ensuite MediaLauncher qui se chargera de lancer Media Player Classic pour lancer la lecture de la vidéo. C'est dans le fichier de configuration de MediaLauncher qu'il faudra configurer le chemin d'accès et le nom de l'exécutable du lecteur de vidéos.
Dans les futures versions, Media Launcher permettra de sélectionner une vidéo de démonstration audio à jouer avant un film, en fonction du format de piste audio du film, et peut-être d'autres évolutions en fonction de vos suggestions.
Note importante : Depuis la version 2.0.0, les directives PLAYER, CMDLINE et RUNIN ont été supprimées du fichier de configuration et remplacées par un bloc COMMAND, avec les directives PATH et EXEC (voir le mode d'emploi).
Fonctionnalités
- Changement automatique du mode d'affichage (résolution, fréquence de rafraîchissement)
- Affichage d'un fond noir pendant l'exécution
- Application d'un délai avant lecture de la vidéo (et choix du mode d'application du délai)
- Affichage d'un compte à rebours avant lecture de la vidéo (et choix du mode d'application du compte à rebours)
- Lecture du format de la vidéo pour détermination automatique du mode d'affichage (utilise la librairie MediaInfo)
- Lancement de scripts externes ou d'appels HTTP pour envoyer des commandes aux appareils tels que Vidéo-Projecteur, Téléviseur ou encore Amplificateur Home-Cinéma
Installation
- Télécharger l'archive de l'application
- Décompresser l'archive zip dans un dossier de votre PC (par exemple C:\MediaLauncher)
- Télécharger la librairie MediaInfo (choisir la version DLL - without installer). Choisissez la version 32 bits ou 64 bits en fonction de votre version de Windows.
- Décompresser l'archive et placer le fichier MediaInfo.dll dans le même dossier que MediaLauncher.
- Modifier le fichier ZM.Media.Launcher.conf en vous référant à la section Mode d'emploi pour personnaliser le fonctionnement du MediaLauncher.
Mode d'emploi
Utilisation
Vous pouvez utiliser MediaLauncher en mode ligne de commande, en passant le nom du fichier vidéo à jouer en paramètre :
C:\MediaLauncher>ZM.Media.Launcher "C:\Mes films\Mon fichier video.mkv"Vous pouvez également associer vos types de fichiers à MediaLauncher au moyen des paramètres de Windows afin d'utilier MediaLauncher à chaque lecture de vidéo en double-cliquant sur un fichier vidéo.
Le comportement de MediaLauncher est défini dans son fichier de configuration (voir ci-dessous). Vous pouvez également forcer certains paramètres à l'exécution en ajoutant des paramètres de ligne de commande. Les paramètres de ligne de commande sont prioritaires sur le fichier de configuration.
Depuis la version 2.2.0, vous pouvez modifier la configuration plus facilement via un mode fenêtré, en exécutant l'application sans aucun paramètre de ligne de commande :
Vous pouvez ajouter le paramètre de ligne de commande --verbose pour afficher les détails de l'exécution dans la fenêtre d'invite de commande. La première partie de la sortie contiendra la configuration calculée (à partir du fichier de configuration et des options de ligne de commande), et la deuxième partie contiendra les étapes de l'exécution. Cette méthode permet de comprendre ce qui ne va pas lorsque le comportement de l'application n'est pas celui attendu.
Utilisez le paramètre de ligne de commande --help pour afficher la liste des paramètres de ligne de commande disponibles.
Fichier de configuration
Le fichier de configuration possède le même nom que l'exécutable de l'application, avec l'extension "conf" :
ZM.Media.Launcher.confLes lignes vides et les lignes commençant par # (marque de commentaire) sont ignorées. Le fichier de configuration fourni contient une configuration standard et des lignes de commentaire expliquant chaque directive.
- DELAY
Durée du délai appliqué entre un changement de mode vidéo et le lancement de la lecture du fichier vidéo. - DELAYIF
Détermine dans quel cas appliquer le délai :- NONE : Ne jamais appliquer le délai.
- MODE : Le délai s'applique à chaque changement de mode d'affichage (sauf au retour au mode initial à la fermeture de l'application).
- FIRST : Applique le délai seulement au premier changement de mode d'affichage.
- START : Applique le délai seulement au démarrage de l'application.
- ALL : Applique le délai avant chaque lecture de fichier vidéo.
- COUNTDOWN
Détermine dans quel cas afficher un compte à rebours :- NONE : Ne jamais afficher le compte à rebours.
- MODE : Le compte à rebours s'affiche à chaque changement de mode d'affichage (sauf au retour au mode initial à la fermeture de l'application).
- FIRST : Le compte à rebours s'affiche seulement au premier changement de mode d'affichage.
- START : Le compte à rebours s'affiche seulement au démarrage de l'application.
- ALL : Affiche le compte à rebours avant chaque lecture de fichier vidéo.
- DISPLAYMODE
Détermine comment sélectionner le mode d'affichage :- NONE : Ne change jamais le mode d'affichage.
- COMPUTED : Utilise les paramètres calculés à partir du fichier de configuration et des paramètres de ligne de commande.
- MEDIAINFO : Utilise la librairie MediaInfo pour lire le fichier vidéo et extraire du premier flux vidéo la résolution et la fréquence de rafraîchissement, puis utilise les sections SECTION RESOLUTION et SECTION FREQUENCY (voir plus bas) pour sélectionner les meilleurs paramètres.
- SHOWBLACKSCREEN
Affiche un écran noir dès le démarrage de l'application (utilisé aussi pour le délai et/ou le compte à rebours), afin d'assurer de douces transitions entre les vidéos.
NOTE : Le compte à rebours ne s'affichera pas si ce paramètre est désactivé.
Valeurs possibles : 1, ON ou TRUE pour activer l'option, 0, OFF ou FALSE pour désactiver l'option. - RESTOREDISPLAY
Détermine si les paramètres d'affichage initiaux doivent être restaurés à la fin de l'exécution de l'application. - DISPLAY
Numéro de l'écran sur lequel doivent s'appliquer les changements de mode d'affichage, l'écran noir et le compte à rebours. - BITDEPTH
Profondeur des couleurs en bits (8, 16, 24 ou 32). Sous Windows 8 et ultérieur, seule la valeur 32 est applicable. - WIDTH
Résolution d'écran en largeur à utiliser pour la lecture vidéo. Ce paramètre est utilisé si aucune correspondance n'est trouvée dans la section SECTION RESOLUTION (voir plus bas). - HEIGHT
Résolution d'écran en hauteur à utiliser pour la lecture vidéo. Ce paramètre est utilisé si aucune correspondance n'est trouvée dans la section SECTION RESOLUTION (voir plus bas). - FREQUENCY
Fréquence de rafraîchissement à utiliser pour la lecture vidéo. Ce paramètre est utilisé si aucune correspondance n'est trouvée dans la section SECTION FREQUENCY (voir plus bas). - ORIENTATION
Détermine l'orientation de l'écran à utiliser lors du changement de mode d'affichage :- 0 : Orientation par défaut.
- 1 : Rotation de 90° dans le sens des aiguilles d'une montre.
- 2 : Rotation de 180° dans le sens des aiguilles d'une montre.
- 3 : Rotation de 270° dans le sens des aiguilles d'une montre.
- SECTION RESOLUTION
Section dans lequelle il est possible de préciser des directives de sélection de résolution d'affichage, en fonction de la largeur de la vidéo en nombre de pixels.
Chaque ligne contiendra une directive sous la forme MIN-MAX:WIDTHxHEIGHT.
Exemple : 1281-1920:1920x1080 indiquera que pour toute vidéo dont la largeur est comprise entre 1281 et 1920 pixels inclus provoquera un mode d'affiche d'écran de 1920 par 1080 pixels.
La section devra toujours se terminer par une ligne contenant END SECTION
NOTE : Les résolutions non précisées dans cette section utiliseront la valeur par défaut, soit les paramètres WIDTH et HEIGHT (voir plus haut).
Exemple de section :
SECTION RESOLUTION
0-1280:1280x720
1281-1920:1920x1080
1921-3840:3840x2160
END SECTION - SECTION FREQUENCY
Section dans lequelle il est possible de préciser des directives de sélection de fréquence de rafraîchissement, en fonction de la vitesse de défilement de la vidéo.
Chaque ligne contiendra une directive sous la forme MIN-MAX:FRAMERATE.
NOTE : La valeur minimum ou maximum est un nombre à décimales, mais la valeur "FRAMERATE" est un nombre entier. Les drivers d'affichage utilisent la valeur 23 afin de désigner la fréquence de 23,976 images par seconde.
Exemple : 23-23.999:23 indiquera que pour toute vidéo dont la vitesse de défilement est comprise entre 23 et 23,999 images par seconde inclus provoquera un mode d'affiche d'écran 23,976 Hz.
La section devra toujours se terminer par une ligne contenant END SECTION
NOTE : Les fréquences non précisées dans cette section utiliseront la valeur par défaut, soit le paramètre FREQUENCY (voir plus haut).
Exemple de section :
SECTION FREQUENCY
23-23.999:23
24-24:24
END SECTION - COMMAND
Section définissant une commande contenant une préférence, une ou plusieurs conditions et une ou plusieurs étapes exécutables.
La préférence permet de définir une priorité qui déterminera l'ordre d'exécution des commandes si plusieurs commandes satisfont aux conditions.
Chaque ligne contiendra une condition ou étape seulement. Les étapes sont exécutées dans l'ordre dans lequel elles apparaîssent dans le fichier de configuration.
NOTE : Si plusieurs conditions sont définies, leur assemblage se fait avec un ET logique, c'est à dire que toutes les conditions doivent être réunies pour que la commande soit exécutée. Pour effectuer un OU logique, veuillez créer plusieurs commandes séparées.
Chaque COMMAND doit contenir une description pouvant contenir un ou plusieurs espaces.
La section devra toujours se terminer par une ligne contenant END COMMAND
Conditions possibles :
- RESOLUTION MIN-MAX : Si la résolution de la vidéo est comprise entre MIN et MAX compris. (MIN et MAX sont des nombres entiers)
- RATIO MIN-MAX : Si le ratio d'image est compris entre MIN et MAX compris. (MIN et MAX sont des nombres décimaux, le séparateur décimal est le point)
- FREQUENCY MIN-MAX : Si la vitesse de défilement de la vidéo est comprise entre MIN et MAX compris. (MIN et MAX sont des nombres décimaux, le séparateur décimal est le point)
- FILENAME CONDITION PATTERN : Si le nom de fichier satisfait à la condition en utilisant PATTERN. Liste des conditions :
- STARTSWITH : Si le nom du fichier commence par PATTERN.
- ENDSWITH : Si le nom du fichier termine par PATTERN.
- CONTAINS : Si le nom du fichier contient PATTERN.
- NOTCONTAINS : Si le nom du fichier ne contient pas PATTERN.
- EQUALTO : Si le nom du fichier est égal à PATTERN.
- NOTEQUALTO : Si le nom du fichier n'est pas égal à PATTERN.
- MEDIAINFO STREAMTYPE INDEX PROPERTYNAME CONDITION PROPERTYVALUE : Si la propriété MediaInfo du n-ième (index) flux spécifié est égale ou non à la valeur spécifiée. Liste des arguments :
- STREAMTYPE : Type de flux parmi GENERAL, VIDEO, AUDIO, TEXT.
- INDEX : Index du flux. (Ex.: VIDEO 1 = premier flux vidéo).
- PROPERTYNAME : Nom de la propriété MediaInfo à comparer.
- CONDITION : Opérateur de comparaison parmi :
- STARTSWITH : Si la valeur de propriété commence par PROPERTYVALUE.
- ENDSWITH : Si la valeur de propriété termine par PROPERTYVALUE.
- CONTAINS : Si la valeur de propriété contient PROPERTYVALUE.
- NOTCONTAINS : Si la valeur de propriété ne contient pas PROPERTYVALUE.
- EQUALTO : Si la valeur de propriété est égale à PROPERTYVALUE.
- NOTEQUALTO : Si la valeur de propriété n'est pas égale à PROPERTYVALUE.
- PROPERTYVALUE : Valeur à comparer avec la propriété.
- TRIGGER EVENT : S'exécute lors de l'évènement EVENT (Fichier média principal = fichier média passé en paramètre de ligne de commande) :
- START : Au lancement de l'application.
- MODE : A chaque changement de mode d'affichage.
- ALLPLAY : A chaque lancement de lecture de n'importe quel fichier média.
- PLAY : A chaque lancement de lecture d'un fichier média non principal.
- MAINPLAY : Au lancement de lecture du fichier média principal.
- ALLENDPLAY : Après la lecture de n'importe quel fichier média.
- ENDPLAY : Après la lecture d'un fichier média non principal.
- MAINENDPLAY : Après la lecture du fichier média principal.
- EXIT : A la sortie de l'application.
Etapes possibles :
- WAIT MS : Effectue une pause de MS millisecondes.
- PATH DIRECTORY : Définit le répertoire de travail de la prochaine exécution de script ou application externe comme étant DIRECTORY. Il est possible d'y inclure la variable %APPPATH% pour représenter le répertoire dans lequel se trouve MediaLauncher (%APPPATH%\SUBDIR1 représente le sous-répertoire SUBDIR1 du répertoire où se trouve MediaLauncher).
- EXEC SCRIPT ARGUMENTS : Exécute le script ou fichier exécutable SCRIPT en passant ARGUMENTS comme arguments de ligne de commande. Il est possible d'utiliser {0} pour placer le nom du fichier média. Astuce : entourer cette variable de guillemets ("{0}") pour garantir la compatibilité avec les noms de fichiers contenant des espaces. De même, entourer SCRIPT de guillemets (") si le chemin et/ou le nom du fichier exécutable contiennent un ou plusieurs espaces.
- HTTP URL : Effectue un appel HTTP sur URL. Il est possible d'utiliser {0} pour placer le nom du fichier média.
Exemple de commande : exécution du lecteur MPCHC pour la lecture de fichiers média
COMMAND Player
PREFERENCE 9999
TRIGGER ALLPLAY
PATH C:\MPC-HC
EXEC C:\MPC-HC\MPCHC.exe "{0}"
END COMMAND
Exemple de commande : effectue un appel HTTP si le ratio d'image est compris entre 2.20 et 10 (on suppose que le ratio d'image d'une vidéo n'atteindra jamais une valeur supérieure à 10)
COMMAND Zoom VP 2.35
PREFERENCE 1
TRIGGER ALLPLAY
RATIO 2.2-10
HTTP http://192.168.0.10/send?cmd=usrzoom1
END COMMAND
Exemple de commande : effectue un appel HTTP pour rétablir le zoom en sortie d'application
COMMAND Zoom VP 16/9
PREFERENCE 1
TRIGGER EXIT
HTTP http://192.168.0.10/send?cmd=usrzoom2
END COMMAND
Historique
Version 2.2.0
- Ajout d'écrans de configuration interactifs
Version 2.1.0 (télécharger)
- Ajout de la condition MediaInfo
Version 2.0.0 (télécharger)
- Ajout des commandes
- Suppression des directives PLAYER, CMDLINE et RUNIN du fichier de configuration, remplacées par une commande de préférence 9999
Version 1.0.0 (télécharger)
- Première version
- Utilise la librairie MediaInfo version 0.7.98
Crédits
Ce produit est distribué gratuitement pour une utilisation non commerciale. La redistribution de ce produit doit rester strictement gratuite
et doit obligatoirement contenir la mention suivante (incluant un lien vers ce site internet) :
MediaLauncher est un produit de ZTB-Media, Copyright (c) 2018.
Cette application a été développée par Stéphane Moitry, et mise à disposition par ZTB-Media. N'hésitez pas à utiliser le formulaire de contact pour toute question, remarque ou suggestion concernant son évolution.
Ce produit étant gratuit, il ne bénéficie d'aucune garantie ni support à l'utilisation. Toutefois, je me ferai un plaisir de répondre à vos questions, dans la limite du temps libre que je pourrai y consacrer.
N'hésitez pas à me faire part de toute redistribution de cette application au sein d'une offre packagée, je me ferai un plaisir d'ajouter ci-dessous un lien vers votre solution et une description de celle-ci.
CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DE DROITS D'AUTEUR ET LES CONTRIBUTEURS "EN L'ÉTAT" ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADAPTATION À UN USAGE PARTICULIER SONT EXCLUES. EN AUCUN CAS LE TITULAIRE DES DROITS D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DES DOMMAGES DIRECTS, INDIRECTS, ACCESSOIRES, SPÉCIAUX, EXEMPLAIRES OU CONSÉCUTIFS (Y COMPRIS, MAIS SANS S'Y LIMITER, L'APPROVISIONNEMENT DE BIENS OU SERVICES DE SUBSTITUTION, PERTE D'UTILISATION, DONNÉES OU PROFITS; OU INTERRUPTION D'AFFAIRES) TOUTEFOIS CAUSÉE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, CONTRACTUELLE, RESPONSABLE OU DÉLICTUELLE (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE TOUTE MANIÈRE DE L'UTILISATION DE CE LOGICIEL, MÊME SI AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES.
- Icône Launcher par Nattapong Pullkhow.
- Ce produit utilise la librairie MediaInfo, Copyright (c) 2002-2018 MediaArea.net SARL.
- Ce produit utilise la librairie CommandLineParser, distribué sous license MIT, Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors