
Recherche avancée
Médias (3)
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (40)
-
Submit enhancements and plugins
13 avril 2011If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone. -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...)
Sur d’autres sites (5093)
-
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…
-
libavutil : add version component accessor macros
4 décembre 2015, par Reynaldo H. Verdejo Pinochetlibavutil : add version component accessor macros
Pretty standard macros, these should help libav*
users avoid repeating ver.si.on parsing code,
which aids in compatibility-checking tasks like
identifying FFmpeg from Libav (_MICRO >= 100 check).
Something many are doing since we are not
intercompatible anymore.Signed-off-by : Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
-
FFMPEG video compression take too much time to compress the video
1er janvier 2015, par Usman AfzalVideo Upload Stats
15 Sec Video on Samsung galaxy S5
Using back camera : 6.86 MB [15.8 sec]
Compress File Size : 1.33 MB
Compression Time : 40-50 sec
Following command I have used to compress this video file.
[/data/data/{app-package-name}/app_bin/ffmpeg, -y, -i, /storage/emulated/0/Android/data/{app-package-name}/files/my-video-library/videos/1420020518900.mp4, -strict, -2, -b:v, 700k, -s, 640x360, -r, 30, -vcodec, libx264, -acodec, aac, -ac, 1, -b:a, 64k, -ar, 44100, -vf, vflip, /storage/emulated/0/Android/data/{app-package-name}/files/my-video-store/videos/acbfc5d3-b6c1-4cb8-89db-13aa49003760.mp4]