Recherche avancée

Médias (91)

Autres articles (99)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie 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 (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

Sur d’autres sites (8201)

  • Why does calling ffmpeg from python's popen break screen capture functionality ?

    4 mars 2016, par Jabb

    I am trying to create screen captures from mp4 files in python.
    Calling ffmpeg on the command line works fine. But as soon, as I issue the same command through python "popen", functionality breaks with an error that ffmpeg cannot find the moov atom. Can anyone explain this to me ?

    This is how I call ffmpeg from python :

    def ffmpegGetScreenshot(self,inputFilename,index,startTime):
       my_env = os.environ.copy()
       my_env.update({'PATH': '/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'})

       filename = inputFilename.split("/")[1]
       directory = inputFilename.split("/")[0]
       if os.path.isfile('videoscreenshots/'+filename+"_cs"+str(index)+".jpg"):
           return 'videoscreenshots/'+filename+"_cs"+str(index)+".jpg"
       print "get screenshots for: " + inputFilename
       command = [ FFMPEG_BIN,
                   '-y',
                   '-i', inputFilename,
                   '-ss', str(int(startTime)),
                   '-vframes', '1',
                   #'-loglevel','quiet',
                   'videoscreenshots/'+filename+"_cs"+str(index)+".jpg"
                   ]
       pipe = sp.Popen(command, env=my_env,stdin = sp.PIPE,stdout = sp.PIPE, stderr=None)
       print command

       return 'videoscreenshots/'+filename+"_cs"+str(index)+".jpg"

    Result :

    ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.2 (Debian 4.9.2-10)
     configuration: --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libspeex --enable-shared --enable-pthreads --enable-libopenjpeg --enable-libfaac --enable-nonfree
     libavutil      54. 27.100 / 54. 27.100
     libavcodec     56. 41.100 / 56. 41.100
     libavformat    56. 36.100 / 56. 36.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 16.101 /  5. 16.101
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x652120] moov atom not found
    videochunks/test.mp4: Invalid data found when processing input
    test.mp4

    This is the same command called on the console

    /usr/local/bin/ffmpeg -y -i videochunks/test.mp4 -ss 9 -vframes 1 videoscreenshots/test.mp4_cs2.jpg

    Result :

    root@3:/app# /usr/local/bin/ffmpeg -y -i videochunks/test.mp4 -ss 9 -vframes 1 videoscreenshots/test.mp4_cs2.jpg
    ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.2 (Debian 4.9.2-10)
     configuration: --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libspeex --enable-shared --enable-pthreads --enable-libopenjpeg --enable-libfaac --enable-nonfree
     libavutil      54. 27.100 / 54. 27.100
     libavcodec     56. 41.100 / 56. 41.100
     libavformat    56. 36.100 / 56. 36.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 16.101 /  5. 16.101
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videochunks/test.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : Test
       composer        : Test
       album           : Test
       encoder         : Lavf56.36.100
     Duration: 00:00:10.01, start: 0.000000, bitrate: 520 kb/s
       Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 4:3 DAR 16:9], 436 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 97 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    [swscaler @ 0x648260] deprecated pixel format used, make sure you did set range correctly
    Output #0, image2, to 'videoscreenshots/test_cs2.jpg':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : Test
       composer        : Test
       album           : Test
       encoder         : Lavf56.36.100
       Stream #0:0(und): Video: mjpeg, yuvj420p(pc), 320x240 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc56.41.100 mjpeg
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
    Press [q] to stop, [?] for help
    frame=    1 fps=0.0 q=3.9 Lsize=N/A time=00:00:00.04 bitrate=N/A
    video:11kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
  • Read Outputinformation of ffmpeg-process runned from java

    7 juillet 2015, par Sebastian Röher

    I want to read out the information about a videofile loaded with ffmpeg.
    The output in the console from ffmpeg :

    [sebastian@ULBP2681 ~]$ ffmpeg -i /mnt/Speicherschwein/workspace/testVideos/00-50-C2-1D-7F-85_005.avi
    ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 5.1.0 (GCC)
     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-shared --enable-version3 --enable-x11grab
     libavutil      54. 27.100 / 54. 27.100
     libavcodec     56. 41.100 / 56. 41.100
     libavformat    56. 36.100 / 56. 36.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 16.101 /  5. 16.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.100 /  1.  2.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, avi, from '/mnt/Speicherschwein/workspace/testVideos/00-50-C2-1D-7F-85_005.avi':
     Duration: 00:00:21.12, start: 0.000000, bitrate: 303 kb/s
       Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 512x512 [SAR 1:1 DAR 1:1], 268 kb/s, 50 fps, 50 tbr, 50 tbn, 50 tbc

    The Information wich I want to have in Duration.

    So now my Problem :
    I run ffmpeg via

    String command = "ffmpeg -i " + absolutePath;
    Process processDuration = Runtime.getRuntime().exec(command);

    and i need to read out the console output (which is not printet out in console) into a Sting.

    I tried to read from the outputStream but this doesn’t seem to work eather the inputStream doesn’t work.

    Can anyone give me hint how I can read out the console-output of a process runned via java Runtime.getRuntime().exec(command); ?

  • ffmpeg determine correct codec to use

    6 janvier 2015, par nha

    I am trying to use .y4m files that I feed into Chrome for playing.
    This is the only format that I can use.

    I have a set of .y4m files that are working for my use case, taken from here.
    For example let’s say that I use the file mobile_qcif_7.5fps.y4m.

    I also have a .mp4 file (specifically the sample small.mp4 file from techslides ). I know how to convert small.mp4 to small.y4m with the following command :

    ffmpeg -y -i small.mp4 small.y4m

    I would like the resulting file to be accepted by Chrome, just like the other file.
    What options should I use (and how to find them) ?

    Additional information

    ffprobe gives :

    $ ffprobe small.y4m
    avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    [yuv4mpegpipe @ 0x23160c0] Estimating duration from bitrate, this may be inaccurate
    Input #0, yuv4mpegpipe, from 'small.y4m':
     Duration: N/A, bitrate: N/A
       Stream #0.0: Video: rawvideo, yuv420p, 560x320, 30 fps, 30 tbr, 30 tbn, 30 tbc


    $ ffprobe mobile_qcif_7.5fps.y4m
    avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    [yuv4mpegpipe @ 0x1e080c0] max_analyze_duration reached
    [yuv4mpegpipe @ 0x1e080c0] Estimating duration from bitrate, this may be inaccurate
    Input #0, yuv4mpegpipe, from 'mobile_qcif_7.5fps.y4m':
     Duration: N/A, bitrate: N/A
       Stream #0.0: Video: rawvideo, yuv420p, 176x144, PAR 128:117 DAR 1408:1053, 7.50 fps, 7.50 tbr, 7.50 tbn, 7.50 tbc

    OS : I am using ffmpeg in Ubuntu 13.10 from the default repository : I ran sudo apt-get install ffmpeg libavcodec-extra-53

    Complete console output

    $ ffmpeg -y -i small.mp4 small.y4m
    ffmpeg version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : HandBrake 0.9.4 2009112300
     Duration: 00:00:05.56, start: 0.000000, bitrate: 551 kb/s
       Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
       Metadata:
         creation_time   : 2010-03-20 21:29:11
       Stream #0.1(eng): Audio: aac, 48000 Hz, mono, s16, 83 kb/s
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    [buffer @ 0x7274e0] w:560 h:320 pixfmt:yuv420p
    Output #0, yuv4mpegpipe, to 'small.y4m':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : Lavf53.21.1
       Stream #0.0(und): Video: rawvideo, yuv420p, 560x320, q=2-31, 200 kb/s, 90k tbn, 30 tbc
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    Stream mapping:
     Stream #0.0 -> #0.0
    Press ctrl-c to stop encoding
    frame=  166 fps=  0 q=0.0 Lsize=   43576kB time=5.53 bitrate=64513.5kbits/s    
    video:0kB audio:0kB global headers:0kB muxing overhead inf%

    Head of the files

    Not sure if this is relevant, but the text content of both files begin like that :

    mobile_qcif_7.5fps.y4m
    YUV4MPEG2 W176 H144 F15:2 Ip A128:117
    FRAME

    small.y4m (invalid)
    YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
    FRAME

    Additional experiment

    Taking the sample mobile_qcif_7.5fps.y4m, turning it into a .mp4 file and then back into a .y4m produces an invalid file (at least for Chrome).

    Answer to comments in the answer of @SirDarius

    Following the suggestion of @SirDarius ; I tried the following commands.
    They failed to produce a valid file.

    # [COMMAND]   # [RESULT] [HEADER]
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv444p -y small_yuv444p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C444 XYSCSS=444
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv422p -y small_yuv422p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C422 XYSCSS=422
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p -y small_yuv420p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv411p -y small_yuv411p.y4m   # KO   YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C411 XYSCSS=411

    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p9 -y small_yuv420p9.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p9 XYSCSS=420P9
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p12 -y small_yuv420p12.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p12 XYSCSS=420P12
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p14 -y small_yuv420p14.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p14 XYSCSS=420P14
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p16 -y small_yuv420p16.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p16 XYSCSS=420P16

    When trying other formats (like yuv420p12be, which was in the output of -pix_fmts), I had the following output (hence my previous trials) :

    $  ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p12be -y small_yuv420p12be.y4m
    ffmpeg version N-68884-g3ebd76a Copyright (c) 2000-2015 the FFmpeg developers
     built on Jan  6 2015 11:03:21 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
     configuration:
     libavutil      54. 16.100 / 54. 16.100
     libavcodec     56. 19.100 / 56. 19.100
     libavformat    56. 18.100 / 56. 18.100
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  6.100 /  5.  6.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x21d0220] overread end of atom 'colr' by 1 bytes
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : HandBrake 0.9.4 2009112300
     Duration: 00:00:05.57, start: 0.000000, bitrate: 551 kb/s
       Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
         encoder         : JVT/AVC Coding
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 83 kb/s (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    [yuv4mpegpipe @ 0x21d8180] ERROR: yuv4mpeg can only handle yuv444p, yuv422p, yuv420p, yuv411p and gray8 pixel formats. And using 'strict -1' also yuv444p9, yuv422p9, yuv420p9, yuv444p10, yuv422p10, yuv420p10, yuv444p12, yuv422p12, yuv420p12, yuv444p14, yuv422p14, yuv420p14, yuv444p16, yuv422p16, yuv420p16 and gray16 pixel formats. Use -pix_fmt to select one.
    Output #0, yuv4mpegpipe, to 'small_yuv420p12be.y4m':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       encoder         : Lavf56.18.100
       Stream #0:0(und): Video: rawvideo ([12][11]3Y / 0x59330B0C), yuv420p12be, 560x320, q=2-31, 200 kb/s, 7.50 fps, 7.50 tbn, 7.50 tbc (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
         encoder         : Lavc56.19.100 rawvideo
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
    Could not write header for output file #0 (incorrect codec parameters ?): Input/output error

    After that, I also tried to edit with an hexadecimal editor (bless) the small_yuv420p.y4m file. I replace C420mpeg2 by C420, and the file was accepted by Chrome.
    What does the number in 420p[number] correspond to ? It is not explained there.
    Is there any way to make ffmpeg output this kind of header files ?

    @SirDarius, thank you again for your help.

    The question

    (in case you forgot after this text blob)

    How can I convert the small.mp4 into a small.y4m file that has the same properties as the mobile_qcif_7.5fps.y4m file ?