Recherche avancée

Médias (0)

Mot : - Tags -/performance

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (62)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains 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, par

    Pré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 ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (9876)

  • ffmpeg error Error sending frames to consumers : No space left on device [closed]

    4 août 2024, par Bernard Vatonen Bern

    I do use a short funtion , to convert videos in a needed format ,, I used this function all the time , worked no problems ,
Lately I mado some chnages , and now geting an critical error : like : "no space left on device"
" \[af#0:1 @ 0x600001ad9cb0\] Error sending frames to consumers: No space left on device \[af#0:1 @ 0x600001ad9cb0\] Task finished with error code: -28 (No space left on device) \[af#0:1 @ 0x600001ad9cb0\] Terminating thread with return code -28 (No space left on device)"

    


    I do have this function saved in my file : .zshrc

    


    


    function indianull() 
ffmpeg -i movies/$1.* -i /Documents/indianul3.png -filter_complex "[1][0]scale2ref=w=ohmdar:h=ih0.1[logo][video] ;[video][logo]overlay=x=main_w-overlay_w-(main_w0.04):y=main_h0.14,subtitles=subs/$1.srt:force_style='FontSize=22,WrapStyle=0,MarginV=35" -preset fast -s 720x480 -vcodec libx264 -shortest output/$1-sub.mp4

    


    


    


    \`indianull tt0066763


    


    ffmpeg version 7.0.1 Copyright (c) 2000-2024 the FFmpeg developers
built with Apple clang version 15.0.0 (clang-1500.3.9.4)
configuration : —prefix=/opt/homebrew/Cellar/ffmpeg/7.0.1 —enable-shared —enable-pthreads —enable-version3 —cc=clang —host-cflags= —host-ldflags='-Wl,-ld_classic' —enable-ffplay —enable-gnutls —enable-gpl —enable-libaom —enable-libaribb24 —enable-libbluray —enable-libdav1d —enable-libharfbuzz —enable-libjxl —enable-libmp3lame —enable-libopus —enable-librav1e —enable-librist —enable-librubberband —enable-libsnappy —enable-libsrt —enable-libssh —enable-libsvtav1 —enable-libtesseract —enable-libtheora —enable-libvidstab —enable-libvmaf —enable-libvorbis —enable-libvpx —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxml2 —enable-libxvid —enable-lzma —enable-libfontconfig —enable-libfreetype —enable-frei0r —enable-libass —enable-libopencore-amrnb —enable-libopencore-amrwb —enable-libopenjpeg —enable-libspeex —enable-libsoxr —enable-libzmq —enable-libzimg —disable-libjack —disable-indev=jack —enable-videotoolbox —enable-audiotoolbox —enable-neon
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100

    


    \[Parsed_subtitles_2 @ 0x600001fd8bb0\] libass API version: 0x1703000
\[Parsed_subtitles_2 @ 0x600001fd8bb0\] libass source: tarball: 0.17.3
\[Parsed_subtitles_2 @ 0x600001fd8bb0\] Shaper: FriBidi 1.0.15 (SIMPLE) HarfBuzz-ng 9.0.0 (COMPLEX)
\[Parsed_subtitles_2 @ 0x600001fd8bb0\] Using font provider coretext`


    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movies/tt0066763.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
title           : Anand.1971.720p.BluRay.x264-x0r
encoder         : Lavf57.83.100
Duration: 02:02:08.08, start: 0.000000, bitrate: 1212 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 209.375000
Stream #0:0\[0x1\](hin): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 \[SAR 1:1 DAR 16:9\], 1079 kb/s, 24 fps, 24 tbr, 12288 tbn (default)
Metadata:
handler_name    : VideoHandler
vendor_id       : \[0\]\[0\]\[0\]\[0\]
Stream #0:1\[0x2\](hin): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
handler_name    : SoundHandler
vendor_id       : \[0\]\[0\]\[0\]\[0\]
Stream #0:2\[0x3\](eng): Data: bin_data (text / 0x74786574)
Metadata:
handler_name    : SubtitleHandler
Input #1, png_pipe, from '/Users/bv2004/Documents/indianul3.png':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: png, rgba(pc, gbr/unknown/unknown), 630x124, 25 fps, 25 tbr, 25 tbn
File 'output/tt0066763-sub.mp4' already exists. Overwrite? \[y/N\] y
Stream mapping:
Stream #0:0 (h264) -\> scale2ref (graph 0)
Stream #1:0 (png) -\> scale2ref (graph 0)
subtitles:default (graph 0) -\> Stream #0:0 (libx264)
Stream #0:1 -\> #0:1 (aac (native) -\> aac (native))
Press \[q\] to stop, \[?\] for help
\[Parsed_subtitles_2 @ 0x600001fcc420\] libass API version: 0x1703000
\[Parsed_subtitles_2 @ 0x600001fcc420\] libass source: tarball: 0.17.3
\[Parsed_subtitles_2 @ 0x600001fcc420\] Shaper: FriBidi 1.0.15 (SIMPLE) HarfBuzz-ng 9.0.0 (COMPLEX)
\[Parsed_subtitles_2 @ 0x600001fcc420\] Using font provider coretext
\[vost#0:0/libx264 @ 0x128e07bb0\] No filtered frames for output stream, trying to initialize anyway.
\[libx264 @ 0x128e084e0\] using SAR=32/27
\[libx264 @ 0x128e084e0\] using cpu capabilities: ARMv8 NEON
\[libx264 @ 0x128e084e0\] profile High, level 3.0, 4:2:0, 8-bit
\[libx264 @ 0x128e084e0\] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=15 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output/tt0066763-sub.mp4':
Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
title           : Anand.1971.720p.BluRay.x264-x0r
encoder         : Lavf61.1.100

        encoder         : Lavc61.3.100 aac


    


    \[af#0:1 @ 0x600001ad9cb0\] Error sending frames to consumers: No space left on device
\[af#0:1 @ 0x600001ad9cb0\] Task finished with error code: -28 (No space left on device)
\[af#0:1 @ 0x600001ad9cb0\] Terminating thread with return code -28 (No space left on device)
\[out#0/mp4 @ 0x600001dd8540\] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
\[out#0/mp4 @ 0x600001dd8540\] Output file is empty, nothing was encoded(check -ss / -t / -frames parameters if used)
frame=    0 fps=0.0 q=0.0 Lsize=       2KiB time=N/A bitrate=N/A speed=N/A
\[aac @ 0x128e09070\] Qavg: nan
Conversion failed!`


    


    df -h
Filesystem        Size    Used   Avail Capacity iused ifree %iused  Mounted on
/dev/disk3s3s1   926Gi   9.6Gi   539Gi     2%    404k  4.3G    0%   /
devfs            200Ki   200Ki     0Bi   100%     693     0  100%   /dev
/dev/disk3s6     926Gi   1.0Gi   539Gi     1%       1  5.7G    0%   /System/Volumes/VM
/dev/disk3s4     926Gi   5.7Gi   539Gi     2%    1.1k  5.7G    0%   /System/Volumes/Preboot
/dev/disk3s2     926Gi    89Mi   539Gi     1%      53  5.7G    0%   /System/Volumes/Update
/dev/disk1s2     500Mi   6.0Mi   479Mi     2%       1  4.9M    0%   /System/Volumes/xarts
/dev/disk1s1     500Mi   6.1Mi   479Mi     2%      31  4.9M    0%   /System/Volumes/iSCPreboot
/dev/disk1s3     500Mi   3.9Mi   479Mi     1%      57  4.9M    0%   /System/Volumes/Hardware
/dev/disk3s1     926Gi   370Gi   539Gi    41%    778k  5.7G    0%   /System/Volumes/Data
map auto_home      0Bi     0Bi     0Bi   100%       0     0     -   /System/Volumes/Data/home\`


    


    I run the funtion indianull and expected it to convert a video , in my desired format + add logo + add subtitles ! Takes the original Video from on folder , Subtitles from another folder , and converts the video , and saves it in another folder ..

    


    the issue i see only is :
"\[af#0:1 @ 0x600001ad9cb0\] Error sending frames to consumers: No space left on device \[af#0:1 @ 0x600001ad9cb0\] Task finished with error code: -28 (No space left on device) \[af#0:1 @ 0x600001ad9cb0\] Terminating thread with return code -28 (No space left on device) \[out#0/mp4 @ 0x600001dd8540\] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown"

    


    I do defenitly have over 400GB free on My SSD !
Is an an speciffic folder that is full ? and can not hold any files ?

    


    Any idea how to solve this ? or any suggestion how to try to solve ?

    


  • Filter complex apply on ffmpeg for android outputs low quality video

    17 septembre 2014, par Alin

    I finally managed to build ffmpeg as detailed in here : https://enoent.fr/blog/2014/06/20/compile-ffmpeg-for-android/ and in the end, I have a ffmpeg library which accepts command arguments.

    I am trying to apply a watermark image over the video so for it I am using preparing this ffmpeg command :

    ffmpeg -i input.avi -i logo.png -filter_complex 'overlay=10:main_h-overlay_h-10' output.avi

    I have first tried it on windows using ffmpeg.exe and the result was as expected.

    I have tried it on android using the compiled android and the output is as follows :

    09-17 01:16:57.156: I/Videokit(1229): Loading native library compiled at 22:33:10 Sep 15 2014
    09-17 01:16:57.156: I/Videokit(1229): Option: ffmpeg
    09-17 01:16:57.156: I/Videokit(1229): Option: -loglevel
    09-17 01:16:57.156: I/Videokit(1229): Option: debug
    09-17 01:16:57.156: I/Videokit(1229): Option: -i
    09-17 01:16:57.156: I/Videokit(1229): Option: /storage/emulated/0/mute.mp4
    09-17 01:16:57.156: I/Videokit(1229): Option: -i
    09-17 01:16:57.156: I/Videokit(1229): Option: /storage/emulated/0/logo.png
    09-17 01:16:57.156: I/Videokit(1229): Option: -filter_complex
    09-17 01:16:57.156: I/Videokit(1229): Option: overlay=10:main_h-overlay_h-10
    09-17 01:16:57.156: I/Videokit(1229): Option: /storage/emulated/0/outVid.mp4
    09-17 01:16:57.156: I/Videokit(1229): Running main
    09-17 01:16:57.163: D/Videokit(1229): Splitting the commandline.
    09-17 01:16:57.163: D/Videokit(1229): Reading option '-loglevel' ...
    09-17 01:16:57.163: D/Videokit(1229):  matched as option 'loglevel' (set logging level) with argument 'debug'.
    09-17 01:16:57.163: D/Videokit(1229): Reading option '-i' ...
    09-17 01:16:57.163: D/Videokit(1229):  matched as input file with argument '/storage/emulated/0/mute.mp4'.
    09-17 01:16:57.163: D/Videokit(1229): Reading option '-i' ...
    09-17 01:16:57.163: D/Videokit(1229):  matched as input file with argument '/storage/emulated/0/logo.png'.
    09-17 01:16:57.163: D/Videokit(1229): Reading option '-filter_complex' ...
    09-17 01:16:57.163: D/Videokit(1229):  matched as option 'filter_complex' (create a complex filtergraph) with argument 'overlay=10:main_h-overlay_h-10'.
    09-17 01:16:57.163: D/Videokit(1229): Reading option '/storage/emulated/0/outVid.mp4' ...
    09-17 01:16:57.163: D/Videokit(1229):  matched as output file.
    09-17 01:16:57.163: D/Videokit(1229): Finished splitting the commandline.
    09-17 01:16:57.163: D/Videokit(1229): Parsing a group of options: global .
    09-17 01:16:57.163: D/Videokit(1229): Applying option loglevel (set logging level) with argument debug.
    09-17 01:16:57.163: D/Videokit(1229): Applying option filter_complex (create a complex filtergraph) with argument overlay=10:main_h-overlay_h-10.
    09-17 01:16:57.163: D/Videokit(1229): Successfully parsed a group of options.
    09-17 01:16:57.163: D/Videokit(1229): Parsing a group of options: input file /storage/emulated/0/mute.mp4.
    09-17 01:16:57.163: D/Videokit(1229): Successfully parsed a group of options.
    09-17 01:16:57.163: D/Videokit(1229): Opening an input file: /storage/emulated/0/mute.mp4.
    09-17 01:16:57.296: D/Videokit(1229): Successfully opened the file.
    09-17 01:16:57.296: D/Videokit(1229): Parsing a group of options: input file /storage/emulated/0/logo.png.
    09-17 01:16:57.296: D/Videokit(1229): Successfully parsed a group of options.
    09-17 01:16:57.296: D/Videokit(1229): Opening an input file: /storage/emulated/0/logo.png.
    09-17 01:16:57.304: D/Videokit(1229): Successfully opened the file.
    09-17 01:16:57.304: D/Videokit(1229): Parsing a group of options: output file /storage/emulated/0/outVid.mp4.
    09-17 01:16:57.304: D/Videokit(1229): Successfully parsed a group of options.
    09-17 01:16:57.304: D/Videokit(1229): Opening an output file: /storage/emulated/0/outVid.mp4.
    09-17 01:16:57.312: D/Videokit(1229): Successfully opened the file.
    09-17 01:16:57.351: I/Videokit(1229): Stream mapping:
    09-17 01:16:57.351: I/Videokit(1229):   Stream #0:0 (h264) -> overlay:main
    09-17 01:16:57.351: I/Videokit(1229):   Stream #1:0 (png) -> overlay:overlay
    09-17 01:16:57.351: I/Videokit(1229):   overlay
    09-17 01:16:57.351: I/Videokit(1229):  -> Stream #0:0 (mpeg4)
    09-17 01:16:57.351: I/Videokit(1229): Press [q] to stop, [?] for help
    09-17 01:16:57.890: I/Videokit(1229): frame=   12 fps=0.0 q=24.3 size=     113kB time=00:00:00.40 bitrate=2314.9kbits/s    
    09-17 01:16:58.413: I/Videokit(1229): frame=   26 fps= 25 q=31.0 size=     154kB time=00:00:00.86 bitrate=1455.1kbits/s    
    09-17 01:16:58.953: I/Videokit(1229): frame=   38 fps= 24 q=31.0 size=     180kB time=00:00:01.26 bitrate=1165.0kbits/s    
    09-17 01:17:00.085: I/Videokit(1229): frame=   50 fps= 24 q=31.0 size=     205kB time=00:00:01.66 bitrate=1006.8kbits/s    
    09-17 01:17:00.163: I/Videokit(1229): frame=   51 fps= 19 q=31.0 size=     206kB time=00:00:01.70 bitrate= 992.8kbits/s    
    09-17 01:17:00.632: I/Videokit(1229): frame=   64 fps= 20 q=31.0 size=     230kB time=00:00:02.13 bitrate= 883.9kbits/s    
    09-17 01:17:01.156: I/Videokit(1229): frame=   78 fps= 21 q=31.0 size=     254kB time=00:00:02.60 bitrate= 798.5kbits/s    
    09-17 01:17:01.679: I/Videokit(1229): frame=   92 fps= 21 q=31.0 size=     275kB time=00:00:03.06 bitrate= 734.7kbits/s    
    09-17 01:17:02.179: I/Videokit(1229): frame=  106 fps= 22 q=31.0 size=     296kB time=00:00:03.53 bitrate= 684.8kbits/s    
    09-17 01:17:02.726: I/Videokit(1229): frame=  121 fps= 23 q=24.8 size=     325kB time=00:00:04.03 bitrate= 660.1kbits/s    
    09-17 01:17:03.249: I/Videokit(1229): frame=  134 fps= 23 q=31.0 size=     344kB time=00:00:04.47 bitrate= 629.8kbits/s    
    09-17 01:17:03.781: I/Videokit(1229): frame=  147 fps= 23 q=31.0 size=     368kB time=00:00:04.90 bitrate= 614.2kbits/s    
    09-17 01:17:04.335: I/Videokit(1229): frame=  159 fps= 23 q=31.0 size=     390kB time=00:00:05.30 bitrate= 602.1kbits/s    
    09-17 01:17:04.921: I/Videokit(1229): frame=  171 fps= 23 q=31.0 size=     412kB time=00:00:05.70 bitrate= 591.3kbits/s    
    09-17 01:17:05.437: I/Videokit(1229): frame=  183 fps= 23 q=31.0 size=     432kB time=00:00:06.10 bitrate= 579.8kbits/s    
    09-17 01:17:05.937: I/Videokit(1229): frame=  196 fps= 23 q=31.0 size=     453kB time=00:00:06.53 bitrate= 568.0kbits/s    
    09-17 01:17:06.453: I/Videokit(1229): frame=  210 fps= 23 q=31.0 size=     483kB time=00:00:07.00 bitrate= 565.2kbits/s    
    09-17 01:17:06.976: I/Videokit(1229): frame=  224 fps= 23 q=31.0 size=     513kB time=00:00:07.47 bitrate= 562.3kbits/s    
    09-17 01:17:07.515: I/Videokit(1229): frame=  239 fps= 24 q=31.0 size=     538kB time=00:00:07.97 bitrate= 553.1kbits/s    
    09-17 01:17:08.007: I/Videokit(1229): frame=  249 fps= 23 q=31.0 size=     559kB time=00:00:08.30 bitrate= 551.2kbits/s    
    09-17 01:17:08.531: I/Videokit(1229): frame=  262 fps= 24 q=31.0 size=     581kB time=00:00:08.74 bitrate= 544.6kbits/s    
    09-17 01:17:09.359: I/Videokit(1229): frame=  272 fps= 23 q=31.0 size=     602kB time=00:00:09.07 bitrate= 543.1kbits/s    
    09-17 01:17:09.882: I/Videokit(1229): frame=  284 fps= 23 q=31.0 size=     624kB time=00:00:09.47 bitrate= 539.5kbits/s    
    09-17 01:17:10.374: I/Videokit(1229): frame=  296 fps= 23 q=31.0 size=     651kB time=00:00:09.87 bitrate= 540.2kbits/s    
    09-17 01:17:10.898: I/Videokit(1229): frame=  309 fps= 23 q=31.0 size=     682kB time=00:00:10.31 bitrate= 542.1kbits/s    
    09-17 01:17:11.406: I/Videokit(1229): frame=  324 fps= 23 q=31.0 size=     710kB time=00:00:10.81 bitrate= 538.3kbits/s    
    09-17 01:17:11.929: I/Videokit(1229): frame=  343 fps= 24 q=31.0 size=     749kB time=00:00:11.44 bitrate= 536.2kbits/s    
    09-17 01:17:12.437: I/Videokit(1229): frame=  361 fps= 24 q=24.8 size=     787kB time=00:00:12.04 bitrate= 535.3kbits/s    
    09-17 01:17:12.953: I/Videokit(1229): frame=  379 fps= 24 q=31.0 size=     821kB time=00:00:12.64 bitrate= 531.8kbits/s    
    09-17 01:17:13.460: I/Videokit(1229): frame=  397 fps= 25 q=24.8 size=     869kB time=00:00:13.24 bitrate= 537.2kbits/s    
    09-17 01:17:13.960: I/Videokit(1229): frame=  413 fps= 25 q=31.0 size=     903kB time=00:00:13.78 bitrate= 537.0kbits/s    
    09-17 01:17:14.468: I/Videokit(1229): frame=  430 fps= 25 q=31.0 size=     942kB time=00:00:14.34 bitrate= 537.7kbits/s    
    09-17 01:17:14.601: V/Videokit(1229): No more output streams to write to, finishing.
    09-17 01:17:14.609: I/Videokit(1229): frame=  435 fps= 25 q=31.0 Lsize=     959kB time=00:00:14.51 bitrate= 541.2kbits/s    
    09-17 01:17:14.609: I/Videokit(1229): video:956kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead 0.275524%
    09-17 01:17:14.609: D/Videokit(1229): 439 frames successfully decoded, 0 decoding errors
    09-17 01:17:14.617: I/Videokit(1229): Main ended with status 0

    The problem is that the output on android has very poor quality How can I make ffmpeg build a video with a quality close to the original file. I presume that filter_complex forces a new video encode.

  • How to set up my complex filter with zoompan and xfade for ffmpeg using Fluent-FFmpeg .complexFilter method ?

    21 août 2024, par Rémy Groleau

    I'm using fluent-ffmpeg with Node.js. My problem is the setup of my complex filter.

    


    const filters = Array.from({ length: imageCount - 1 }).map((_, i) => {
        const rndInt = Math.floor(Math.random() * 1000) + 1

        return {
            zoompanFilter1: {
                filter: 'zoompan',
                options: {
                    z: 'min(zoom+0.001,1.3)',
                    d: `${imageDuration * 60}`, 
                    x: `iw/2-iw*(1/2-${rndInt}/100)*iw/zoom`, 
                    y: `ih/2-ih*(1/2-${rndInt}/100)*ih/zoom`, 
                    s: '1080x1920', // Output size
                    fps: '60'
                },
                inputs: `[${i}:v]`,
                outputs: `zoomed${i}`
            },
            zoompanFilter2: {
                filter: 'zoompan',
                options: {
                    z: 'min(zoom+0.001,1.3)', 
                    d: `${imageDuration * 60}`, 
                    x: 'iw/2-iw*(1/2-33/100)*iw/zoom',
                    y: 'ih/2-ih*(1/2-33/100)*ih/zoom',
                    s: '1080x1920', // Output size
                    fps: '60'
                },
                inputs: [`${i + 1}:v`],
                outputs: `zoomed${i + 1}`
            },
            xfadeFilter: {
                filter: 'xfade',
                options: {
                    transition: 'fade', // Crossfade transition effect
                    duration: '0.5', // Duration of crossfade in seconds
                    offset: `${imageDuration - 1}` // Offset to start the crossfade
                },
                inputs: [`zoomed${i + 1}`, `zoomed${i}`],
                outputs: `crossfaded${i}`
            },
        };
    });


    


    This is my complete code :

    


    async function createVideo() {
    // Escape file paths for Windows
    const videoPath = path.resolve(__dirname+ '/output.mp4').replace(/\\/g, '\\\\');
    const audioPath = path.resolve(__dirname+ '/output.mp3').replace(/\\/g, '\\\\');
    const backgroundMusicPath = path.resolve(__dirname+ '/background-music.mp3').replace(/\\/g, '\\\\');

    const command = ffmpeg();

    const imagesDir = path.join(__dirname, 'images');
    const images = fs.readdirSync(imagesDir)
        .filter(file => /.(jpg|jpeg|png)$/i.test(file)) // Filter image files
        .sort() // Sort filenames to ensure the correct order
        .map(file => path.join(imagesDir, file));

        images.map((image) => command.input(image))

    const imageCount = images.length;
    const audioDuration = await getAudioDurationInSeconds(audioPath);
    const imageDuration =  Math.round(audioDuration / imageCount)

    const filters = Array.from({ length: imageCount - 1 }).map((_, i) => {
        const rndInt = Math.floor(Math.random() * 1000) + 1

        return {
            zoompanFilter1: {
                filter: 'zoompan',
                options: {
                    z: 'min(zoom+0.001,1.3)', // Reset zoom to 1.0
                    d: `${imageDuration * 60}`, // Duration of the zoom effect
                    x: `iw/2-iw*(1/2-${rndInt}/100)*iw/zoom`, // Center x
                    y: `ih/2-ih*(1/2-${rndInt}/100)*ih/zoom`, // Center y
                    s: '1080x1920', // Output size
                    fps: '60'
                },
                inputs: `[${i}:v]`,
                outputs: `zoomed${i}`
            },
            zoompanFilter2: {
                filter: 'zoompan',
                options: {
                    z: 'min(zoom+0.001,1.3)', // Reset zoom to 1.0
                    d: `${imageDuration * 60}`, // Duration of the zoom effect
                    x: 'iw/2-iw*(1/2-33/100)*iw/zoom', // Center x
                    y: 'ih/2-ih*(1/2-33/100)*ih/zoom', // Center y
                    s: '1080x1920', // Output size
                    fps: '60'
                },
                inputs: [`${i + 1}:v`],
                outputs: `zoomed${i + 1}`
            },
            xfadeFilter: {
                filter: 'xfade',
                options: {
                    transition: 'fade', // Crossfade transition effect
                    duration: '0.5', // Duration of crossfade in seconds
                    offset: `${imageDuration - 1}` // Offset to start the crossfade
                },
                inputs: [`zoomed${i + 1}`, `zoomed${i}`],
                outputs: `crossfaded${i}`
            },
        };
    });

    command
    .input(audioPath)
    .input(backgroundMusicPath)
    .outputOptions([
        '-pix_fmt', 'yuv420p',
        '-c:v', 'libx264',
        '-c:a', 'aac',
        '-y',
        '-t', `${audioDuration}`,
        '-r', '60',
        '-s', '1080x1920',
        '-preset', 'ultrafast',
        '-map', '[final_video]',
        '-map', '[mixed_audio]',
    ])
    .complexFilter([
        // Apply zoompan filters and xfade transitions
        ...filters.flatMap(({ zoompanFilter1, zoompanFilter2, xfadeFilter }) => [
            zoompanFilter1,
            zoompanFilter2,
            xfadeFilter,
        ]),
        {
            filter: 'concat',
            options: {
                n: imageCount - 1, // Number of videos to concatenate
                v: 1, // Video streams
                a: 0 // No audio streams
            },
            inputs: filters.map((_, i) => `crossfaded${i}`),
            outputs: 'video_sequence'
        },
        {
            filter: 'curves',
            options: 'preset=increase_contrast',
            inputs: 'video_sequence',
            outputs: 'curves'
        },
        {
            filter: 'subtitles',
            options: `./subtitles.ass:fontsdir=./fonts/:force_style='FontName=Montserrat Black Italic,FontSize=17,MarginL=10,MarginV=25,Alignment=10,Spacing=0.2,Outline=0.1,Shadow=1.5'`,
            inputs: '[curves]',
            outputs: 'final_video'
        },
        {
            filter: 'volume',
            options: 0.3,  // Adjust the volume to 25% of the original
            inputs: `${imageCount + 1}:a`,
            outputs: 'background_music_adjusted'
        },
        // Apply the amix filter to mix the two audio inputs
        {
            filter: 'amix',
            options: {
                inputs: 2,
                duration: 'first',
                dropout_transition: 0,
                weights: '1 0.25',
                normalize: 0
            },
            inputs: [`${imageCount}:a`, 'background_music_adjusted'],
            outputs: 'mixed_audio'
        },
      ])
    .save(videoPath)
    .on('progress', function(progress) {
        console.log('Processing: ' + progress.percent + '% done');
      })
    .on('end', function(stdout, stderr) {
        // emptyFolder(imagesDir)
        console.log('Transcoding succeeded !');
      }) 
    .on('error', function(err) {
        console.error('Une erreur s\'est produite :', err.message);
    });
}


    


    My problem is I see the 1 image then the transition and i see the 2 image. After that I'm supposed to see the 3 image but I see the 2 image.

    


    What am I doing wrong ?

    


    I tried switching the inputs: [`zoomed${i + 1}`, `zoomed${i}`] to inputs: [`zoomed${i}`, `zoomed${i+1}`] but it just showed the next image and not a loop of consecutive images.