Extension:TimedMediaHandler
![]() État de la version : stable |
|
---|---|
![]() |
|
Implémentation | Média, API |
Description | Fournit un support intégré pour le transcodage côté serveur, WebM, Ogg Theora, Vorbis, MP3, Speex et texte synchrone (Timed_Text) |
Auteur(s) | Michael Dale, Jan Gerber, Tim Starling, James Heinrich, Brooke Vibber, Derk-Jan Hartman |
Dernière version | 0.6.0 |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | >= 1.43 |
Modifie la base de données |
Oui |
Tables | transcode |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | |
|
|
|
|
|
|
Téléchargements trimestriels | 209 (Ranked 32nd) |
Utilisé par les wikis publics | 1,290 (Ranked 218th) |
Traduire l’extension TimedMediaHandler sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension TimedMediaHandler est un gestionnaire de médias où le temps intervient; elle vous permet d'inclure des fichiers audio et vidéo dans les pages wiki, en utilisant la même syntaxe que pour les fichiers d'images. Elle comprend le lecteur VideoJS. Elle prend en charge les sous-titres et les légendes (c'est à dire le texte synchrone - Timed Text), et le basculement des flux temps réel entre plusieurs WebM et autres dérivés, ainsi que des fonctionnalité supplémentaires. La prise en charge côté serveur TMH comprend les options permettant de téléverser l'audio et la vidéo HTML5, plusieurs profils de transcodage pour délivrer le contenu, la lecture des fichiers MIDI, l'analyse des métadonnées pour les vidéos Ogg et WebM, et l'intégration au système de la file d'attente des travaux de MediaWiki pour l'ordonnancement des tâches de transcodage.
Pour les nouveaux développements et ceux à venir en 2022 et plus tard, voir TimedMediaHandler/2022 work.
Aperçu de la fonctionnalité
Concernant le lecteur, voir : VideoJS Player.
Pour les fonctionnalités liées au système de sous-titrage, voir la page Timed Text.
Synopsis de la syntaxe
En plus de la syntaxe d'inclusion des images, Timed Media Handler prend en charge :
- [[File:Video.ogv]]
- Affiche une video dans sa taille nominale. Affiche une image fixe à partir du point milieu avec un bouton pour démarrer un lecteur embarqué.
- [[File:Audio.oga]]
- Affiche un emplacement pour un fichier son avec un bouton de lecture. Le lecteur apparaîtra en ligne ou dans une fenêtre contextuelle si le fichier audio a des sous-titres fermés.
- [[File:Midi.mid]]
- Génère un signal audio digital à partir des instructions contenues dans le fichier MIDI et affiche le lecteur audio embarqué pour produire le son.
- [[File:Video.ogv|thumb]]
- Affiche une vidéo dans une boîte de vignette flottante.
<gallery>File:Video.ogv</gallery>
- affiche une vidéo à partir d'une galerie d'images (chaque clip va ouvrir une fenêtre de dialogue pour le lecteur complet)
- [[File:Video.ogg|thumbtime=1:25]]
- Utiliser une trame de 1 minute 25 secondes de vidéo pour l'emplacement de l'image. Un nombre seul est considéré comme étant le décalage (offset) en secondes par rapport au début. Vous pouvez aussi utiliser le format HH:MM:SS ; par exemple 1:02:22 représente 1 heure, 2 minutes, et 22 secondes dans la vidéo. Les secondes exprimées en format flottant sont prises en charge (mais posent problème sur les wikis Wikimedia : phab:T228467).
- [[File:Video.ogg|start=1:25]]
- Fragments de média temporels affiche un clip vidéo qui commence au temps 1 minute et 25 secondes à partir du début de la vidéo. Un nombre seul est considéré comme étant le décalage en secondes. Vous pouvez aussi inclure une référence de fin de la forme
end=1:30
et pour laquelle le résultat sera un clip de 5 secondes représentant le morceau allant du temps 1:25 au temps 1:30 de la vidéo. Si thumbtime n’est pas fourni, l'heure de début sera utilisée pour afficher la vignette, Vous pouvez aussi utiliser le format HH:MM:SS ; par exemple 1:02:22 représente 1 heure, 2 minutes, et 22 secondes dans la vidéo. start=
etend=
peuvent également être utilisés comme paramètres de la requête dans l'URL pour la page d'un fichier vidéo.- [[File:Video.ogg|muted]]
- Commencer la lecture du média en coupant le son. (introduit dans 1.39)
- [[File:Video.ogg|loop]]
- Lire la vidéo en boucle continue. (introduit dans 1.39)
- Obsolète
- Les mots
noicon
etnoplayer
de la syntaxe sont obsolètes et ne fonctionnent pas. De la même manière le mot-clédisablecontrols
tend à devenir obsolète. (Voir tâche T135537) Fournir une liste des valeurs suivantes séparées par des virgules : options, timedText, fullscreen
Support client
[[File:Videoonwikipedia.ogv|300px|thumb|...]]
[[File:example.ogg|thumb|...]]
[[File:example.ogg|30px]]
[[File:example.ogg]]
Le lecteur fonctionne avec la plupart des navigateurs modernes (voir la matrice du support de MediaWiki). La prise en charge des mobiles est variable en particulier pour iOS.
TimedMediaHandler comprend un module de compatibilité JavaScript pour l'audio et la vidéo Ogg qui fonctionne avec les navigateurs Safari, Internet Explorer 10/11, et Microsoft Edge.
Les utilisateurs tiers de MediaWiki peuvent également souhaiter activer manuellement la prise en charge du format MP4 H.264/AAC pour lire les vidéos propriétaire et l'audio sous Safari, IE ou Edge, mais il est possible qu'en utilisant ces formats il faille posséder une licence de brevet de MPEG-LA pour la diffusion sur Internet.
Installation
Si vous souhaitez avoir une version récente de ffmpeg pour prendre en charge l'encodage en WebM (avec la dernière version de VP9).
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
TimedMediaHandler
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TimedMediaHandler - Seulement lorsque vous installez à partir de Git, exécutez Composer pour installer les dépendances PHP, en entrant
composer install --no-dev
après vous être positionné dans le répertoire de l'extension. (Voir tâche T173141 pour des complications potentielles.) - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'TimedMediaHandler' ); $wgFFmpegLocation = '/usr/bin/ffmpeg'; // Chemins les plus habituels de ''ffmpeg'' sous Linux
- Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
- Configurez selon les besoins.
- Il peut être nécessaire d'augmenter la mémoire autorisée dans $wgMaxShellMemory .
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
L'extension va ajouter automatiquement dans $wgFileExtensions les types de fichiers pris en charge (sauf pour mp4), il est donc inutile d'ajouter ces types manuellement.
Donc après l'installation, modifiez le répertoire contenant l'extension par exemple "../extensions/TimedMediaHandler/" et exécutez composer install --no-dev
, ou composer update --no-dev
si vous faites une mise à jour.
Alternativement et de préférence, ajoutez la ligne "extensions/TimedMediaHandler/composer.json"
au fichier « composer.local.json » dans le répertoire racine de votre wiki comme par exemple
{
"extra": {
"merge-plugin": {
"include": [
"extensions/TimedMediaHandler/composer.json"
]
}
}
}
Comparaison entre les différentes options Wikipedia d'encodage des médias
Depuis 2018, les sites Wikimedia utilisent VP9.
Tri par niveau de largeur de bande :
Débit | Mbit/s | WebM VP8 | WebM VP9 |
---|---|---|---|
Super lent | 0.08 | 160p | |
Très lent | 0.16 | 160p | 240p |
Faible | 0.25 | 240p | 360p |
Modéré | 0.5 | 360p | 480p |
Moyen | 1.0 | 480p | 720p |
Élevé | 2.0 | 720p | 1080p |
Très élevé | 4.0 | 1080p | 1440p |
Super rapide | 8.0 | 2160p |
Options détaillées :
Nom | 160P | 240P | 360P | 480P | 720P | 1080P | 160P | 240P | 360P | 480P | 720P | 1080P | 1440P | 2160P | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Conteneur | WebM | ||||||||||||||
Vidéo | Encodage | VP8 | VP9 | ||||||||||||
Largeur maximale (pixels) | 288 | 426 | 640 | 854 | 1280 | 1920 | 288 | 426 | 640 | 854 | 1280 | 1920 | 2560 | 4096 | |
Hauteur maximale (pixels) | 160 | 240 | 360 | 480 | 720 | 1080 | 160 | 240 | 360 | 480 | 720 | 1080 | 1440 | 2160 | |
Débit (Mbit/s) | 0.16 | 0.25 | 0.5 | 1.0 | 2.0 | 4.0 | 0.08 | 0.16 | 0.25 | 0.5 | 1.0 | 2.0 | 4.0 | 8.0 | |
Audio | Encodage | Vorbis | Opus | ||||||||||||
Canaux | 2 (stereo) | (pass-through) | |||||||||||||
Taux d'échantillonnage (Hz) | 44100 | 48000 | |||||||||||||
Qualité | - | 1 | 2 | 3 | - | (default) |
Configuration
Cette page est obsolète. |
Voici quelques paramètres de configuration pouvant être utiles :
// The minimum size for an embedded video player (smaller than this size uses a pop-up player).
$wgMinimumVideoPlayerSize = 200;
// If transcoding is enabled for this wiki (if disabled, no transcode jobs are added, and no transcode status is displayed).
// Note: if remote embedding an asset, we will still check if the remote repo has transcoding enabled and associated flavors
// for that media embed.
$wgEnableTranscode = true;
// Exclude transcoding jobs from the default job runner because they take very long to complete
$wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscode';
$wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscodePrioritized';
// The total amount of time a transcoding shell command can take:
$wgTranscodeBackgroundTimeLimit = 3600 * 8;
// Taille maximale de la mémoire virtuelle disponible pour les processus de transcodage (kilo octets)
$wgTranscodeBackgroundMemoryLimit = 2 * 1024 * 1024; // 2GB avconv, ffmpeg2theora mmap resources so virtual memory needs to be high enough
// Maximum file size transcoding processes can create, in KB
$wgTranscodeBackgroundSizeLimit = 3 * 1024 * 1024; // 3GB
// Number of threads to use in avconv for transcoding
$wgFFmpegThreads = 1;
// The NS for TimedText (registered on MediaWiki.org)
// https://www.mediawiki.org/wiki/Extension_namespace_registration
// Note commons pre-dates TimedMediaHandler and should set $wgTimedTextNS = 102 in LocalSettings.php
$wgTimedTextNS = 710;
// Set TimedText namespace for ForeignDBViaLBRepo on a per wikiID basis
// $wgTimedTextForeignNamespaces = [ 'commonswiki' => 102 ];
$wgTimedTextForeignNamespaces = [];
/**
* Default enabled transcodes
*
* -If set to empty array, no derivatives will be created
* -Derivative keys encode settings are defined in WebVideoTranscode.php
*
* -These transcodes are *in addition to* the source file.
* -Only derivatives with a smaller width than the source asset size will be created
* -Regardless of source size, at least one WebM and Ogg source will be created from the $wgEnabledTranscodeSet
* -Derivative jobs are added to the MediaWiki JobQueue the first time the asset is uploaded
* -Derivative should be listed min to max
*/
// Starting from 1.31
// All valid string values are listed in the extension's extension.json file
$wgEnabledTranscodeSet = [
'160p.webm' => true,
'240p.webm' => true,
'360p.webm' => true,
'480p.webm' => true,
'720p.webm' => true,
'1080p.webm' => true,
];
$wgEnabledAudioTranscodeSet = [
'ogg' => true, // ogg+vorbis
'opus' => false, // ogg+opus
'mp3' => true, // raw mp3
'm4a' => false, // mp4+aac (mp4a.40.5)
];
// If mp3 source assets can be ingested:
$wgTmhEnableMp3Uploads = true;
// If mp4 source assets can be ingested:
$wgTmhEnableMp4Uploads = false;
// If you use ffmpeg 2, it can be set to true
$wgUseFFmpeg2 = false;
Pour le transcodage, assurez-vous d'avoir assez de place pour $wgMaxShellMemory
, $wgMaxShellTime
et $wgMaxShellFileSize
afin que les tâches d'encodage puissent s'exécuter pleinement et sauvegarder les résultats. En général les valeurs par défaut semblent être trop faibles.
Exécuter les tâches de transcodage
Parce que les tâches de transcodage nécessitent beaucoup de ressources, elles ne sont pas exécutées dans la file des tâches normales (voir tâche T29336). A la place, elles doivent être demandées à l'aide de l'argument $2 :
Configure Localsettings.php
with:
$wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscode';
$wgJobTypesExcludedFromDefaultQueue[] = 'webVideoTranscodePrioritized';
Setup dedicated jobrunners and request running the jobs by the --type
argument:
php ./maintenance/run.php runJobs --type webVideoTranscode
php ./maintenance/run.php runJobs --type webVideoTranscodePrioritized
It is very important to run these tasks as the webserver user.
A single transcode job for a video can easily take an hour or longer, so ensure the commands have enough time and CPU to run.
Noeuds d'encodage
Pour transcoder plusieurs vidéos, vous voudrez peut-être exécuter plusieurs noeuds d'encodage se connectant à la base de données maîtresse et accèdant directement au dépôt de vos fichiers. Il vous faudra alors installer ffmpeg.
Installation minimale sous Debian et Ubuntu
apt install ffmpeg
Ajouter en plus ceci dans votre LocalSettings.php (testé uniquement sur Devuan ASCII (Archived 2018-09-23 at the Wayback Machine)) :
$wgFFmpegLocation = '/usr/bin/ffmpeg';
Résolution des problèmes
Notez-bien qu'actuellement TimedMediaHandler ne fonctionne pas avec PostgreSQL. Voir tâche T157424.
ffmpeg
– échec pour associer le segment de l'objet partagé- Augmentez dans $wgMaxShellMemory , la taille de la mémoire autorisée.
- Classe 'getID3' non trouvée
- Installez les dépendances PHP de l'extension en utilisant Composer, voir le paragraphe Installation.
- Option non reconnue 'max_muxing_queue_size'
- Vous utilisez peut être ffmpeg 2. Vous devez ajouter
$wgUseFFmpeg2 = true;
dans votreLocalSettings.php
. - Option non reconnue 'max_muxing_queue_size'
- Vous utilisez peut être ffmpeg 2. Vous devez ajouter
$wgUseFFmpeg2 = true;
à votreLocalSettings.php
. - [exception] […] /index.php?title=Special:Upload Error: Call to undefined method FSFile::getLocalRefPath()
- Cette extension n'est pas compatible avec Extension:EmbedVideo . Désinstallez-le. Vous devrez peut-être aussi vous assurer que vous avez fait correctement les étapes composer.
See also
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |