
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (106)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Les sons
15 mai 2013, par
Sur d’autres sites (11588)
-
Revision 33026 : Ajout des classes mots, breves, auteurs ... dans les extras
17 novembre 2009, par shnoulle@… — LogAjout des classes mots, breves, auteurs ... dans les extras
-
avcodec/pngdec : Fix APNG_DISPOSE_OP_BACKGROUND
20 août 2022, par Andreas Rheinhardtavcodec/pngdec : Fix APNG_DISPOSE_OP_BACKGROUND
APNG works with a single reference frame and an output frame.
According to the spec, decoding APNG works by decoding
the current IDAT/fdAT chunks (which decodes to a rectangular
subregion of the whole image region), followed by either
overwriting the region of the output frame with the newly
decoded data or by blending the newly decoded data with
the data from the reference frame onto the current subregion
of the output frame. The remainder of the output frame
is just copied from the reference frame.
Then the reference frame might be left untouched
(APNG_DISPOSE_OP_PREVIOUS), it might be replaced by the output
frame (APNG_DISPOSE_OP_NONE) or the rectangular subregion
corresponding to the just decoded frame has to be reset
to black (APNG_DISPOSE_OP_BACKGROUND).The latter case is not handled correctly by our decoder :
It only performs resetting the rectangle in the reference frame
when decoding the next frame ; and since commit
b593abda6c642cb0c3959752dd235c2faf66837f it does not reset
the reference frame permanently, but only temporarily (i.e.
it only affects decoding the frame after the frame with
APNG_DISPOSE_OP_BACKGROUND). This is a problem if the
frame after the APNG_DISPOSE_OP_BACKGROUND frame uses
APNG_DISPOSE_OP_PREVIOUS, because then the frame after
the APNG_DISPOSE_OP_PREVIOUS frame has an incorrect reference
frame. (If it is not followed by an APNG_DISPOSE_OP_PREVIOUS
frame, the decoder only keeps a reference to the output frame,
which is ok.)This commit fixes this by being much closer to the spec
than the earlier code : Resetting the background is no longer
postponed until the next frame ; instead it is applied to
the reference frame.Fixes ticket #9602.
(For multithreaded decoding it was actually already broken
since commit 5663301560d77486c7f7c03c1aa5f542fab23c24.)Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Audio and video out of sync. Stream mp4 files Concatenation using fluent-ffmpeg
13 mars 2021, par JosepBFirst of all sorry if the question is duplicated. But I couldn't find out the right answer in other questions.


I'm trying to concatenate AWS S3 mp4 files using streams and fluent-ffmpeg. I managed to download and upload the concatenated files without storing it to the disk.


The concatenation seems correct but when I'm selecting a point in time of the video player (VLC media player or QuickTime) time bar seems the audio and video are out of sync.


This is the nodejs fluent-ffmpeg implementation :


concatenation = (listFileName, passthroughStream) => {

 return new Promise((resolve) => { 
 let command = ffmpeg().input(listFileName)
 .inputOptions(['-f concat', '-safe 0', '-protocol_whitelist', 'file,http,tcp,https,tls'])
 //.videoCodec('libx264')
 .outputFormat('mp4')
 .outputOptions('-movflags frag_keyframe+empty_moov')
 
 var ffstream = command.on('end', function() {
 const result = 'files have been merged succesfully';
 resolve(result);
 })
 .on('error', function(err) {
 console.log('an error happened: ' + err.message);
 reject(err);
 }).pipe(passthroughStream);
 ffstream.on('data', ((chunk) => {
 console.log('ffmpeg just wrote ' + chunk.length + ' bytes');
 }));
 }); 
}



I'm using S3 file signed URLs in the file. Somthing like this :


file 'https://bucket.s3.region.amazonaws.com/file_0.mp4'
file 'https://bucket.s3.region.amazonaws.com/file_1.mp4'



I think that this out of sync is because of the fragmentated output and maybe is not possible to do that without downloading the files, but maybe there's a possible solution.


Is there some way to do the mp4 concatenation without storing the files to the disk ? Or am I doing something wrong ?