
Recherche avancée
Autres articles (78)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Qu’est ce qu’un masque de formulaire
13 juin 2013, parUn masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
Chaque formulaire de publication d’objet peut donc être personnalisé.
Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)
Sur d’autres sites (14126)
-
FFmpeg image2pipe write buffer wait until done
20 décembre 2020, par Michael Joseph AubryI'm extracting frames from an external source and passing it in as a buffer to FFMPEG using
image2pipe
and-i -


const childProcess = spawn(ffmpeg, [
 "-y",
 "-f",
 "image2pipe",
 "-i",
 "-",
 "-vcodec",
 "libx264",
 "-pix_fmt",
 "yuv420p",
 output
]);



Then I have a loop that does the job.


for (let i = 0; i < 250; i++) {
 // ...await
}



Inside the promise


// ... do the job to get buffer

childProcess.stdin.write(frame); // frame === buffer

// frame done
resolve("success!");



The problem is in some videos the frames jump and is janky. This is because FFmpeg is not fully done writing to the file before moving onto the next frame.


Is there a way to write a buffer to a file through FFmpeg and make sure the frame is done writing before moving on ?


Some more information


Here is the source file https://s3.us-west-2.amazonaws.com/storycreator.v2.uploads/ckigi4kro00160vlfjmt74afp


Here is the rendered file https://s3.us-west-2.amazonaws.com/storycreator.testing/607715f0-3ab9-11eb-a139-3bb84618c6c5.mp4?t=1607585343922


Here are logs


2020-12-10T07:28:48.942Z 0ae0c435-54d3-416f-9d1a-8ddf595a7e83 INFO frame= 130 fps= 16 q=-1.0 Lsize= 83kB time=00:00:05.08 bitrate= 133.6kbits/s speed=0.641x video:80kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.928688%



2020-12-10T07:28:48.942Z 0ae0c435-54d3-416f-9d1a-8ddf595a7e83 INFO [libx264 @ 0x640d6c0] frame I:1 Avg QP:15.47 size: 68227[libx264 @ 0x640d6c0] frame P:33 Avg QP:15.07 size: 246[libx264 @ 0x640d6c0] frame B:96 Avg QP:18.75 size: 56[libx264 @ 0x640d6c0] consecutive B-frames: 1.5% 0.0% 0.0% 98.5%



2020-12-10T07:28:48.943Z 0ae0c435-54d3-416f-9d1a-8ddf595a7e83 INFO [libx264 @ 0x640d6c0] mb I I16..4: 24.6% 60.5% 14.9%[libx264 @ 0x640d6c0] mb P I16..4: 0.0% 0.2% 0.0% P16..4: 0.8% 0.0% 0.0% 0.0% 0.0% skip:98.9%[libx264 @ 0x640d6c0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.3% 0.0% 0.0% direct: 0.0% skip:99.7% L0:26.7% L1:73.3% BI: 0.0%[libx264 @ 0x640d6c0] 8x8 transform intra:62.0% inter:83.6%[libx264 @ 0x640d6c0] coded y,uvDC,uvAC intra: 49.2% 44.3% 32.1% inter: 0.0% 0.2% 0.0%[libx264 @ 0x640d6c0] i16 v,h,dc,p: 53% 38% 7% 2%[libx264 @ 0x640d6c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 24% 29% 3% 3% 3% 5% 3% 4%[libx264 @ 0x640d6c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 37% 26% 14% 3% 4% 5% 4% 4% 3%[libx264 @ 0x640d6c0] i8c dc,h,v,p: 57% 27% 13% 3%[libx264 @ 0x640d6c0] Weighted P-Frames: Y:0.0% UV:0.0%[libx264 @ 0x640d6c0] ref P L0: 95.1% 1.2% 3.1% 0.6%[libx264 @ 0x640d6c0] ref B L0: 48.1% 51.3% 0.7%[libx264 @ 0x640d6c0] ref B L1: 97.3% 2.7%[libx264 @ 0x640d6c0] kb/s:125.75



2020-12-10T07:28:48.944Z 0ae0c435-54d3-416f-9d1a-8ddf595a7e83 INFO [cache @ 0x5f57940] Statistics, cache hits:0 cache misses:3551



-
Getting "Buffer queue overflow, dropping" while concatenation in ffmpeg
19 août 2020, par Yevhenii MolodtsovI have a python script that generates the FFmpeg command to concatenate the video clips.
Here is the script :


ffmpeg 
 -i /tmp/media/import-2020-Aug-19-Wednesday-08-08-26/temp_eba59811-bb5c-4e36-aa7d-b1731e70432c.mp4 
 -i /tmp/media/import-2020-Aug-19-Wednesday-08-08-26/temp_2a6d7907-7cad-4f38-ae82-4b475546d3e0.mp4 
 -i /tmp/media/import-2020-Aug-19-Wednesday-08-08-26/temp_d7371ecb-01df-4199-951f-336fa475998f.mp4 
 -i /tmp/media/import-2020-Aug-19-Wednesday-08-08-26/temp_cc5de0f1-84b4-47bc-b390-45b5f8711914.mp4 
 -i /tmp/media/import-2020-Aug-19-Wednesday-08-08-26/temp_bf796e0d-135f-40fd-ab8e-4780da6973fd.mp4 
 -filter_complex 
 "[0:v]trim=start=0:end=8.032,setpts=PTS-STARTPTS[clip0];
 [1:v]trim=start=2:end=13.047,setpts=PTS-STARTPTS[clip1];
 [2:v]trim=start=2:end=13.558,setpts=PTS-STARTPTS[clip2];
 [3:v]trim=start=2:end=13.186,setpts=PTS-STARTPTS[clip3];
 [4:v]trim=start=2,setpts=PTS-STARTPTS[clip4];
 [0:v]trim=start=9.032:end=10.032,setpts=PTS-STARTPTS[out0];
 [1:v]trim=start=14.047:end=15.047,setpts=PTS-STARTPTS[out1];
 [2:v]trim=start=14.558:end=15.558,setpts=PTS-STARTPTS[out2];
 [3:v]trim=start=14.186:end=15.186,setpts=PTS-STARTPTS[out3];
 [1:v]trim=start=0:end=2,setpts=PTS-STARTPTS[in1];
 [2:v]trim=start=0:end=2,setpts=PTS-STARTPTS[in2];
 [3:v]trim=start=0:end=2,setpts=PTS-STARTPTS[in3];
 [4:v]trim=start=0:end=2,setpts=PTS-STARTPTS[in4];
 [in1]format=pix_fmts=yuva420p,fade=t=in:st=0:d=2:alpha=1[fadein1];
 [in2]format=pix_fmts=yuva420p,fade=t=in:st=0:d=2:alpha=1[fadein2];
 [in3]format=pix_fmts=yuva420p,fade=t=in:st=0:d=2:alpha=1[fadein3];
 [in4]format=pix_fmts=yuva420p,fade=t=in:st=0:d=2:alpha=1[fadein4];
 [out0]format=pix_fmts=yuva420p,fade=t=out:st=0:d=2:alpha=1[fadeout0];
 [out1]format=pix_fmts=yuva420p,fade=t=out:st=0:d=2:alpha=1[fadeout1];
 [out2]format=pix_fmts=yuva420p,fade=t=out:st=0:d=2:alpha=1[fadeout2];
 [out3]format=pix_fmts=yuva420p,fade=t=out:st=0:d=2:alpha=1[fadeout3];
 [fadein1]fifo[fadein1fifo];
 [fadein2]fifo[fadein2fifo];
 [fadein3]fifo[fadein3fifo];
 [fadein4]fifo[fadein4fifo];
 [fadeout0]fifo[fadeout0fifo];
 [fadeout1]fifo[fadeout1fifo];
 [fadeout2]fifo[fadeout2fifo];
 [fadeout3]fifo[fadeout3fifo];
 [fadeout0fifo][fadein1fifo]overlay[crossfade0];
 [fadeout1fifo][fadein2fifo]overlay[crossfade1];
 [fadeout2fifo][fadein3fifo]overlay[crossfade2];
 [fadeout3fifo][fadein4fifo]overlay[crossfade3];
 [clip0][crossfade0][clip1][crossfade1][clip2][crossfade2][clip3][crossfade3][clip4]concat=n=9[output];
 [0:a][1:a]acrossfade=d=10:c1=tri:c2=tri[A1];
 [A1][2:a]acrossfade=d=10:c1=tri:c2=tri[A2];
 [A2][3:a]acrossfade=d=10:c1=tri:c2=tri[A3];
 [A3][4:a]acrossfade=d=10:c1=tri:c2=tri[audio] " -map "[output]" -map "[audio]" /tmp/media/final/some_filename_587463a2-e3ca-436a-874b-a72e295e46ac.mp4



But I get the following error :
Buffer queue overflow, dropping
.
I read that to solve this I need to use fifo, but I can't figure out where should I place it. I addition, it seems like fifo works only with video streams.
I would much appreciate any help !

-
FFmpeg : concatenate m4v-files while preserving vobsub subtitles ?
27 octobre 2020, par NickI'm trying to concatenate two h.264-m4v files using ffmpeg. At least one of the source files (at least the second, not necessarily the first) contains subtitles in the vobsub format. The source files were created using HandBrake which allows for vobsub inclusion in m4v-containers. The files are exactly the same codec, same resolution, same type.


Let's suppose the source files are called 1.m4v and 2.m4v. The 2.m4v-file contains the following streams which I want to have included in the output file :


Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt470bg), 702x574 [SAR 16:15 DAR 1872:1435], 607 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default)
 Metadata:
 creation_time : 2020-10-11T16:02:38.000000Z
 handler_name : VideoHandler
 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 350 kb/s (default)
 Metadata:
 creation_time : 2020-10-11T16:02:38.000000Z
 handler_name : Stereo
 Stream #0:2(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D), 720x576, 3 kb/s (default)
 Metadata:
 creation_time : 2020-10-11T16:02:38.000000Z
 handler_name : SubtitleHandler
 Stream #0:3(eng): Data: bin_data (text / 0x74786574)
 Metadata:
 creation_time : 2020-10-11T16:02:38.000000Z
 handler_name : SubtitleHandler



The two files are included in a
sources.txt
file containing the following lines :

file '1.m4v'
file '2.m4v'



The command in ffmpeg is then executed as follows :


$ ffmpeg -f concat -safe 0 -i sources.txt -c copy output.m4v



The resulting file correctly combines 1 and 2 with all their audio and video streams. However, the subtitle streams are omitted by ffmpeg. The output.m4v file does not contain them (Stream #0:2(eng) and Stream #0:3(eng) are not present) :


Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt470bg), 702x576 [SAR 16:15 DAR 13:10], 626 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 349 kb/s (default)
 Metadata:
 handler_name : Stereo



This also happens if I alter the command to use
-scodec copy
as an option. In this case, the joining-process fails with the following error :

[ipod @ 0x7f7faa00c000] Could not find tag for codec dvd_subtitle in stream #2, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 -- 



Any idea on how to join the two files while preserving the vobsubs in the resulting m4v-container ?