Recherche avancée

Médias (91)

Autres articles (31)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (5175)

  • Find video resolution and video duration of remote mediafile

    22 février 2012, par osgx

    I want to write an program which can find some metainformation of mediafile. I'm interested in popular video formats, such as avi, mkv, mp4, mov (may be other popular too). I want basically to get :

    • Video size (720, 1080, 360 etc)
    • Total runtime of video (may be not very exact)
    • Number of audio streams
    • Name of video codec
    • Name of audio codec

    There is already the mediainfo, but in my program I want to get information about remote file, which may be accessed via ftp, http, samba ; or even torrent (there are some torrent solutions, which allows to read not-yet downloaded file).

    MediaInfo library have no support of samba (smb ://) and mkv format (for runtime).

    Also, I want to know, how much data should be downloaded to get this information. I want not to download full videofile because I have no enough disk space.

    Is this information in the first 1 or 10 or 100 KiloBytes of the file ? Is it at predictable offset if I know the container name and total file size ?

    PS : Platform is Linux, Language is C/C++

  • ffmpeg c/c++ get frame count or timestamp and fps

    23 juin 2016, par broschb

    I am using ffmpeg to decode a video file in C. I am struggling to get either the count of the current frame I am decoding or the timestamp of the frame. I have read numerous posts that show how to calculate an estimated frame no based on the fps and frame timestamp, however I am not able to get either of those.

    What I need : fps of video file, timestamp of current frame or frame no(not calculated)

    What I have : I am able to get the time of the video using

    pFormatCtx->duration/AV_TIME_BASE

    I am counting the frames currently as I process them, and getting a current frame count, this is not going to work longterm though. I can get the total frame count for the file using

    pFormatCtx->streams[currentStream->videoStream]->nb_frames

    I have read this may not work for all streams, although it has worked for every stream I have tried.

    I have tried using the time_base.num and time_base.den values and packet.pts, but I can’t make any sense of the values that I am getting from those, so I may just need to understand better what those values are.

    Does anyone know of resources that show examples on how to get this values ?

  • php ming flash swf slideshow to mp4/avi

    19 août 2013, par Stefan

    After hours of searching and trying i finally got a nice script together that generates a good looking Flash .swf file with a nice transaction in between de images.
    It works great if you access the swf file directly in a browser, depending on the amount of images the flash created takes anywhere between 10 and 60 seconds.
    But when uploading to Youtube the movie created flashed by in one second.
    Because swf isnt really a accepted fileformat for Youtube we decided to convert the flash file to mp4 or avi using ffmpeg.
    Unfortunally that didnt work, it had the same effect as the youtube movie.
    We had a old version of ffmpeg and updated that to a recent version and tried to convert again with the same result.
    The main thing i see is that ffmpeg cant see the swf file duration and bitrate, they are both 'N/A' while were do set them in the php script.
    I thought it looked like the Metadata doesnt get written and i cant find anything on that regarding Ming.
    But i downloaded a phpclass that extracts the metadata from the swf and that tells me the framerate etc is getting set.

    Now i have to admit i havent really tested with the new version because the commandline options are a little different but ill work on that after i post this.
    In the previous version we tried setting the framerate of the source swf file, but that didnt work either.

    Anyone here that can has a idea ? it would be greatly appriciated.

    PHP Ming Script :

         $fps = 30;
            foreach($objects as $objectId => $images){
                   // START FLASH MOVIE
                   $m = new SWFMovie();
                   $m->setDimension($width, $height);
                   $m->setBackground(0, 0, 0);
                   $m->setRate($fps);
                   $m->setFrames(count($images)*202); //count(images)* 2 breaks *($fps*$breakTime)+22(fadeOut))

                   $i = 0;
                   foreach($images as $image){

                       // REMOVE THE BACKGROUND IMAGE
                       if($behind){
                           $m->remove($behind);
                       }
                       // # REMOVE

                       // LOAD NEW IMAGE
                       $img = new SWFBitmap(fopen($image,"rb"));
                       $pic = $m->add($img);
                       $pic->setdepth(3);
                       // # LOAD

                       // BREAK TIME
                       for($j=1;$j<=($fps*$breakTime);$j++){
                           $m->nextFrame();
                       }
                       $m->remove($pic);
                       // # BREAK

                       // LOAD THE NEXT IMAGE AS BACKGROUND, IF LAST IMAGE, LOAD FIRST
                       $nextBackgrondImage =($images[$i+1]) ? $images[$i+1] : $images[0] ;
                       $img = new SWFBitmap(fopen($nextBackgrondImage,"rb"));
                       $behind = $m->add($img);
                       $behind->setdepth(2);
                       // # LOAD

                       // AND FADE OUT AGAIN
                       $img = fadeOut($image, $width, $height);
                       $pic = $m->add($img);
                       $pic->setdepth(3);
                       // # FADE OUT

                       // BREAK TIME
                       for($j=1;$j<=($fps*$breakTime);$j++){
                           $m->nextFrame();
                       }
                       $m->remove($pic);
                       # BREAK
                       $i++;
                   }      
                   $m->save('./flash/'.$nvmId.'_'.$objectId.'.swf');  
               unset($m);
               }
    }

    FFMPEG version :

    root@server:~# ffmpeg -version
    \FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
     built on Aug 15 2013 20:43:21 with gcc 4.4.5
     configuration: --enable-libmp3lame --enable-libtheora --enable-libx264
     --enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads
     --enable-libvorbis --enable-gpl --enable-x11grab --enable-nonfree
     libavutil     50.36. 0 / 50.36. 0
     libavcore      0.16. 1 /  0.16. 1
     libavcodec    52.108. 0 / 52.108. 0
     libavformat   52.93. 0 / 52.93. 0
     libavdevice   52. 2. 3 / 52. 2. 3
     libavfilter    1.74. 0 /  1.74. 0
     libswscale     0.12. 0 /  0.12. 0
     libpostproc   51. 2. 0 / 51. 2. 0
    FFmpeg SVN-r26402
    libavutil     50.36. 0 / 50.36. 0
    libavcore      0.16. 1 /  0.16. 1
    libavcodec    52.108. 0 / 52.108. 0
    libavformat   52.93. 0 / 52.93. 0
    libavdevice   52. 2. 3 / 52. 2. 3
    libavfilter    1.74. 0 /  1.74. 0
    libswscale     0.12. 0 /  0.12. 0
    libpostproc   51. 2. 0 / 51. 2. 0

    FFMPEG command

    root@server:~# ffmpeg -r 30 -i /pathTo/flash/73003_8962011.swf -r 30 -ar 22050 -b 2048k /pathTo/flash/output.avi
    FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
     built on Aug 15 2013 20:43:21 with gcc 4.4.5
     configuration: --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid
     --enable-libfaac --enable-pthreads --enable-libvorbis --enable-gpl --enable-x11grab --enable-nonfree
     libavutil     50.36. 0 / 50.36. 0
     libavcore      0.16. 1 /  0.16. 1
     libavcodec    52.108. 0 / 52.108. 0
     libavformat   52.93. 0 / 52.93. 0
     libavdevice   52. 2. 3 / 52. 2. 3
     libavfilter    1.74. 0 /  1.74. 0
     libswscale     0.12. 0 /  0.12. 0
     libpostproc   51. 2. 0 / 51. 2. 0
    [swf @ 0x1ca1510] Estimating duration from bitrate, this may be inaccurate
    Input #0, swf, from '/pathTo/flash/73003_8962011.swf':
     Duration: N/A, bitrate: N/A
       Stream #0.0: Video: mjpeg, yuvj420p, 360x480, 30 fps, 30 tbr, 30 tbn, 30 tbc
    File '/pathTo/output.avi' already exists. Overwrite ? [y/N] y
    [buffer @ 0x1cb42d0] w:360 h:480 pixfmt:yuvj420p
    [ffsink @ 0x1cb4570] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
    [scale @ 0x1cb4870] w:360 h:480 fmt:yuvj420p -> w:360 h:480 fmt:yuv420p flags:0xa0000004
    Output #0, avi, to '/pathTo/flash/output.avi':
     Metadata:
       ISFT            : Lavf52.93.0
       Stream #0.0: Video: mpeg4, yuv420p, 360x480, q=2-31, 2048 kb/s, 30 tbn, 30 tbc
    Stream mapping:
     Stream #0.0 -> #0.0
    Press [q] to stop encoding
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    Input Stream #0.0 frame size changed to 640x480, yuvj420p
    frame=   39 fps=  0 q=17.5 Lsize=     524kB time=1.30 bitrate=3304.9kbits/s
    video:518kB audio:0kB global headers:0kB muxing overhead 1.250735%

    Metadata :

    DEBUG: Data values initialized
    DEBUG: Opened ./flash/98701_8965910.swf
    DEBUG: Read MAGIC signature: FWS
    DEBUG: Read VERSION: 9
    DEBUG: Partial SIZE read: 225
    DEBUG: Partial SIZE read: 28928
    DEBUG: Partial SIZE read: 1441792
    DEBUG: Partial SIZE read: 0
    DEBUG: Total SIZE: 1470945
    DEBUG: RECT field size: 15 bits
    DEBUG: RECT binary value: 000000000000000 (0)
    DEBUG: RECT binary value: 011001000000000 (640)
    DEBUG: RECT binary value: 000000000000000 (0)
    DEBUG: RECT binary value: 010010110000000 (480)
    DEBUG: Frame rate: 30.0
    DEBUG: Frames: 2222
    DEBUG: Finished processing ./flash/98701_8965910.swf
    FILE: ./flash/98701_8965910.swf
    MAGIC: FWS
    VERSION: 9
    SIZE: 1470945 bytes
    WIDHT: 640
    HEIGHT: 480
    FPS: 30.0 Frames/s
    FRAMES: 2222 FRAME