
Recherche avancée
Autres articles (36)
-
Encodage et transformation en formats lisibles sur Internet
10 avril 2011MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...) -
Monitoring de fermes de MediaSPIP (et de SPIP tant qu’à faire)
31 mai 2013, parLorsque l’on gère plusieurs (voir plusieurs dizaines) de MediaSPIP sur la même installation, il peut être très pratique d’obtenir d’un coup d’oeil certaines informations.
Cet article a pour but de documenter les scripts de monitoring Munin développés avec l’aide d’Infini.
Ces scripts sont installés automatiquement par le script d’installation automatique si une installation de munin est détectée.
Description des scripts
Trois scripts Munin ont été développés :
1. mediaspip_medias
Un script de (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (6188)
-
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é.