
Recherche avancée
Médias (2)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (98)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
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 (12182)
-
Parsing xml with perl and libXML
2 mai 2014, par user3589690I have an XML file which I would like to parse and use to create an arguments set for ffmpeg encoding.
This is what a dump of the xml looks like :
$VAR1 = {
'profile' => [
{
'enodingParam' => {
'videoFrameRate' => {
'arg' => '-r',
'content' => '25'
},
'audioCodec' => {
'arg' => '-acodec',
'content' => 'libfaac'
},
'videoCodec' => {
'arg' => '-vcodec',
'content' => 'libx264'
},
'videoSize' => {
'arg' => '-s',
'content' => '640x360'
},
'audioBitrate' => {
'arg' => '-ab',
'content' => '96k'
},
'videoGOP' => {
'arg' => '-g',
'content' => '90'
},
'audioRate' => {
'arg' => '-ar',
'content' => '22050'
},
'audioChannels' => {
'arg' => '-ac',
'content' => '2'
},
'videoPreset' => {
'arg' => '-vpre',
'content' => 'slow'
},
'videoBitrate' => {
'arg' => '-b',
'content' => '1200k'
}
},
'metadat' => {
'fileContainer' => '.mp4',
'profileName' => 'testpfrof1'
}
},
{
'enodingParam' => {
'videoFrameRate' => {
'arg' => '-r',
'content' => '25'
},
'audioCodec' => {
'arg' => '-acodec',
'content' => 'libfaac'
},
'videoCodec' => {
'arg' => '-vcodec',
'content' => 'libx264'
},
'videoSize' => {
'arg' => '-s',
'content' => '320x180'
},
'audioBitrate' => {
'arg' => '-ab',
'content' => '96k'
},
},
'videoGOP' => {
'arg' => '-g',
'content' => '90'
},
'audioRate' => {
'arg' => '-ar',
'content' => '22050'
},
'audioChannels' => {
'arg' => '-ac',
'content' => '2'
},
'videoPreset' => {
'arg' => '-vpre',
'content' => 'slow'
},
'videoBitrate' => {
'arg' => '-b',
'content' => '400k'
}
},
'metadat' => {
'fileContainer' => '.mp4',
'profileName' => 'testProfile2'
}
}
]
};I would like to use a foreach loop for the encodingparam node/tagname and end up with a string which looks something like this :
-acodec libfaac -vcodec libx264 -s 640x360 -ab 96k
I am kind of stuck . This is what I have put together so far :
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
use XML::LibXML;
my $filename = "xml/profile.xml";
my $parser = XML::LibXML->new;
my $doc = $parser->parse_file($filename)
or die "can't parse profile file: $@";
my $root = $doc->documentElement();
my @nodeList = $doc->getElementsByTagName('enodingParam');here is the xml file
<?xml version="1.0"?>
<profiles>
<profile>
<metadt>
<profilename>testp1</profilename>
<filecontainer>.mp4</filecontainer>
</metadt>
<enodingparam>
<videocodec arg="-vcodec">libx264</videocodec>
<videopreset arg="-vpre">slow</videopreset>
<videobitrate arg="-b">1200k</videobitrate>
<videowidth arg="-w">640</videowidth>
<videoheight arg="-h">360</videoheight>
<videosize arg="-s">640x360</videosize>
<videoframerate arg="-r">25</videoframerate>
<videogop arg="-g">90</videogop>
<audiobitrate arg="-ab">ab 96k</audiobitrate>
<audiocodec arg="-acodec">-acodec libfaac</audiocodec>
<audiochannels arg="-ac">2</audiochannels>
<audiorate arg="-ar">"22050"</audiorate>
</enodingparam>
</profile>
<profile>
<metadt>
<profilename>testProfile22</profilename>
<filecontainer>.mp4</filecontainer>
</metadt>
<enodingparam>
<videocodec arg="-vcodec">libx264</videocodec>
<videopreset arg="-vpre">slow</videopreset>
<videobitrate arg="-b">1200k</videobitrate>
<videowidth arg="-w">640</videowidth>
<videoheight arg="-h">360</videoheight>
<videosize arg="-s">640x360</videosize>
<videoframerate arg="-r">25</videoframerate>
<videogop arg="-g">90</videogop>
<audiobitrate arg="-ab">96k</audiobitrate>
<audiocodec arg="-acodec">libfaac</audiocodec>
<audiochannels arg="-ac">2</audiochannels>
<audiorate arg="-ar">22050</audiorate>
</enodingparam>
</profile>
</profiles>Modified the pl script to
use warnings;
use strict;
use Data::Dumper;
use XML::LibXML;
my $filename = "xml/book.xml";
my $parser = XML::LibXML->new;
my @ffmpegargs;
my $fileName="filename";
my $doc = $parser->parse_file($filename)
or die "can't parse profile file: $@";
my $root = $doc->documentElement();
my @paramList = $doc->getElementsByTagName('enodingParam');
for my $ele (@paramList)
{
# You then need to iterate over all the children of that node...
for my $param ($ele->nonBlankChildNodes())
{
my $inparams = " " . $param->getAttribute('arg') . " " . $param->textContent ;
push ( @ffmpegargs, $inparams);
}
my $ffmpeg = join(" ", @ffmpegargs);
print "ffmpeg" . $ffmpeg, "\n";
}It is printing out correctly. Now how do i add the following to the string
$filename , profileName, containerName (from the metadat node) to the same string so that my final output looks like :ffmpeg -vcodec libx264 -vpre slow -b 1200k -w 640 -h 360 -s 640x360 filename_profileName_containerName
ok tried zooming ue to profile. Not sure how to traverse the child nodes. Tried this. But its nor printing the right values
use warnings;
use strict;
use Data::Dumper;
use XML::LibXML;
my $filename = "xml/book.xml";
my $parser = XML::LibXML->new;
my @ffmpegargs;
my $fileName="filename";
my $doc = $parser->parse_file($filename)
or die "can't parse profile file: $@";
my $root = $doc->documentElement();
my @paramList = $doc->getElementsByTagName('profile');
for my $ele (@paramList)
{
# You then need to iterate over all the children of that node...
for my $param ($ele->findnodes('/encodingParam/*'))
{
my $inparams = " " . $param->getAttribute('arg') . " " . $param->textContent ;
push ( @ffmpegargs, $inparams);
}
my $ffmpeg = join(" ", @ffmpegargs);
print "ffmpeg" . $ffmpeg, "\n";
} -
Anomalie #3227 (Nouveau) : Bug date de publication
11 juin 2014, par Eric CamusSPIP 3.0.16 standard de base (pas de plugins ajouté).
Si on change à la main (dans le champ) la date de publication en en donnant une erroné ex : 11/06/0014 (erreur sur le 2 de 2014).
La date une fois validé affiche l’année 14 au lieu de 2014 mais c’est presque normal, la date affiché sur la page "accueil" est 1-1-1970 !! et l’article est toujours en première position.Par contre le paramètre "derniere_modif" et uniquement lui dans la base "spip_meta" change à chaque hit sur le site public. Il me semble que cela dé-valide le cache de façon permanente non ?
-
Anomalie #3227 : Bug date de publication
13 juin 2014Je confirme un bug sur la date. En base, 00XX-12-12 12:12 est enregistré 90XX-12-12 12:12
En php 5.2.6 (spip 3.0.16) : la date est indiquée 1er janvier 1970 dans le privé et le public. L’article est classé comme le plus récent et il est visible dans le privé et le public mais là le bouton Admin "Prévisualiser" s’affiche.
En php 5.4.4 (spip 3.0.16 et spip 3.1-dev) : la date indiquée est XX dans le privé et l’article est mis en post-publication. Dans le public, en mode préview, la date est OK mais l’article n’est (logiquement) pas publié.