
Recherche avancée
Médias (2)
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Podcasting Legal guide
16 mai 2011, par
Mis à jour : Mai 2011
Langue : English
Type : Texte
Autres articles (79)
-
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 -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...)
Sur d’autres sites (7548)
-
Live streaming dash content using mp4box
15 mai 2017, par galbarmI’m trying to live stream H.264 content to HTML5 using the media source extensions API.
The following method works pretty well :
ffmpeg -i rtsp://10.50.1.29/media/video1 -vcodec copy -f mp4 -reset_timestamps 1 -movflags frag_keyframe+empty_moov -loglevel quiet out.mp4
and then :
mp4box -dash 1000 -frag 1000 -frag-rap out.mp4
I can take the MP4Box output (
out_dashinit.mp4
) and send it through Web Sockets, chunk by chunk, to a JavaScript client that feeds it to the media source API.However, this is not a good method for live content.
What I’m trying to do now, is to create a single pipeline in order to do it in realtime and with the minimum possible latency.
With FFmpeg it’s possible to redirect the output tostdout
instead ofout.mp4
and grab the content.
I couldn’t figure out if it’s possible to combine MP4Box into the pipeline.- Can MP4Box take the input data from a source which is not a file ?
- Can MP4Box grab such a content progressively (either from a file or other source) while it is arriving in realtime ? i.e. wait a little if stream stops for 1 sec and resume automatically.
- Same question but for the output : can it output to something which is not a file (such as
stdout
) and can it do so progressively so that whenever output data is ready, I will be able to take it and transfer it to the web client, essentially generating a never-ending dashed MP4.
-
How to pipe rgba data using Node.js to ffmpeg ?
7 juillet 2015, par SwothContext
I am developing a small programm that is supposed to render a video, as fast as possible, based on frames captured from a canvas. The animation is rendered to a headless canvas implementation using Rekapi (JavaScript animation framework). The headless canvas is a Node.js module called node-canvas by Automattic. The animation frames are rendered one after another, after each rendering the frame is retrieved using canvas.getImageData().data (Uint8ClampedArray - rgba, faster than canvas.toDataUrl) and put into an array. Every frame is supposed to be send to ffmpeg to create a video.Rekapi -> canvas -> getImageData -> array -> ffmpeg
Problem
Everything except the transfer of stored rgba-array-data to ffmpeg works. I don’t seem to manage the transport using Node.js. How do I pass my frames to ffmpeg using Node.js and what did I do wrong ?What I do
The code below renders and saves each frame as rgba data to an array. The renderScene-function renders each animation frame.console.log("Rendering getImageData, length:"+ videoLength);
var dataArray = [];
function imageDataCallback() {
dataArray.push(context.getImageData(0, 0, 1280, 720).data);
}
rekapi.on('afterUpdate', imageDataCallback);
var time = Date.now();
renderScene(rekapi);
console.log('Time used: ' + (Date.now() - time) + 'ms;');
rekapi.off('afterUpdate', imageDataCallback);I already tried various possibilities to pipe that data to ffmpeg. In general I created a child process in Node.js executing ffmpeg :
var spawn = require('child_process').spawn;
var child = spawn('ffmpeg', [
'-pix_fmt', 'rgba',
'-s','1280x720',
'-r', 25,
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-i', '-', // read frames from stdin
'-threads', 0, // use all cores
'test.mpg']);I also tried using
-i pipe:0
, which is the same as -i -, just to be sure.
After process creation i registered for various events to know what happens :child.on('error', function(error){
console.log(error);
});
child.stdin.on('data', function (data) {
console.log('data retrieved')
});
child.on('exit', function (code) {
console.log('child exit with code:' + code)
});Now I write my array data to the child’s stdin :
for(var i = 0; i < dataArray.length; ++i){
var buffer = new Buffer(dataArray[i]);
child.stdin.write(buffer);
console.log('wrote: ' + i);
}I wrote 25 frames this way. The console displays the following :
wrote: 24
wrote: 25
events.js:85
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at exports._errnoException (util.js:746:11)
at Pipe.onread (net.js:559:26)ffmpeg generated a 0 byte test.mpg and as it seems no definded child-callback (like data) except error has been called. I am not 100% sure about the lifecycle but, as I understood, data should be called each time I write something.
I am very new to Node.js, thus I might not understand the big picture of it’s child processes.
Since my reputation is too low I am not allowed to post more than 2 links (first question) and I don’t feel comfortable using non-typed languages like JavaScript.
-
lavfi/vaapi : Fix build with libva 2.1 and 2.2
7 juin 2019, par Mark Thompson