
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 (80)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (12065)
-
PHP Create video thumbnail with FFMPEG - returns error code 1
27 février 2013, par LightI am trying to create a video thumbnail with FFMPEG using the following script.
However I am getting return value of 1. What does it mean ? What is error code 1 ? I have Googled it and didn't find and answer. Thanks.
Here is the code :<?php
//thumb path should be added in the below code
//test for thumb
$dir_img='uploads/';
$mediapath='thumb.jpg';
$file_thumb=create_movie_thumb('test.mp4',$mediapath,$mediaid);
$name_file=explode(".",$mediapath);
$imgname="thumb_".$name_file[0].".jpg";
/*
Function to create video thumbnail using ffmpeg
*/
function create_movie_thumb($src_file,$mediapath,$mediaid)
{
global $CONFIG, $ERROR;
$CONFIG['ffmpeg_path'] = '/usr/bin/'; // Change the path according to your server.
$dir_img='uploads/';
$CONFIG['fullpath'] = $dir_img."thumbs/";
$src_file = $src_file;
$name_file=explode(".",$mediapath);
$imgname="thumb_".$name_file[0].".jpg";
$dest_file = $CONFIG['fullpath'].$imgname;
if (preg_match("#[A-Z]:|\\\\#Ai", __FILE__)) {
// get the basedir, remove '/include'
$cur_dir = substr(dirname(__FILE__), 0, -8);
$src_file = '"' . $cur_dir . '\\' . strtr($src_file, '/', '\\') . '"';
$ff_dest_file = '"' . $cur_dir . '\\' . strtr($dest_file, '/', '\\') . '"';
} else {
$src_file = escapeshellarg($src_file);
$ff_dest_file = escapeshellarg($dest_file);
}
$output = array();
if (eregi("win",$_ENV['OS'])) {
// Command to create video thumb
$cmd = "\"".str_replace("\\","/", $CONFIG['ffmpeg_path'])."ffmpeg\" -i ".str_replace("\\","/" ,$src_file )." -an -ss 00:00:05 -r 1 -vframes 1 -y ".str_replace("\\","/" ,$ff_dest_file);
exec ("\"$cmd\"", $output, $retval);
echo "exec1";
} else {
// Command to create video thumb
$cmd = "{$CONFIG['ffmpeg_path']}ffmpeg -i $src_file -an -ss 00:00:05 -r 1 -vframes 1 -y $ff_dest_file";
exec ($cmd, $output, $retval);
echo "exec2";
}
if ($retval) {
$ERROR = "Error executing FFmpeg - Return value: $retval";
if ($CONFIG['debug_mode']) {
// Re-execute the command with the backtick operator in order to get all outputs
// will not work if safe mode is enabled
$output = `$cmd 2>&1`;
$ERROR .= "<br /><br /><div align="\"left\"">Cmd line : <br /><span style=""font-size:120%"">" . nl2br(htmlspecialchars($cmd)) . "</span></div>";
$ERROR .= "<br /><br /><div align="\"left\"">The ffmpeg program said:<br /><span style=""font-size:120%"">";
$ERROR .= nl2br(htmlspecialchars($output));
$ERROR .= "</span></div>";
}
echo $ERROR;
@unlink($dest_file);
return false;
}
$return = $dest_file;
//@chmod($return, octdec($CONFIG['default_file_mode'])); //silence the output in case chmod is disabled
return $return;
}
?> -
Shaka Player returns 4001 error - Node.js local web server playing MPEG-DASH
27 mai 2020, par salgarjiI've used Chrome inspection tool to access 'Console' and analyze what is happening. Complete error information :



D {severity: 2, category: 4, code: 4001, data: Array(1), handled: false}
category: 4
code: 4001
data: Array(1)
0: "http://localhost:8080/dash_segmentos/video.mpd"
length: 1
__proto__: Array(0)
handled: false
severity: 2
__proto__: Object




My
Server.js
file :


var http = require('http');
var fs = require('fs');

console.log(__dirname);

var path='dash_segmentos/video.mpd';
fs.access(path, fs.constants.R_OK | fs.constants.W_OK, (err) => {
 if (err) {
 console.log("%s doesn't exist", path);
 } else {
 console.log('can read/write %s', path);
 }
});

const PORT=8080; 

fs.readFile('./player.html', function (err, html) {

 if (err) throw err; 

 http.createServer(function(request, response) { 
 response.setHeader("Access-Control-Allow-Headers", "authorization, content-type");
 response.setHeader("Access-Control-Allow-Origin", "*");
 response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 response.writeHeader(200, {"Content-Type": "text/html"}); 
 response.write(html); 
 response.end();
 }).listen(PORT);
});




As you can see I've added CORS (I guess it's correct) and a console.log to see if it's in the proper location. Furthermore, I've verified that file is accessible with
fs.access
and it returnscan read/write dash_segmentos/video.mpd
For this reason, I'm sure I am in the correct path and referencing the right file.


The HTML code (
player.html
) provided toServer.js
:




 
 <code class="echappe-js"><script type="text/javascript"&#xA;src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/2.5.11/shaka-player.compiled.js"></script>

 
 

 



<script>&#xA;function initApp() { &#xA;shaka.polyfill.installAll(); &#xA;if (shaka.Player.isBrowserSupported()) { &#xA; initPlayer(); &#xA; } else { &#xA; console.error(&#x27;Browser not supported!&#x27;);&#xA; }}&#xA;&#xA;function initPlayer() { &#xA;var video = document.getElementById( &#x27;video&#x27; );&#xA;var player = new shaka.Player( video );&#xA; window.player = player; &#xA;player.addEventListener(&#x27;error&#x27;, onErrorEvent); &#xA;player.load(path).then(function (){&#xA; console.log(&#x27;Video loaded correctly&#x27;);&#xA; }).catch(onError);&#xA;&#xA;function onErrorEvent(event) {&#xA; onError(event.detail); &#xA; }&#xA;function onError(error) {&#xA; console.error(&#x27;Codigo de error: &#x27;, error.code, &#x27; en &#x27;, error);&#xA; }&#xA;}&#xA;</script>


<script>&#xA;var path=&#x27;dash_segmentos/video.mpd&#x27;;&#xA;//var path=&#x27;https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd&#x27;;&#xA;//the URL above is working! but it won&#x27;t read my local mpd&#xA;&#xA;document.addEventListener(&#x27;DOMContentLoaded&#x27;, initApp);&#xA;&#xA; </script>

 




I've tried changing the URL to an online resource and the player is properly working.



My fluent-ffmpeg command which generates the video is :



var ffmpeg = require('fluent-ffmpeg');

var grabacion = new ffmpeg();

grabacion.addInput('0')
.inputOptions(['-y -nostdin', '-f avfoundation', '-video_size 1280x720', '-framerate 30'])
.outputOptions(['-vcodec libx264', '-keyint_min 0', '-g 100', '-map 0:v', '-b:v 1000k', '-f dash',
 '-use_template 1', '-use_timeline 0', '-init_seg_name video0-$RepresentationID$-$Number$.mp4',
 '-media_seg_name video0-$RepresentationID$-$Number$.mp4','-single_file 0', '-remove_at_exit 0', '-window_size 20', '-seg_duration 4'])
.output('/path/to/files/dash_segmentos/video.mpd')
.run();




The mpd manifest file is :



<?xml version="1.0" encoding="utf-8"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT26.7S" maxsegmentduration="PT4.0S" minbuffertime="PT13.2S">
 <programinformation>
 </programinformation>
 <servicedescription>
 </servicedescription>
 <period start="PT0.0S">
 <adaptationset contenttype="video" startwithsap="1" segmentalignment="true" bitstreamswitching="true" framerate="30000/1001" maxwidth="1280" maxheight="720" par="16:9">
 <representation mimetype="video/mp4" codecs="avc1.7a001f" bandwidth="1000000" width="1280" height="720" sar="1:1">
 <segmenttemplate timescale="1000000" duration="4000000" initialization="video0-$RepresentationID$-$Number$.mp4" media="video0-$RepresentationID$-$Number$.mp4" startnumber="1">
 </segmenttemplate>
 </representation>
 </adaptationset>
 </period>
</mpd>




Is something about ffmpeg ? Permissions ? Pixel format ? Encoding ? I've tried with other mpd file provided by my Raspberry Pi using video4linux (v4l) and it returns the same error !



I know that's a lot of code, but maybe you find it quicker than me. I guess it's a Shaka Player thing with the XML, but I can't explain how ffmpeg is wrongly creating XML code.



Thank you in advance !!


-
Nomenclature #4626 : Renommer le menu "Squelettes"
3 mai 2021, par RastaPopoulos ♥Pfiou voilà, je suis allé voir chaque page de chacun des plugins qui s’insère actuellement pour faire le point !
Mise en page¶
- ACS : comme le noizetier, mise en page à partir de blocs
- Campagnes : pour la gestion de encarts à insérer ensuite dans la mise en page (ensuite dans chaque encart on gère les campagnes de bandeaux, mais le menu lui c’est pour aller à la gestion des encarts), pourrait éventuellement virer ailleurs en reformulant des choses
- Comments : config du mode de mise en page des commentaires (threads ou pas, etc)
- Compositions : liste les variantes de mise en page pour chaque type de contenu
- Eléments : de la mise en page sur les contenus (comme le noizetier, et n’a d’ailleurs plus trop d’intérêt depuis plusieurs années que le noizetier sait aussi configurer des blocs pour tel contenu précis, pas que en global)
- eva-web-bonus eva-web-habillage eva-web-install eva-web-mentions : configuration de la mise en page ou des styles du squelette Eva
- Kaye : pour configurer la mise en page du cahier de texte
- menu_langues_liens : configurer la manière d’afficher le changement de langue
- noizetier : mettre en page le site entier par petits blocs
- porte_plume_enluminures_typographiques : configure la mise en page des textes de contenus suivant les nouvelles syntaxes
- seminaire : configuration de mise en page je crois, mais sinon ça devrait aller juste dans SVP
- sociaux : configure quels liens et leur affichage
- spip_visuels : configurer les rôles de visuels (pourrait peut-être aller ailleurs, et surtout remplacé par Rôles de documents bien plus pérenne car basé sur les documents existants)
- squelettes_par_mots_cle : un peu un ancêtre de Compositions, mettre en page des contenus avec un autre squelette suivant un mot-clé
- switcher : très vieille contrib, configure si on affiche le switcher de squelette (donc de mise en page !), mais c’est juste une config globale une unique fois, donc pourrait parfaitement être dans SVP uniquementNavigation¶
- Court-circuit : change le comportement des liens pour certaines rubriques pour aller à un article interne directement
- exclure_secteur : masque des secteurs entiers, mais pourrait aller dans Publication, je crois, puisque ça dépublie par défaut littéralement des branches
- menus : créer et remplir les menus de navigationStyles et comportement d’affichage¶
- Adaptive images : taille des images, lazyload ou pas, styles des previews
- cloudzoom : un peu comme modalbox, configurer les images zoomables
- fontawesome5 : sert juste à voir les icones existantes
- forkawesome : pareil
- Links : configure le style des liens externes et comment les afficher quand on clique
- mediaspip_player : configurer l’apparence du lecteur
- picto : comme fontawesome, sert juste à voir les icones existantes
- player : choix du lecteur audio (conditionnant essentiellement son affichage)
- rainette : configure l’affichage de la zone météo
- recherche_mots_cles : pour configurer comment s’affiche (mais ce plugin n’est plus vraiment maintenu pour l’instant et cette page toujours en vieux exec PHP)
- refbase : configure la manière d’afficher les bibliographies
- sjcycle : configure l’affichage du carrousel
- slick : configure l’affichage du carrousel
- timecircles : configure l’affichage des timers
- tooltip : configure l’affichage des infobulles
- videos : configure l’affichage des vidéos (mais de nos jours on utilise plutôt oEmbed)
- w3css : configurer l’apparence graphique en choisissant le thème du frameworkÀ virer ailleurs¶
- champs_extras_synchronisation
- Chosen : devrait virer complètement et être juste dans SVP, ou à la limite dans Configuration : c’est un truc qu’on configure une unique fois en gros, ce n’est pas à retrouver en permanence
- comarquage : la dernière version du plugin ne s’insère plus donc sans objet
- dublin_core : il s’agit de SEO/indexation/meta infos dans les métas du site et c’est juste la page de config général du plugin : soit juste SVP soit Configurer (soit Publication ? trouver où regrouper tous les trucs SEO, métas infos ?)
- mathjax : aucun rapport ni squelette ni mise en page, c’est pour configurer comment le script JS est appelé CDN ou en local. En plus cette page ne devrait même pas exister, car CDN tierce on n’en veut pas normalement dans SPIP par défaut, le JS devrait toujours être interne au site
- select2 : exactement comme Chosen, n’a pas à être retrouvé en permanence dans les menus, ça se configure une fois à l’installation
- seo : trouver un autre endroit Publication ou Configuration, c’est de la méta information, voire juste SVP si c’est que la config générale à faire une fois
- skeleditor : menu Développement !
- xray : menu Développement !
- zinit : j’ai pas tout compris mais j’ai l’impression que c’est pour aider les intégrateurices donc du dev donc Développement
- xiti : statistiques, mais si config globale une unique fois : dans SVP uniquement, à la limite dans Configuration