
Recherche avancée
Médias (1)
-
The Slip - Artworks
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (56)
-
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...) -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users. -
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)
Sur d’autres sites (5093)
-
Re-encode mp4 files to working hls (m3u8) segment files
6 août 2022, par gameboysMy issue is that I need to create a hls playlist with all the segments being below 8 MB. At first, I generated all the segments and then checked if they were all under 8MB and if not rerun with a lower
-hls_time
but this could take a long period of time with high-quality videos. Then after some research realized that FFmpeg seems not to natively support file size limiting segments. I found this answer on splitting up mp4 video so that they are all under a certain length, but now I can't get them working in an actual m3u8 file.

If I keep them as an mp4 file I get this from vlc :


no moov before mdat and the stream is not seekable



I attempted to fix it by running
-movflags faststart
But then I get this from mpv (I read that vlc might have some issues with hls playlists)

[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: Found duplicated MOOV Atom. Skipped it



After this, I attempted to switch the mp4 splitter script to outputting .ts files but this just caused even more issues. It turns out that hls playlists require precise timestamps in each segment of a ts file otherwise it just start jumping around the video. Theses are the errors that mpv put in terminal


ffmpeg/demuxer] mpegts: Packet corrupt (stream = 0, dts = 1194750).
[ffmpeg/demuxer] mpegts: DTS 127271 < 1194750 out of order 
[ffmpeg/demuxer] hls: DTS 127271 < 1194750 out of order 
AV: 00:00:11 / 00:10:29 (1%) A-V: 0.000
Invalid audio PTS: 11.911837 -> 0.000000
Reset playback due to audio timestamp reset.
(...) AV: 00:00:00 / 00:10:29 (0%) A-V: 0.000
Invalid video timestamp: 11.875000 -> 0.014122
AV: 00:00:11 / 00:10:29 (1%) A-V: 0.000

Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).



So I attempted to write a script to fix these issues by adding the timestamps back in :


def get_length(filename): //https://stackoverflow.com/questions/3844430/how-to-get-the-duration-of-a-video-in-python

 result = subprocess.run(["ffprobe", "-v", "error", "-show_entries",
 "format=duration", "-of",
 "default=noprint_wrappers=1:nokey=1", filename],
 stdout=subprocess.PIPE,
 stderr=subprocess.STDOUT)
 return float(result.stdout)
dirr = 0
for fi in sorted(os.listdir('out'), key=lambda k: int(k.split(".")[0]) if not ".m3u8" in k else 0):
 if fi.endswith(".ts"):
 fn = os.path.join("out", fi)
 ln = get_length(fn)
 print(dirr, fn)
 os.system(f"ffmpeg -i {fn} -muxdelay {dirr} tmp.ts ; mv tmp.ts {fn}")
 dirr+=ln



But somehow this still didn't work and mpv would report that the timestamps were different then what I gave them.


Invalid audio PTS: 11.911837 -> 23.833333
Reset playback due to audio timestamp reset.
(...) AV: 00:00:00 / 00:10:29 (0%) A-V: 0.000
Invalid video timestamp: 11.885911 -> 23.844244



If anybody knows how to Re-encode the mp4 files which are limited in file size please help me out, at this point, it appears that it may well be impossible.


In case it somehow matters I was using this video for testing.


-
Splitting more then once with a library
12 mai 2017, par FearhunterI am doing a research for split video’s in four files for example. I was looking at this repository on github.
https://github.com/vdaubry/html5-video-splitter
It’s a very nice repo how to split a video. My question is : how can I split more files then only one cut ? When I split for the second time it will overwrite the previous one. Here is the open source code of the splitting :
var childProcess = require("child_process");
childProcess.spawn = require('cross-spawn');
var http = require('http');
var path = require("path");
var fs = require("fs");
var exec = require('child_process').exec;
http.createServer(function (req, res) {
if (req.method === 'OPTIONS') {
console.log('!OPTIONS');
var headers = {};
headers["Access-Control-Allow-Origin"] = "*";
headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
headers["Access-Control-Allow-Credentials"] = false;
headers["Access-Control-Max-Age"] = '86400';
headers["Access-Control-Allow-Headers"] = "X-reqed-With, X-HTTP-Method-Override, Content-Type, Accept";
res.writeHead(200, headers);
res.end();
}
else if (req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
var data = JSON.parse(body);
var localPath = __dirname;
var inputFilePath = localPath+"/videos/"+data.inputFilePath;
var outputFilePath = localPath+"/videos/output-"+data.inputFilePath
var start = data.begin;
var end = data.end;
var command = "ffmpeg -y -ss "+start+" -t "+(end-start)+" -i "+inputFilePath+" -vcodec copy -acodec copy "+outputFilePath;
exec(command, function(error, stdout, stderr) {
var msg = ""
if(error) {
console.log(error);
msg = error.toString();
res.writeHead(500, {'Content-Type': 'text/plain'});
}
else {
console.log(stdout);
res.writeHead(200, {'Content-Type': 'text/plain'});
}
res.end(msg);
});
});
}
else if (req.method == 'GET') {
var filename = "index.html";
if(req.url != "/") {
filename = req.url
}
var ext = path.extname(filename);
var localPath = __dirname;
var validExtensions = {
".html" : "text/html",
".js": "application/javascript",
".css": "text/css",
".txt": "text/plain",
".jpg": "image/jpeg",
".gif": "image/gif",
".png": "image/png",
".ico": "image/x-icon"
};
var mimeType = validExtensions[ext];
if (mimeType) {
localPath += "/interface/"+filename;
fs.exists(localPath, function(exists) {
if(exists) {
console.log("Serving file: " + localPath);
getFile(localPath, res, mimeType);
} else {
console.log("File not found: " + localPath);
res.writeHead(404);
res.end();
}
});
} else {
console.log("Invalid file extension detected: " + ext)
}
}
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
function getFile(localPath, res, mimeType) {
fs.readFile(localPath, function(err, contents) {
if(!err) {
res.setHeader("Content-Length", contents.length);
res.setHeader("Content-Type", mimeType);
res.statusCode = 200;
res.end(contents);
} else {
res.writeHead(500);
res.end();
}
});
}I have installed FFMPEG also to do this.
Kind regards
-
Multimedia Exploration Journal : The Past Doesn’t Die
12 juillet 2011, par Multimedia Mike — Game HackingNew haul of games, new (old) multimedia formats.
Lords of Midnight
Check out the box copy scan for Lords of Midnight in MobyGames. In particular, I’d like to call your attention to this little blurb :
Ahem, "Journey through an immense world — the equivalent of 8 CD-ROMs." Yet, when I procured the game, it only came on a single CD-ROM. It’s definitely a CD-ROM (says so on the disc) and, coming from 1995, certainly predates the earliest DVD-ROMs (which can easily store 8 CD-ROMs on a disc). Thus, I wanted to jump in a see if they were using some phenomenal compression in order to squeeze so much info into 600 or so megabytes.
I was surprised to see the contents of the disc clocking in at just under 40 megabytes. An intro movie and an outro movie account for 75% of that. Format ? None other than that curious ASCII anomaly, ARMovie/RPL with Escape 122 codec data.
Cyclemania
Cyclemania is one of those FMV backdrop action games, but with a motorcycle theme. I had a good feeling I would find some odd multimedia artifacts here and the game didn’t disappoint. The videos are apparently handled using 3-4 discrete files per animation. I’ve documented my cursory guesses and linked some samples at the new MultimediaWiki page.
Interplay ACMP
This is unrelated to this particular acquistion, but I was contacted today about audio files harvested from the 1993 DOS game Star Trek : Judgment Rites. The files begin with the ASCII signature "Interplay ACMP Data". This reminds me of Interplay MVE files which begin with the similar string "Interplay MVE File". My theory is that these files use the ACOMP compression format, though I’m still trying to make it fit.Wiki and samples are available as usual if you’d like to add your own research.