
Recherche avancée
Autres articles (72)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)
Sur d’autres sites (6587)
-
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; -
Save Gstreamer stream at Windows side [closed]
18 février 2013, par user1336117I am streaming video from webcam from linux via gstreamer as below :
gst-launch -v v4l2src device=/dev/video0 ! videorate ! video/x-raw-yuv, width=320, height=240, framerate=5/1 ! videobalance saturation=0.0 ! jpegenc ! multipartmux ! tcpserversink host=192.168.10.24 port=5000
I can see the stream via VLC
tcp://192.168.10.67:5000
As the next step I want to save it as a video file but I could not succeeded.
I tried to setup gstreamer to windows but it did not worked.
I tried to save the stream by using ffmpeg on windows side but it did not worked.ffmpeg -i tcp://192.168.10.67:5000 -map 0 deneme.flv
What should I do to be able to save the stream on windows side ?
-
What kind of stream GStreamer produce ?
16 novembre 2014, par MaxI use following 2 commands to stream video from Raspberry Pi
RaPi
raspivid -t 999999 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=$RA-IP-ADDR port=5000
Linux Box
gst-launch-1.0 -v tcpclientsrc host=$RA-IP-ADDR port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
But what kind of stream is it ? Can I read it with OpenCV ? or convert with
avconv|ffmpeg
nc $RA-IP-ADDR 5000 | avconv
? or watch with VLC ?