Recherche avancée

Médias (91)

Autres articles (99)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • 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 ;

  • 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 (11321)

  • how to add audio to existing video using FFMPEG at specific time ?

    29 juin 2023, par Yanshof

    I have video file (.avi) that contain video of 10 minutes. 
I also have audio file (.wav) that contain 1 minute of sound.

    



    I need to add the audio to the exist video but the audio need to start at after one minute of the video

    



    How to do it ?

    



    ( prefer using ffmpeg if its possible )

    



    try already this query ( 30 seconds delay )

    



    -i video.avi -i audio.wav -filter_complex \"[1]adelay=30000|30000[aud];[0][aud]amix\" - c:v copy out.avi"


    



    Attached the log of ffmpeg when trying to merge more then one wav :

    



    ffmpeg started on 2018-01-10 at 11:14:57
Report written to "ffmpeg-20180110-111457.log"
Command line:
ffmpeg.exe -report -i "..\\merged.avi" -i "Storage\\1.wav" -i "Storage\\2.wav" -i "Storage\\3.wav" -filter_complex "adelay=30000|30000" "adelay=91000|91000" "adelay=151000|151000" -c:v copy "Storage\\ALL.AVI"
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input url with argument '..\mergedVideoOnly.avi'.
Reading option '-i' ... matched as input url with argument '\Storage\0030_0130.wav'.
Reading option '-i' ... matched as input url with argument '\Storage\0130_0230.wav'.
Reading option '-i' ... matched as input url with argument '\Storage\0230_0330.wav'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument 'adelay=30000|30000'.
Reading option 'adelay=91000|91000' ... matched as output url.
Reading option 'adelay=151000|151000' ... matched as output url.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option 'ALL.AVI' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option filter_complex (create a complex filtergraph) with argument adelay=30000|30000.
Successfully parsed a group of options.
Parsing a group of options: input url ..\mergedVideoOnly.avi.
Successfully parsed a group of options.
Opening an input file: ..\mergedVideoOnly.avi.
[NULL @ 042ed360] Opening '..\mergedVideoOnly.avi' for reading
[file @ 042ee300] Setting default whitelist 'file,crypto'
[avi @ 042ed360] Format avi probed with size=2048 and score=100
[avi @ 042ee500] use odml:1
[avi @ 042ed360] Before avformat_find_stream_info() pos: 5690 bytes read:100744 seeks:4 nb_streams:1
[avi @ 042ed360] parser not found for codec scpr, packets or times may be invalid.
[avi @ 042ed360] parser not found for codec scpr, packets or times may be invalid.
[avi @ 042ed360] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
[avi @ 042ed360] rfps: 2.916667 0.012539
[avi @ 042ed360] rfps: 2.916667 0.012539
[avi @ 042ed360] rfps: 3.000000 0.000000
[avi @ 042ed360] rfps: 3.083333 0.012539
[avi @ 042ed360] rfps: 3.083333 0.012539
[avi @ 042ed360] rfps: 5.916667 0.012539
[avi @ 042ed360] rfps: 5.916667 0.012539
[avi @ 042ed360] rfps: 6.000000 0.000000
[avi @ 042ed360] rfps: 6.000000 0.000000
[avi @ 042ed360] rfps: 6.083333 0.012539
[avi @ 042ed360] rfps: 6.083333 0.012539
[avi @ 042ed360] rfps: 8.916667 0.012539
[avi @ 042ed360] rfps: 8.916667 0.012539
[avi @ 042ed360] rfps: 9.000000 0.000000
[avi @ 042ed360] rfps: 9.083333 0.012539
[avi @ 042ed360] rfps: 9.083333 0.012539
[avi @ 042ed360] rfps: 11.916667 0.012539
[avi @ 042ed360] rfps: 11.916667 0.012539
[avi @ 042ed360] rfps: 12.000000 0.000000
[avi @ 042ed360] rfps: 12.000000 0.000000
[avi @ 042ed360] rfps: 12.083333 0.012539
[avi @ 042ed360] rfps: 12.083333 0.012539
[avi @ 042ed360] rfps: 14.916667 0.012539
[avi @ 042ed360] rfps: 14.916667 0.012539
[avi @ 042ed360] rfps: 15.000000 0.000000
[avi @ 042ed360] rfps: 15.083333 0.012539
[avi @ 042ed360] rfps: 15.083333 0.012539
[avi @ 042ed360] rfps: 17.916667 0.012539
[avi @ 042ed360] rfps: 17.916667 0.012539
[avi @ 042ed360] rfps: 18.000000 0.000000
[avi @ 042ed360] rfps: 18.000000 -0.000000
[avi @ 042ed360] rfps: 18.083333 0.012539
[avi @ 042ed360] rfps: 18.083333 0.012539
[avi @ 042ed360] rfps: 20.916667 0.012539
[avi @ 042ed360] rfps: 20.916667 0.012539
[avi @ 042ed360] rfps: 21.000000 0.000000
[avi @ 042ed360] rfps: 21.083333 0.012539
[avi @ 042ed360] rfps: 21.083333 0.012539
[avi @ 042ed360] rfps: 23.916667 0.012539
[avi @ 042ed360] rfps: 23.916667 0.012539
[avi @ 042ed360] rfps: 24.000000 0.000000
[avi @ 042ed360] rfps: 24.000000 -0.000000
[avi @ 042ed360] rfps: 24.083333 0.012539
[avi @ 042ed360] rfps: 24.083333 0.012539
[avi @ 042ed360] rfps: 26.916667 0.012539
[avi @ 042ed360] rfps: 26.916667 0.012539
[avi @ 042ed360] rfps: 27.000000 0.000000
[avi @ 042ed360] rfps: 27.083333 0.012539
[avi @ 042ed360] rfps: 27.083333 0.012539
[avi @ 042ed360] rfps: 29.916667 0.012539
[avi @ 042ed360] rfps: 29.916667 0.012539
[avi @ 042ed360] rfps: 30.000000 0.000000
[avi @ 042ed360] rfps: 30.000000 -0.000000
[avi @ 042ed360] rfps: 33.000000 0.000000
[avi @ 042ed360] rfps: 36.000000 0.000000
[avi @ 042ed360] rfps: 36.000000 -0.000000
[avi @ 042ed360] rfps: 39.000000 0.000000
[avi @ 042ed360] rfps: 42.000000 0.000000
[avi @ 042ed360] rfps: 42.000000 0.000000
[avi @ 042ed360] rfps: 45.000000 0.000000
[avi @ 042ed360] rfps: 48.000000 0.000000
[avi @ 042ed360] rfps: 48.000000 0.000000
[avi @ 042ed360] rfps: 51.000000 0.000000
[avi @ 042ed360] rfps: 54.000000 0.000000
[avi @ 042ed360] rfps: 54.000000 -0.000000
[avi @ 042ed360] rfps: 57.000000 0.000000
[avi @ 042ed360] rfps: 60.000000 0.000000
[avi @ 042ed360] rfps: 60.000000 0.000000
[avi @ 042ed360] rfps: 120.000000 0.000000
[avi @ 042ed360] rfps: 120.000000 -0.000000
[avi @ 042ed360] rfps: 240.000000 0.000000
[avi @ 042ed360] rfps: 240.000000 -0.000000
[avi @ 042ed360] rfps: 23.976024 0.001038
[avi @ 042ed360] rfps: 23.976024 0.001038
[avi @ 042ed360] rfps: 29.970030 0.001622
[avi @ 042ed360] rfps: 29.970030 0.001622
[avi @ 042ed360] rfps: 59.940060 0.006487
[avi @ 042ed360] rfps: 59.940060 0.006487
[avi @ 042ed360] rfps: 11.988012 0.000259
[avi @ 042ed360] rfps: 11.988012 0.000259
[avi @ 042ed360] rfps: 14.985015 0.000405
[avi @ 042ed360] rfps: 14.985015 0.000405
[avi @ 042ed360] rfps: 47.952048 0.004152
[avi @ 042ed360] rfps: 47.952048 0.004152
[avi @ 042ed360] After avformat_find_stream_info() pos: 105829 bytes read:175139 seeks:4 frames:15
Input #0, avi, from '..\mergedVideoOnly.avi':
  Metadata:
    encoder         : Lavf57.83.100
  Duration: 00:00:25.33, start: 0.000000, bitrate: 113 kb/s
    Stream #0:0, 15, 1/3: Video: scpr (SCPR / 0x52504353), rgb0, 1920x1200, 112 kb/s, 3 fps, 3 tbr, 3 tbn, 3 tbc
Successfully opened the file.
Parsing a group of options: input url " "\Storage\0030_0130.wav.
Successfully parsed a group of options.
Opening an input file: " "\Storage\1.wav.
[NULL @ 03be0180] Opening '" "\Storage\1.wav' for reading
[file @ 03be0820] Setting default whitelist 'file,crypto'
[wav @ 03be0180] Format wav probed with size=2048 and score=99
[wav @ 03be0180] Before avformat_find_stream_info() pos: 44 bytes read:65580 seeks:1 nb_streams:1
[wav @ 03be0180] probing stream 0 pp:32
[wav @ 03be0180] probing stream 0 pp:31
[wav @ 03be0180] probing stream 0 pp:30
[wav @ 03be0180] probing stream 0 pp:29
[wav @ 03be0180] probing stream 0 pp:28
[wav @ 03be0180] probing stream 0 pp:27
[wav @ 03be0180] probing stream 0 pp:26
[wav @ 03be0180] probing stream 0 pp:25
[wav @ 03be0180] probing stream 0 pp:24
[wav @ 03be0180] probing stream 0 pp:23
[wav @ 03be0180] probing stream 0 pp:22
[wav @ 03be0180] probing stream 0 pp:21
[wav @ 03be0180] probing stream 0 pp:20
[wav @ 03be0180] probing stream 0 pp:19
[wav @ 03be0180] probing stream 0 pp:18
[wav @ 03be0180] probing stream 0 pp:17
[wav @ 03be0180] probing stream 0 pp:16
[wav @ 03be0180] probing stream 0 pp:15
[wav @ 03be0180] probing stream 0 pp:14
[wav @ 03be0180] probing stream 0 pp:13
[wav @ 03be0180] probing stream 0 pp:12
[wav @ 03be0180] probing stream 0 pp:11
[wav @ 03be0180] probing stream 0 pp:10
[wav @ 03be0180] probing stream 0 pp:9
[wav @ 03be0180] probing stream 0 pp:8
[wav @ 03be0180] probing stream 0 pp:7
[wav @ 03be0180] probing stream 0 pp:6
[wav @ 03be0180] probing stream 0 pp:5
[wav @ 03be0180] probing stream 0 pp:4
[wav @ 03be0180] probing stream 0 pp:3
[wav @ 03be0180] probing stream 0 pp:2
[wav @ 03be0180] probing stream 0 pp:1
[wav @ 03be0180] probed stream 0
[wav @ 03be0180] parser not found for codec pcm_s16le, packets or times may be invalid.
[wav @ 03be0180] max_analyze_duration 5000000 reached at 5120000 microseconds st:0
[wav @ 03be0180] After avformat_find_stream_info() pos: 131116 bytes read:196652 seeks:1 frames:22
Guessed Channel Layout for Input Stream #1.0 : mono
Input #1, wav, from '" "\Storage\0030_0130.wav':
  Duration: 00:00:56.80, bitrate: 128 kb/s
    Stream #1:0, 22, 1/8000: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, mono, s16, 128 kb/s
Successfully opened the file.
Parsing a group of options: input url " "\Storage\2.wav.
Successfully parsed a group of options.
Opening an input file: " "\Storage\2.wav.
[NULL @ 03bed760] Opening '" "\Storage\2.wav' for reading
[file @ 03bb3100] Setting default whitelist 'file,crypto'
[wav @ 03bed760] Format wav probed with size=2048 and score=99
[wav @ 03bed760] Before avformat_find_stream_info() pos: 44 bytes read:65580 seeks:1 nb_streams:1
[wav @ 03bed760] probing stream 0 pp:32
[wav @ 03bed760] probing stream 0 pp:31
[wav @ 03bed760] probing stream 0 pp:30
[wav @ 03bed760] probing stream 0 pp:29
[wav @ 03bed760] probing stream 0 pp:28
[wav @ 03bed760] probing stream 0 pp:27
[wav @ 03bed760] probing stream 0 pp:26
[wav @ 03bed760] probing stream 0 pp:25
[wav @ 03bed760] probing stream 0 pp:24
[wav @ 03bed760] probing stream 0 pp:23
[wav @ 03bed760] probing stream 0 pp:22
[wav @ 03bed760] probing stream 0 pp:21
[wav @ 03bed760] probing stream 0 pp:20
[wav @ 03bed760] probing stream 0 pp:19
[wav @ 03bed760] probing stream 0 pp:18
[wav @ 03bed760] probing stream 0 pp:17
[wav @ 03bed760] probing stream 0 pp:16
[wav @ 03bed760] probing stream 0 pp:15
[wav @ 03bed760] probing stream 0 pp:14
[wav @ 03bed760] probing stream 0 pp:13
[wav @ 03bed760] probing stream 0 pp:12
[wav @ 03bed760] probing stream 0 pp:11
[wav @ 03bed760] probing stream 0 pp:10
[wav @ 03bed760] probing stream 0 pp:9
[wav @ 03bed760] probing stream 0 pp:8
[wav @ 03bed760] probing stream 0 pp:7
[wav @ 03bed760] probing stream 0 pp:6
[wav @ 03bed760] probing stream 0 pp:5
[wav @ 03bed760] probing stream 0 pp:4
[wav @ 03bed760] probing stream 0 pp:3
[wav @ 03bed760] probing stream 0 pp:2
[wav @ 03bed760] probing stream 0 pp:1
[wav @ 03bed760] probed stream 0
[wav @ 03bed760] parser not found for codec pcm_s16le, packets or times may be invalid.
[wav @ 03bed760] max_analyze_duration 5000000 reached at 5120000 microseconds st:0
[wav @ 03bed760] After avformat_find_stream_info() pos: 131116 bytes read:196652 seeks:1 frames:22
Guessed Channel Layout for Input Stream #2.0 : mono
Input #2, wav, from '" "\Storage\0130_0230.wav':
  Duration: 00:00:59.81, bitrate: 128 kb/s
    Stream #2:0, 22, 1/8000: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, mono, s16, 128 kb/s
Successfully opened the file.
Parsing a group of options: input url " "\Storage\3.wav.
Successfully parsed a group of options.
Opening an input file: " "\Storage\3.wav.
[NULL @ 03bfeea0] Opening '" "\Storage\3.wav' for reading
[file @ 03bfe8e0] Setting default whitelist 'file,crypto'
[wav @ 03bfeea0] Format wav probed with size=2048 and score=99
[wav @ 03bfeea0] Before avformat_find_stream_info() pos: 44 bytes read:65580 seeks:1 nb_streams:1
[wav @ 03bfeea0] probing stream 0 pp:32
[wav @ 03bfeea0] probing stream 0 pp:31
[wav @ 03bfeea0] probing stream 0 pp:30
[wav @ 03bfeea0] probing stream 0 pp:29
[wav @ 03bfeea0] probing stream 0 pp:28
[wav @ 03bfeea0] probing stream 0 pp:27
[wav @ 03bfeea0] probing stream 0 pp:26
[wav @ 03bfeea0] probing stream 0 pp:25
[wav @ 03bfeea0] probing stream 0 pp:24
[wav @ 03bfeea0] probing stream 0 pp:23
[wav @ 03bfeea0] probing stream 0 pp:22
[wav @ 03bfeea0] probing stream 0 pp:21
[wav @ 03bfeea0] probing stream 0 pp:20
[wav @ 03bfeea0] probing stream 0 pp:19
[wav @ 03bfeea0] probing stream 0 pp:18
[wav @ 03bfeea0] probing stream 0 pp:17
[wav @ 03bfeea0] probing stream 0 pp:16
[wav @ 03bfeea0] probing stream 0 pp:15
[wav @ 03bfeea0] probing stream 0 pp:14
[wav @ 03bfeea0] probing stream 0 pp:13
[wav @ 03bfeea0] probing stream 0 pp:12
[wav @ 03bfeea0] probing stream 0 pp:11
[wav @ 03bfeea0] probing stream 0 pp:10
[wav @ 03bfeea0] probing stream 0 pp:9
[wav @ 03bfeea0] probing stream 0 pp:8
[wav @ 03bfeea0] probing stream 0 pp:7
[wav @ 03bfeea0] probing stream 0 pp:6
[wav @ 03bfeea0] probing stream 0 pp:5
[wav @ 03bfeea0] probing stream 0 pp:4
[wav @ 03bfeea0] probing stream 0 pp:3
[wav @ 03bfeea0] probing stream 0 pp:2
[wav @ 03bfeea0] probing stream 0 pp:1
[wav @ 03bfeea0] probed stream 0
[wav @ 03bfeea0] parser not found for codec pcm_s16le, packets or times may be invalid.
[wav @ 03bfeea0] max_analyze_duration 5000000 reached at 5120000 microseconds st:0
[wav @ 03bfeea0] After avformat_find_stream_info() pos: 131116 bytes read:196652 seeks:1 frames:22
Guessed Channel Layout for Input Stream #3.0 : mono
Input #3, wav, from '" "\Storage\0230_0330.wav':
  Duration: 00:00:59.81, bitrate: 128 kb/s
    Stream #3:0, 22, 1/8000: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, mono, s16, 128 kb/s
Successfully opened the file.
detected 4 logical cores
[Parsed_adelay_0 @ 03c0c460] Setting 'delays' to value '30000|30000'
Parsing a group of options: output url adelay=91000|91000.
Successfully parsed a group of options.
Opening an output file: adelay=91000|91000.
[NULL @ 03c17640] Unable to find a suitable output format for 'adelay=91000|91000'
adelay=91000|91000: Invalid argument
[AVIOContext @ 042ee400] Statistics: 175139 bytes read, 4 seeks
[AVIOContext @ 03be0900] Statistics: 196652 bytes read, 1 seeks
[AVIOContext @ 03bca7e0] Statistics: 196652 bytes read, 1 seeks
[AVIOContext @ 03bfe9a0] Statistics: 196652 bytes read, 1 seeks


    


  • Error importing VideoFileClip from moviepy : AttributeError : 'PermissionError' object has no attribute 'message'

    11 mars 2017, par Tahlil

    I’m using jupyter notebook. I have also tried from anaconda console as well.

    Tried importing with both the ways shown below

    from moviepy.editor import VideoFileClip

    from moviepy.video.io.VideoFileClip import VideoFileClip

    Both of them gave me same error. Full trace is below

    AttributeError                            Traceback (most recent call last)
    in <module>()
         6 import glob
         7 import math
    ----> 8 from moviepy.editor import VideoFileClip
         9 from moviepy.video.io.VideoFileClip import VideoFileClip

    C:\Program Files\Anaconda3\lib\site-packages\moviepy\editor.py in <module>()
        20 # Clips
        21
    ---> 22 from .video.io.VideoFileClip import VideoFileClip
        23 from .video.io.ImageSequenceClip import ImageSequenceClip
        24 from .video.io.downloader import download_webfile

    C:\Program Files\Anaconda3\lib\site-packages\moviepy\video\io\VideoFileClip.py in <module>()
         1 import os
         2
    ----> 3 from moviepy.video.VideoClip import VideoClip
         4 from moviepy.audio.io.AudioFileClip import AudioFileClip
         5 from moviepy.Clip import Clip

    C:\Program Files\Anaconda3\lib\site-packages\moviepy\video\VideoClip.py in <module>()
        18
        19 import moviepy.audio.io as aio
    ---> 20 from .io.ffmpeg_writer import ffmpeg_write_image, ffmpeg_write_video
        21 from .io.ffmpeg_tools import ffmpeg_merge_video_audio
        22 from .io.gif_writers import (write_gif,

    C:\Program Files\Anaconda3\lib\site-packages\moviepy\video\io\ffmpeg_writer.py in <module>()
        13     DEVNULL = open(os.devnull, 'wb')
        14
    ---> 15 from moviepy.config import get_setting
        16 from moviepy.tools import verbose_print
        17

    C:\Program Files\Anaconda3\lib\site-packages\moviepy\config.py in <module>()
        49     success, err = try_cmd([FFMPEG_BINARY])
        50     if not success:
    ---> 51         raise IOError(err.message +
        52                  "The path specified for the ffmpeg binary might be wrong")
        53

    AttributeError: 'PermissionError' object has no attribute 'message'
    </module></module></module></module></module></module>

    Python version info

    Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    Running ffmpeg -version in a console gives me

    ffmpeg version N-83507-g8fa18e0 Copyright (c) 2000-2017 the FFmpeg developers
    built with gcc 5.4.0 (GCC)
    configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
    libavutil      55. 47.100 / 55. 47.100
    libavcodec     57. 80.100 / 57. 80.100
    libavformat    57. 66.102 / 57. 66.102
    libavdevice    57.  2.100 / 57.  2.100
    libavfilter     6. 73.100 /  6. 73.100
    libswscale      4.  3.101 /  4.  3.101
    libswresample   2.  4.100 /  2.  4.100
    libpostproc    54.  2.100 / 54.  2.100

    I’m running 64 bit version of Windows 10.

    I can’t find any solution anywhere and its driving me crazy ! Seems like its not finding the ffmpeg binary but I have put it in C :\ffmpeg\bin and added this to path environment variable. Followed the instruction from here.

  • Anomalie #3914 (Nouveau) : Saisie de date : PAs d’erreur si 31 février (prive/formulaire/dater.php)

    27 février 2017, par Timothée Garnaud

    Bonjour à tous,

    Il ne s’agit pas d’un grand problème à priori, juste du fait qu’un message d’erreur serait peut-être plus appréciable.

    La vérification des dates sur les articles (date de publication, date de rédaction antérieur). Utilise la fonction mktime pour vérifier la validité d’une date.
    Le problème c’est que la fonction mktime accepte une date comme ’31/02/2017’, qu’elle corrige automatiquement en 03/03/2017. Mais n’est-il pas mieux d’avertir l’utilisateur - qui ici voudrait prévoir une publication pour fin février - de son erreur ?

    Voici la fonction en cause (prive/formulaires/dater.php - ligne 217 sur SPIP 3.0)

    function dater_recuperer_date_saisie($post, $quoi="date") 
        if (!preg_match(’#^(? :(? :([0-9]1,2)[/-]) ?([0-9]1,2)[/-]) ?([0-9]4|[0-9]1,2)#’, $post, $regs))
            return ’’ ;
        if ($quoi=="date_redac") 
            if ($regs[3]<>’’ AND $regs[3] < 1001)
                $regs[3] += 9000 ;
    

    return array($regs[3],$regs[2],$regs[1]) ;

    else
    $t = mktime(0,0,0,$regs[2],$regs[1],$regs[3]) ;
    // si la date n’est pas valide selon mktime, la refuser
    if (!$t) return ’’ ;
    return array(date(’Y’,$t),date(’m’,$t),date(’d’,$t)) ;

    Je propose d’ajouter un appel à checkdate() dans la fonction ci-dessus (qui vérifie aussi les année bisextiles)

    function dater_recuperer_date_saisie($post, $quoi="date") 
        if (!preg_match(’#^(? :(? :([0-9]1,2)[/-]) ?([0-9]1,2)[/-]) ?([0-9]4|[0-9]1,2)#’, $post, $regs))
            return ’’ ;
        if ($quoi=="date_redac") 
            if ($regs[3]<>’’ AND $regs[3] < 1001)
                $regs[3] += 9000 ;
    

    return array($regs[3],$regs[2],$regs[1]) ;

    else
    if ( checkdate($regs[2],$regs[1],$regs[3]) )
    $t = mktime(0,0,0,$regs[2],$regs[1],$regs[3]) ;
    // si la date n’est pas valide selon mktime, la refuser
    if (!$t) return ’’ ;
    /* Le ligne ci-dessus ne servirait plus à rien du coup ? */
    return array(date(’Y’,$t),date(’m’,$t),date(’d’,$t)) ;

    else
    return ’’ ;