
Recherche avancée
Médias (1)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (55)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (8814)
-
Revision d638056952 : Inconsistent reference to MacroblockD data structure. Cleaned up some inconsist
29 octobre 2012, par Paul WilkinsChanged Paths : Modify /vp8/encoder/rdopt.c Inconsistent reference to MacroblockD data structure. Cleaned up some inconsistent references using both xd-> and x->e_mbd. to access the same data structure in the same function. Change-Id : (...)
-
Evolution #3801 (Nouveau) : Filtrage des boucles DATA selon des contenus divers, et extension des ...
2 juillet 2016, par marcimat ☺☮☯♫Je suis tombé sur un cas de boucle DATA qui m’a ennuyé car le filtrage que je souhaitais n’était pas directement possible actuellement avec les critères dont on dispose.
Soit le tableau, disons
#TAB
suivant :$tab = [ [ ’id’ => 1, ’mots’ => [ 11, 120, 53 ]], [ ’id’ => 2, ’mots’ => [ 32, 11, 20 ]], [ ’id’ => 3, ’mots’ => [ 11, 78, 34 ]], [ ’id’ => 4, ’mots’ => [ 120, 26, 91 ]], ] ;
Je souhaitais boucler sur les éléments ayant le mot 11 par exemple, dans la clé ’mots’.
De base la boucle serait :#ID
Il faudrait ajouter un critère pour restreindre aux seuls éléments contenant le mot 11, mais
{mots = 11}
ne va pas, ni{mots IN 11}
vu que c’est le champ "mots" qui est un tableau.
On pourrait imaginer pouvoir écrire{11 IN mots}
qui serait probablement plus clair, mais ce n’est pas permis.Il n’y a actuellement pas moyen de réaliser ce filtre, ni d’étendre simplement les filtres à appliquer.
On propose ici de réfléchir à éventuellement permettre l’extension de ces tests de validation en fonction des contenus, ce qui s’apparente à ajouter quelque chose dans le WHERE en SQL, mais pour les itérateurs, c’est plutôt ajouter une contrainte sur la méthode
valid()
. Les critères tel que{id=3}
ajoutent déjà des contraintes, même{chemin/du/tableau > 5}
fonctionne.Une idée serait d’ajouter un critère
{filtre NN}
ou{valider NN}
et de définir une fonctionNN()
dans son code (mes_fonctions.php par exemple) qui recevrait la clé et la valeur en cours de validation et retournerait true ou false pour indiquer si cette entrée est acceptée ou pas. La fonction à créer serait au minimum doncNN($cle, $valeur) { return true; }
On pourrait transmettre des paramètres supplémentaires, tel que
{filtre nom, p1, p2}
qui arriveraient dans un tableau d’arguments en 3è paramètre :NN($cle, $valeur, $args)
.Voici un diff qui permet :
1) de prendre en compte `$command[’filtres’]` dans les itérateurs. Chaque entrée de ce tableau est un tableau décrivant 1 filtre, avec comme premier élément le nom de la fonction à appeler, et les suivants les éventuels arguments.
2) de déclarer un critère `filtre` sur les boucles DATA qui remplissent ce tableau de filtres
3) de montrer un exemple d’un filtre (mal nommé) ’contient’ avec 2 argumentsIndex : public/iterateur.php ===================================================================
— - public/iterateur.php (revision 23091) +++ public/iterateur.php (working copy) @@ -300,6 +300,18 @@ $this->limit = $limit[1] ;+ // filtres explicites filtre nom_fonction, param, param
+ if (!empty($this->command[’filtres’]))
+ foreach ($this->command[’filtres’] as $args)
+ $nom = array_shift($args) ;
+ if (function_exists($nom))
+ $this->filtre[] = $nom . ’( $me->key(), $me->current(), ’ . var_export($args, true) . ’)’ ;
+ else
+ spip_log("Filtre d’itérateur non connu : " . (string)$filtre) ; // [todo] mettre une erreur de squelette
+
+
+
+/**
* Compile le critère `filtre` d’une boucle DATA
*
* @syntaxe `filtre nom, [arg1, [arg2, [...]]]`
* @example `filtre contient, mots, 3`
*
* @param string $idb Identifiant de la boucle
* @param array $boucles AST du squelette
* @param Critere $crit Paramètres du critère dans cette boucle
*/
function critere_DATA_filtre_dist($idb, &$boucles, $crit)
$boucle = &$boucles[$idb] ;
// créer le tableau de tous filtres de la boucle
$boucle->hash .= "\n\tif (!isset(\$filtres_init)) \$command[’filtres’] = array() ; \$filtres_init = true ; \n" ;
// créer le tableau de ce filtre
$boucle->hash .= "\t\$i = count(\$command[’filtres’]) ; \$command[’filtres’][\$i] = array() ;\n" ;
// ajouter les arguments du filtre
foreach ($crit->param as $param)
$boucle->hash .= "\t" . ’$command[\’filtres\’][$i][] = ’ . calculer_liste($param, array(), $boucles, $boucles[$idb]->id_parent) . " ;\n" ;
/**
* Conserve les éléments de la boucle dont le chemin indiqué contient une certaine valeur
* sous entendu que ce chemin pointe sur une liste de valeurs possibles
*
* @syntaxe `filtre contient, chemin, val`
* @example `filtre contient, mots, 3`
*
* - chemin : est un parcours qui sera fait dans le tableau $valeurs,
* chaque / entrant dans un sous élément @see table_valeur()
* - val : est une valeur à trouver dans le tableau retrouvé du chemin indiqué
* dans l’exemple le chemin ’mots’ retourne pour une entrée une liste tel que `array(12, 31, 21)`
*
* @param int|string $cle Clé analysée
* @param mixed $valeur Valeur analysée
* @param array $args Arguments passés au filtre
* @return bool True pour accepter cette entrée, false sinon.
**/
function contient($cle, $valeur, $args)
if (count($args) != 2)
return false ;
list($chemin, $val) = $args ;
if ($valeurs = table_valeur($valeur, $chemin))
return in_array($val, $valeurs) ;
return false ;
Et un exemple d’utilisation en squelettes
Test
#SETobjets,#LISTE
#SETobjets,#GETobjets|push#ARRAYid,1,mots,#LISTE10,11,12#SETobjets,#GETobjets|push#ARRAYid,2,mots,#LISTE30,31,32
#SETobjets,#GETobjets|push#ARRAYid,3,mots,#LISTE50,51,52
#SETobjets,#GETobjets|push#ARRAYid,4,mots,#LISTE32,11
#SETobjets,#GETobjets|push#ARRAYid,5,mots,#LISTE52,10
#SETid,32
#ID
À réfléchir…
-
ffmpeg - Streaming rtsp data to local mp4 file
15 juillet 2017, par Pankhuri AgarwalHow can I save live streaming data from a local camera transported by rtsp to my local memory in a
.mp4
format.I am using Ubuntu 16.04 LTS and tried using
ffmpeg
3.3 but nothing seemed to work properly.The goal will be to provide live feed by mp4 by html5 and perform some modification on mp4 data.
Can anyone suggest how to make
ffmpeg
work or any other way ?