
Recherche avancée
Médias (29)
-
#7 Ambience
16 octobre 2011, par
Mis à jour : Juin 2015
Langue : English
Type : Audio
-
#6 Teaser Music
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#5 End Title
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
Autres articles (67)
-
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (6972)
-
Meteor Spawn_Child_Process for FFMpeg [duplicate]
2 mars 2013, par user2009114Hi I am trying to use Meteor and javascript (Node) to spawn an ffmpeg transcoding event and then stream it live through HTML5 video tags. However, though I can get it working with node.js it seems to hang on the Meteor server and not stream anything though it does seem to be transcoding okay. It appears that the transcoding thread hangs up the server, or is not even a different thread at all ? I am pasting the relevant server side code followed by the client code calling it. One JQuery function calls the transcoding process and the PollForPlaylist is called from the video tags by the hls/. Any help would be much appreciated in solving this. I am wondering if there is a meteor function which I can call to spawn a thread for the ffmpeg function ? Or maybe there is another way to push data to the video tag through jQuery ?
var spawnNewProcess = function(file, playlistPath) {
var outputUrlPrefix = '/segment/';
var args = ['-i', file, '-async', '1', '-acodec', 'libmp3lame', '-b:a', 128 + 'k', '-vf', 'scale=min(' + targetWidth + '\\, iw):-1', '-b:v', videoBitrate + 'k', '-ar', '44100', '-ac', '2', '-vcodec', 'libx264', '-x264opts', 'level=3.0', '-profile:v', 'baseline', '-preset:v' ,'superfast', '-threads', '0', '-flags', '-global_header', '-map', '0', '-f', 'segment', '-segment_time', '10', '-segment_list', 'stream.m3u8', '-segment_format', 'mpegts', '-segment_list_flags', 'live', 'stream%05d.ts'];
var encoderChild = childProcess.spawn(transcoderPath, args, {cwd: outputPath});
console.log(transcoderPath + args);
encoderProcesses[file] = encoderChild;
currentFile = file;
console.log('Spawned transcoder instance');
if (debug) {
encoderChild.stderr.on('data', function(data) {
console.log(data.toString());
});
}
encoderChild.on('exit', function(code) {
console.log('Transcoder exited with code ' + code);
delete encoderProcesses[file];
});
// Kill any "zombie" processes
setTimeout(function() {
if (encoderProcesses[file]) {
console.log('Killing long running process');
killProcess(encoderProcesses[file]);
}
}, processCleanupTimeout);
};
var pollForPlaylist = function(file, response) {
var numTries = 0;
console.log("IN POLL FOR PLAYLIST");
var tryOpenFile = function() {
if (numTries > 20) {
console.log('Gave up trying to open m3u8 file');
response.writeHead(500);
response.end();
}
else {
console.log("IN ELSE");
fs.readFile(playlistPath, function (err, data) {
console.log("Trying to read file");
if (err || data.length === 0) {
numTries++;
setTimeout(tryOpenFile, 200);
console.log("ERROR, number of tries", numTries);
}
else {
if (!debug) {
response.setHeader('Content-Type', 'application/x-mpegURL');
}
console.log('response: ' + data);
response.write(data);
response.end();
}
});
}
};
console.log("Try open");
tryOpenFile();
};
var killProcess = function(processToKill, callback) {
processToKill.kill();
setTimeout(function() {
processToKill.kill('SIGKILL');
}, 5000);
processToKill.on('exit', function(code) {
if (callback) callback();
});
}
var handlePlaylistRequest = function(file, request, response) {
if (!file) {
request.writeHead(400);
request.end();
}
if (lock) {
console.log('Ongoing spawn process not finished, denying request');
response.writeHead(503);
response.end();
return;
}
file = path.join('/', file); // Remove ".." etc
file = path.join(rootPath, file);
console.log("PLAYLIST PATH", playlistPath);
if (currentFile != file) {
lock = true;
console.log('New file to encode chosen');
// Make sure old one gets killed
if (encoderProcesses[currentFile]) {
killProcess(encoderProcesses[currentFile], function() {
fs.unlink(playlistPath, function (err) {
spawnNewProcess(file, playlistPath, outputPath);
lock = false;
});
});
}
else {
fs.unlink(playlistPath, function (err) {
spawnNewProcess(file, playlistPath, outputPath);
lock = false;
});
}
currentFile = file;
}
};The Client side code which calls this is :
var videoNode = document.querySelector('video');
$.get('hls/?file='+file);
videoNode.src = "hls/" + file; -
Anomalie #3362 (Nouveau) : Erreur de syntaxe CSS du style embarqué
9 décembre 2014, par Fred BarboteuLigne 139 dans ajaxCallback.js (SPIP 3.0.14) :
...
...
Il manque les "px" sur left et top : provoque l’affichage d’une erreur CSS, et l’absence d’effet du positionnement souhaité. -
Anomalie #3420 : ajaxCallback.js + les styles de la balise p
10 avril 2015, par b bcette balise est visible et crée une marge blanche en bas de page
Ha, pas chez moi sous FF 37.0.1 et Chromium 41.0.2272.76. Sous quel navigateur observes-tu le problème ?
Par contre, il me semble tout de même nécessaire de spécifier une unité pour les valeur de left et top (l’inspecteur de chromium me signale que 5000 est une valeur invalide).