
Recherche avancée
Médias (3)
-
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
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (50)
-
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
-
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 (...) -
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 (...)
Sur d’autres sites (10621)
-
Getting error "WebAssembly.Memory() : could not allocate memory" when running ffmpeg.wasm on android chrome browser
27 juin 2022, par Ravi KunduError in detail :


WebAssembly.Memory(): could not allocate memory
at https://*******/ffmpeg-core.js:22:82
at https://*******/ffmpeg.min.js:1:6506
at f (https://*******/ffmpeg.min.js:1:11322)
at Generator._invoke (https://*******/ffmpeg.min.js:1:11110)
at Generator.next (https://*******/ffmpeg.min.js:1:11747)
at i (https://*******/ffmpeg.min.js:1:4295)
at c (https://*******/ffmpeg.min.js:1:4498)



Code for ffmpeg :


const downloadWithFFMPEG = async () =>{
 const sourceBuffer = await fetch(recordingURL).then(r => r.arrayBuffer());
 await ffmpeg.load();
 await ffmpeg.FS(
 "writeFile",
 "input.webm",
 new Uint8Array(sourceBuffer, 0, sourceBuffer.byteLength)
 );
 await ffmpeg.run("-i", "input.webm", "-c", "copy", "output.mp4")
 const output = ffmpeg.FS("readFile", "output.mp4");
 var link = document.createElement('a')
 link.href = URL.createObjectURL(new Blob([output.buffer], { type: 'video/mp4;codecs=H264' }));
 link.download = this.data;
 link.click();
 recording = false;
}



Brief about problem :
The error only comes for android chrome browser. The same code works fine on pc/laptop chrome.
Have also enabled Webassembly-thread on chrome ://flags for android browser as someone suggested me to do it but still same error. Can someone help me ?


-
Using ffmpeg to "re-time" an RTSP stream ?
29 mars 2021, par Tom SI recently set up a birdbox in my garden, and have been using a cheapie camera that I bought, along with ffmpeg on a raspberry pi to stream from the camera to YouTube.


But YouTube keeps telling me that I am sending data too fast - multiple seconds of video per second, and at that point the stream seems to stall and I just get a buffering spinner on YouTube and have to restart ffmpeg to restore the stream.


This is happening very frequently, infact even more frequently now than when I originally got everything up and running for some reason... So much so that Ive had to setup ffmpeg to run as a service, and restart it once an hour via cron. But even this is not enough and now it seems that it can go bonkers within 10-15 minutes of a restart - almost like the more often I restart the quicker it gets...


I dont know where the issue is, or how to find it (does ffmpeg simply restream "verbatim" what ever the camera supplies ?), but I wonder if it might be possible to have ffmpeg re-time the stream so that I only send to YouTube the 25fps that it is happy with (i.e. dropping any frames in excess of this) ?


I have key frames set to 1 second on the camera.


Thanks !



Here is my service file which contains the command that I use to start ffmpeg :


[Unit]
Description=BirbCam 1 streaming service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
# Uncomment one ExecStart line below, then run `sudo systemctl daemon-reload` before restart
# With audio
ExecStart=/usr/local/bin/ffmpeg -rtsp_transport tcp -i rtsp://172.25.144.35:554/user=admin&password=&channel=1&stream=0.sdp?real_stream -tune zerolatency -vcodec libx264 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx-xxxx

# Without audio
# ExecStart=/usr/local/bin/ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i rtsp://172.25.144.35:554/user=admin&password=&channel=1&stream=0.sdp?real_stream -tune zerolatency -vcodec libx264 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx-xxxx

[Install]
WantedBy=multi-user.target



-
typeError when using ffmpeg with buffer in NodeJS ["argument must be of type string or an instance of Buffer"]
16 mars 2021, par coolps811I am trying to covert buffer data into the correct mp4 video format. However I am getting an error : "UnhandledPromiseRejectionWarning : TypeError [ERR_INVALID_ARG_TYPE] : The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of FfmpegCommand". How can I fix this ?


router.post("/download", (req, res, next) => {
 axios({
 method: "get",
 url: req.body.url,
 responseType: "arraybuffer",
 }).then(function (response) {
 const data = new Uint8Array(Buffer.from(response.data));

 const proc = new ffmpeg(data)
 .videoCodec("libx264")
 .outputOptions(["-movflags isml+frag_keyframe"])
 .toFormat("mp4")
 //.seekInput(offset) this is a problem with piping
 .on("error", function (err, stdout, stderr) {
 console.log("an error happened: " + err.message);
 console.log("ffmpeg stdout: " + stdout);
 console.log("ffmpeg stderr: " + stderr);
 })
 .on("end", function () {
 console.log("Processing finished !");
 })
 .on("progress", function (progress) {
 console.log("Processing: " + progress.percent + "% done");
 });

 fs.writeFile("Assets/test.mp4", proc, callback);
 });

 const callback = (err) => {
 if (err) throw err;
 console.log("It's saved!");
 };
});