Recherche avancée

Médias (91)

Autres articles (67)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk 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.

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

Sur d’autres sites (10597)

  • Merging two video files with ffmpeg and xfade filter cuts the first video

    29 décembre 2022, par rlib

    I try to concatenate two mp4 videos using ffmpeg's xfade filter :

    


    ffmpeg -y -i x1.mp4 -i x2.mp4 -filter_complex "[0][1]xfade=transition=dissolve:duration=2:offset=2" dissolveVideo4.mp4


    


    x1.mp4 is 14.52 seconds and x2.mp4 is 12.46 seconds. The resulting video is 14.48 seconds.
Examining the resulting video shows the first input contributed only 4 seconds at its end, the remaining is the second video.

    


    This happens with any of the available transitions (fade etc.).

    


    Here is the output of the ffmpeg command above :

    


    ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: 
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'x1.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2022-12-29T15:10:27.000000Z
    location        : +32.7648+035.0443/
    location-eng    : +32.7648+035.0443/
    com.android.version: 13
    com.android.capture.fps: 30.000000
  Duration: 00:00:14.52, start: 0.000000, bitrate: 17707 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/smpte170m, progressive), 1920x1080, 17449 kb/s, 29.96 fps, 30 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2022-12-29T15:10:27.000000Z
      handler_name    : VideoHandle
      vendor_id       : [0][0][0][0]
    Side data:
      displaymatrix: rotation of -90.00 degrees
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2022-12-29T15:10:27.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'x2.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2022-12-29T15:10:47.000000Z
    location        : +32.7648+035.0443/
    location-eng    : +32.7648+035.0443/
    com.android.version: 13
    com.android.capture.fps: 30.000000
  Duration: 00:00:12.46, start: 0.000000, bitrate: 17461 kb/s
  Stream #1:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/smpte170m, progressive), 1920x1080, 17201 kb/s, 30.01 fps, 30 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2022-12-29T15:10:47.000000Z
      handler_name    : VideoHandle
      vendor_id       : [0][0][0][0]
    Side data:
      displaymatrix: rotation of -90.00 degrees
  Stream #1:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2022-12-29T15:10:47.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 (h264) -> xfade (graph 0)
  Stream #1:0 (h264) -> xfade (graph 0)
  xfade:default (graph 0) -> Stream #0:0 (mpeg4)
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, mp4, to 'dissolveVideo4.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    com.android.capture.fps: 30.000000
    location        : +32.7648+035.0443/
    location-eng    : +32.7648+035.0443/
    com.android.version: 13
    encoder         : Lavf59.27.100
  Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, bt709/bt709/smpte170m, progressive), 1080x1920, q=2-31, 200 kb/s, 30 fps, 15360 tbn
    Metadata:
      encoder         : Lavc59.37.100 mpeg4
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2022-12-29T15:10:27.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 aac
frame=  435 fps=145 q=31.0 Lsize=    7688kB time=00:00:14.48 bitrate=4347.9kbits/s speed=4.82x    
video:7443kB audio:231kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.181913%


    


    What can be a problem ?

    


  • Video concatenation using ffmpeg. Output video length is longer than inputs length

    28 décembre 2022, par Rostyslav Mosorov

    I have a problem with video mp4 concatenation using ffmpeg. I have two the same videos and I want to concatenate them. I created file inputs.txt and then used command :

    


    ffmpeg  -f concat -i inputs.txt -c copy mergedVideo.mp4

    


    Output :

    


    ffmpeg  -f concat -i inputs.txt -c copy mergedVideo.mp4
ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with clang version 12.0.1
  configuration: --prefix=/Users/runner/miniforge3/conda-bld/ffmpeg_1649114094397/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl --cc=arm64-apple-darwin20.0.0-clang --disable-doc --disable-openssl --enable-demuxer=dash --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-neon --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvtav1 --enable-libxml2 --enable-libvpx --enable-pic --enable-pthreads --enable-shared --disable-static --enable-version3 --enable-zlib --enable-libmp3lame --pkg-config=/Users/runner/miniforge3/conda-bld/ffmpeg_1649114094397/_build_env/bin/pkg-config --enable-cross-compile --arch=arm64 --target-os=darwin --cross-prefix=arm64-apple-darwin20.0.0- --host-cc=/Users/runner/miniforge3/conda-bld/ffmpeg_1649114094397/_build_env/bin/x86_64-apple-darwin13.4.0-clang
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1561044a0] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'inputs.txt':
  Duration: N/A, start: -0.064000, bitrate: 1424 kb/s
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1355 kb/s, 50 fps, 50 tbr, 12800 tbn
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 68 kb/s
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
File 'mergedVideo.mp4' already exists. Overwrite? [y/N] y
Output #0, mp4, to 'mergedVideo.mp4':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1355 kb/s, 50 fps, 50 tbr, 12800 tbn
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 68 kb/s
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 size=       0kB time=00:00:00.06 bitrate=   6.0k[mov,mp4,m4a,3gp,3g2,mj2 @ 0x154f28b20] Auto-inserting h264_mp4toannexb bitstream filter
frame=  166 fps=0.0 q=-1.0 Lsize=     583kB time=00:00:03.39 bitrate=1407.4kbits/s speed= 179x    
video:550kB audio:29kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.737394%


    


    Unfortunately the result is different then I expected :
    
movies comparison

    


    The output is longer than the length of two inputs. Any thoughts ?

    


    Also I tried using different commands :

    


    ffmpeg  -f concat -i inputs.txt -c copy mergedVideo.mp4


    


    or set the framerate :

    


    ffmpeg -r 50 -f concat -i inputs.txt -c copy mergedVideo.mp4


    


    What is also weird that I have the same problem when using moviepy library.

    


    from moviepy.editor import VideoFileClip, concatenate_videoclips
videos = [VideoFileClip("0.mp4"), VideoFileClip("0.mp4")]
concatenate_videoclips(videos).write_videofile('mergedVideo.mp4')


    


    Update
ffprobe command for output file

    


    ffprobe -v error -select_streams v -show_entries stream=codec_name,time_base,start_pts,start_time,duration -of default=noprint_wrappers=1 mergedVideo.mp4 
codec_name=h264
time_base=1/12800
start_pts=0
start_time=0.000000
duration=3.380000


    


    For input :

    


    ffprobe -v error -select_streams v -show_entries stream=codec_name,time_base,start_pts,start_time,duration -of default=noprint_wrappers=1 0.mp4          
codec_name=h264
time_base=1/12800
start_pts=0
start_time=0.000000
duration=1.660000


    


    The duration supposed to be 2*1.66 = 3.32 and but it's 3.38.

    


    Content of the inputs.txt

    


    file '0.mp4'
file '0.mp4'


    


  • ffmpeg with delayed inputs put an extra audio output at 0 seconds

    19 mars 2023, par Ralph

    Can someone explain why the input files are played 4 times in total, at 0, 1, 2, 3 seconds.

    


      

    1. The ffmpeg processes three input files (mp3).
    2. 


    3. The complex filter delays the inputs by 1, 2, 3 seconds input-wise.
    4. 


    5. amix mixes the delayed outputs together.
    6. 


    7. And finally, a coded transforms it into an output mp3.
    8. 


    


    ffmpeg -i in0.mp3 -i in1.mp3 -i in2.mp3 -filter_complex "[0]adelay=1000[delayed1];[1]adelay=2000[delayed2];[2]adelay=3000[delayed3];[delayed1][delayed2][delayed3]amix=inputs=3:duration=longest" -codec:a libmp3lame -q:a 4 output.mp3


    


    short version : 2 delayed beeps, an finally there come 3 beeps out (@ 0, 1, 2 seconds) :

    


    ffmpeg -i beep.mp3 -filter_complex "[0]adelay=1000[delayed1];[0]adelay=2000[delayed2];[delayed1][delayed2]amix=inputs=2:duration=longest" -codec:a libmp3lame -q:a 4 output.mp3


    


    ffmpeg version N-110011-gf456c192d9-tessus on a Mac M1.

    


    I added also a silent input file from 0 to 1 seconds without any alteration of the outcome.
I added a silent stream as input as well without improvement. E.g. :

    


    ... -filter_complex "aevalsrc=0:d=4[silence];...


    


    Another test with another ffmpeg version 5.1 Copyright (c) 2000-2022 the FFmpeg developers built with Apple clang version 13.1.6 (clang-1316.0.21.2.5) :
ffmpeg -i beep.mp3 -filter_complex "[0]adelay=1000[delayed1];aevalsrc=0:d=5[silence];[silence][delayed1]amix=inputs=2:duration=longest" -codec:a libmp3lame -q:a 4 output.mp3
There are again 2 beeps, at 0 and 1 second - going mad here !

    


    (concat solves the issue. But I want to have a flexible solution with possibly overlapping audio streams.) Thanks for giving a hint !