
Recherche avancée
Médias (2)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (53)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (10935)
-
avfilter/f_ebur128 : add all sample rates support
4 mars 2021, par Paul B Maholavfilter/f_ebur128 : add all sample rates support
The magic constants come from the unofficial "ITU-R BS.1770-1 filter
specifications"¹ by Raiden (libebur128) which relies on "Parameter
Quantization in Direct-Form Recursive Audio Filters"² by Brian
Neunaber.The constants seem to include a quantization bias, for example :
Vb is supposed to be exactly √Vh in a high shelf filter
the Pre-filter Gain should likely be 4dB
Pre Q and RLB Q are respectively very close to √½ and ½
Those are not adjusted to prevent the values from drifting away from
the official specifications.An alternative to this approach would be to requantize on the fly as
proposed by pbelkner³, where the 48kHz code path would use the exact
specifications constants while derivating constants for other
frequencies.[1] : https://www.scribd.com/document/49991813/ITU-R-BS-1770-1-filters
[2] : https://www.scribd.com/document/6531763/Direct-Form-Filter-Parameter-Quantization
[3] : https://hydrogenaud.io/index.php?topic=86116.msg740092#msg740092 -
mp4 Vj Animation video lagging hi res video
21 février 2020, par Ryan StoneI am trying to get a video to play inside a video tag at the top left hand corner of my page, it loads ok, the resolution is good and it seems to be looping but it is lagging very much, definatly not achieving 60fps it is in mp4 format and the resolution on the original mp4 is 1920x1080 it is a hi resolution vj free loop called GlassVein, you can see it if you search on youtube. On right clicking properties it comes up with the following inforamtion ;
Bitrate:127kbs
Data rate:11270kbps
Total bitrate:11398kbs
Audio sample rate is : 44khz
filetype is:VLC media file(.mp4)
(but i do not want or need the audio)& it also says 30fps, but I’m not sure i believe this as it runs smooth as butter on vlc media player no lagging, just smooth loop animation
I have searched on :https://trac.ffmpeg.org/wiki/Encode/AAC for encoding information but it is complete gobbldygook to me, I don’t understand a word its saying
My code is so far as follows ;
<video src="GlassVeinColorful.mp4" autoplay="1" preload="auto" class="Vid" width="640" height="360" loop="1" viewport="" faststart="faststart" mpeg4="mpeg4" 320x240="320x240" 1080="1080" 128k="128k">
</video>Does anyone know why this is lagging so much, or what I could do about it.
it is a quality animation and I don’t really want to loose an of its resolution or crispness.. the -s section was originally set to 1920x1080 as this is what the original file is but i have changed it to try and render it quicker...Any helpful sites, articles or answers would be great..
2020 Update
The Solution to this problem was to convert the Video to WebM, then use Javascript & a Html5 Canvas Element to render the Video to the page instead of using the video tag to embed the video.
Html
<section>
<video src="Imgs/Vid/PurpGlassVein.webm" type="video/webm" width="684" height="auto" muted="muted" loop="loop" autoplay="autoplay">
<source>
<source>
<source>
</source></source></source></video>
<canvas style="filter:opacity(0);"></canvas>
</section>Css
video{
display:none !important;
visibility:hidden;
}Javascript
const Canv = document.querySelector("canvas");
const Video = document.querySelector("video");
const Ctx = Canv.getContext("2d");
Video.addEventListener('play',()=>{
function step() {
Ctx.drawImage(Video, 0, 0, Canv.width, Canv.height)
requestAnimationFrame(step)
}
requestAnimationFrame(step);
})
Canv.animate({
filter: ['opacity(0) blur(5.28px)','opacity(1) blur(8.20px)']
},{
duration: 7288,
fill: 'forwards',
easing: 'ease-in',
iterations: 1,
delay: 728
})I’ve Also Used the Vanilla Javascript .animate() API to fade the element into the page when the page loads. But one Caveat is that both the Canvas and the off-screen Video Tag must match the original videos resolution otherwise it starts to lag again, however you can use Css to scale it down via transform:scale(0.5) ; which doesn’t seem to effect performance at all.
runs smooth as butter, and doesn’t loose any of the high resolution image.
Added a slight blur0.34px
onto it aswell to smooth it even more.Possibly could of still used ffmpeg to get a better[Smaller File Size] WebM Output file but thats something I’ll have to look into at a later date.
-
How do I stop ffmpeg from spamming itself when I auto restart ?
15 décembre 2019, par billy61300const fs = require("fs");
const express = require("express");
const app = express();
const path = require("path");
const ffmpeg = require("fluent-ffmpeg");
const md5 = require("md5");
const readline = require("readline");
const formidable = require("formidable");
const dir = "Custom/Dir";
const thumb = __dirname + "/thumb";
const ph = __dirname + "/placeholder";
app.use("/serve", express.static(dir));
app.use("/thumb", express.static(thumb));
app.use("/ph", express.static(ph));
const list = [];
const listThumb = [];
process.on("uncaughtException", (err) => {
console.log("Caught Exception: " + err);
});
let passwords = fs.readFileSync("passwords.txt").toString().split("\n");
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html")
});
app.get("/upload", (req, res) => {
res.sendFile(__dirname + "/upload.html");
});
app.post("/uploadFile", (req, res) => {
let form = new formidable.IncomingForm();
form.parse(req, (err, fields, files) => {
if (passwords.includes(md5(fields.password))) {
fs.readFile(files.filetoupload.path, (err, data) => {
let newPath = dir + "/" + files.filetoupload.name;
if (!fs.existsSync(newPath)) {
fs.writeFile(newPath, data, (err) => {
res.writeHead(200, {"Content-Type": "text/html"});
res.write("<h1>File Uploaded</h1>");
res.end();
});
} else {
res.writeHead(200, {"Content-Type": "text/html"});
res.write("<h1>File already exists. Upload with a different name please.</h1>");
res.end();
}
});
}
});
});
fs.readdir(dir, (err, files) => {
if (err) {
throw err;
} else {
let i = 0;
files.forEach((file) => {
list[i] = path.basename(file);
if (!fs.existsSync(__dirname + "\\thumb\\" + list[i] + ".png")) {
console.log("Generating: " + list[i] + ".png");
let proc = new ffmpeg({source: dir + "/" + file, nolog: true});
proc.setFfmpegPath(__dirname + "\\ffmpeg.exe");
proc.screenshots({
timestamps: [0.0],
filename: list[i] + ".png",
folder: __dirname + "\\thumb\\",
size: "100x100"
});
}
i++;
});
let serveDoc = "";
for (let j = 0; j < list.length; j++) {
if (path.extname(list[j]).toLowerCase() !== ".jpg" && path.extname(list[j]).toLowerCase() !== ".jpeg" && path.extname(list[j]).toLowerCase() !== ".png") {
if (path.extname(list[j]).toLowerCase() == ".mp3" || path.extname(list[j]).toLowerCase() == ".wav") {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" />" + "</a> ";;
}/* else if (path.extname(list[j]).toLowerCase() == ".webm") {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" />" + "</a> ";;
}*/ else {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" + list[j] + ".png" />" + "</a> ";
}
} else {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" + list[j] + "" />" + "</a> ";
}
}
serveDoc += "";
fs.writeFile("index.html", serveDoc, (err) => {
if (err) throw err;
});
}
});
setTimeout(() => {
process.exit(0);
}, 1000 * 60 * 30);
app.listen(80, (err) => {
if (err) {
throw err;
} else {
console.log("Listening on port 80.");
}
});Issue is that the program needs to be restarted every X minutes so that the list of media will update on it’s own. However, upon a restart, ffmpeg goes crazy and starts to spam a batch window under it’s name repeatedly over and over again without stopping. The only way out of it is to restart my computer.
I’ve tried to use PM2, Forever, Supervisor. Nodemon afaik won’t auto restart.