Recherche avancée

Médias (91)

Autres articles (37)

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

  • Copy a rectangular area from AVFrame - ffmpeg

    5 février 2013, par Marty

    I am trying to pull out a rectangular area of an AVFrame and have started on a function that will do so. I'm only interested in using AVFrames that are format PIX_FMT_RGB24. I may be reinventing the wheel a bit here too, so please jump in if there is already a function to do this. So far my function looks like this :

    AVFrame * getRGBsection(AVFrame *pFrameRGB, const int start_x, const int start_y, const int w, const int h) {

    AVFrame *pFrameSect;
    int numBytes;
    uint8_t *mb_buffer;

    pFrameSect = avcodec_alloc_frame();
    numBytes = avpicture_get_size(PIX_FMT_RGB24, w, h);
    mb_buffer = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t));
    avpicture_fill((AVPicture *) pFrameSect, mb_buffer, PIX_FMT_RGB24, w, h);

    int curY, curX, i = 0;
    for (curY = start_y ; curY < (start_y + h); curY++) {

       for (curX = start_x; curX < (start_x + w); curX++) {

           int curIndex = curX * 3 + curY * pFrameRGB->linesize[0];

           pFrameSect->data[0][i] = pFrameRGB->data[0][curIndex];
           pFrameSect->data[0][i + 1] = pFrameRGB->data[0][curIndex + 1];
           pFrameSect->data[0][i + 2] = pFrameRGB->data[0][curIndex + 2];

           i += 3;

       }

    }

    return pFrameSect;

    }

    The function seems to work when I start at (0,0) (I think) but when I move elsewhere in the image it outputs colors similar to what should be there but isn't right. I think I am very close here, can anyone offer guidance ?

  • Saving scatterplot animations with matplotlib produces blank video file

    1er avril 2013, par user2175850

    I am having a very similar problem to this question

    but the suggested solution doesn't work for me.

    I have set up an animated scatter plot using the matplotlib animation module. This works fine when it is displaying live. I would like to save it to an avi file or something similar. The code I have written to do this does not error out but the video it produces just shows a blank set of axes or a black screen. I've done several checks and the data is being run and figure updated it's just not getting saved to video...

    I tried removing "animated=True" and "blit=True" as suggested in this question but that did not fix the problem.

    I have placed the relevant code below but can provide more if necessary. Could anyone suggest what I should do to get this working ?

    def initAnimation(self):
           rs, cfgs = next(self.jumpingDataStreamIterator)    
           #self.scat = self.axAnimation.scatter(rs[0], rs[1], c=cfgs[0], marker='o')
           self.scat = self.axAnimation.scatter(rs[0], rs[1], c=cfgs[0], marker='o', animated=True)
           return self.scat,


    def updateAnimation(self, i):
       """Update the scatter plot."""
       rs, cfgs = next(self.jumpingDataStreamIterator)
       # Set x and y data...
       self.scat.set_offsets(rs[:2,].transpose())
       #self.scat = self.axAnimation.scatter(rs[0], rs[1], c=cfgs[0], animated=True)
       # Set sizes...
       #self.scat._sizes = 300 * abs(data[2])**1.5 + 100
       # Set colors..
       #self.scat.set_array(cfgs[0])
       # We need to return the updated artist for FuncAnimation to draw..
       # Note that it expects a sequence of artists, thus the trailing comma.
       matplotlib.pyplot.draw()
       return self.scat,

    def animate2d(self, steps=None, showEvery=50, size = 25):
       self.figAnimation, self.axAnimation = matplotlib.pyplot.subplots()
       self.axAnimation.set_aspect("equal")
       self.axAnimation.axis([-size, size, -size, size])
       self.jumpingDataStreamIterator = self.jumpingDataStream(showEvery)

       self.univeseAnimation = matplotlib.animation.FuncAnimation(self.figAnimation,
                               self.updateAnimation, init_func=self.initAnimation,
                               blit=True)
       matplotlib.pyplot.show()

    def animate2dVideo(self,fileName=None, steps=10000, showEvery=50, size=25):
       self.figAnimation, self.axAnimation = matplotlib.pyplot.subplots()
       self.axAnimation.set_aspect("equal")
       self.axAnimation.axis([-size, size, -size, size])
       self.Writer = matplotlib.animation.writers['ffmpeg']
       self.writer = self.Writer(fps=1, metadata=dict(artist='Universe Simulation'))
       self.jumpingDataStreamIterator = self.jumpingDataStream(showEvery)

       self.universeAnimation = matplotlib.animation.FuncAnimation(self.figAnimation,
                               self.updateAnimation, scipy.arange(1, 25), init_func=self.initAnimation)

       self.universeAnimation.save('C:/universeAnimation.mp4', writer = self.writer)
  • YUV420p to other formats, color shift problems

    1er juin 2013, par Sam

    So I'm writing a color detection application using an AR Drone. The drone sends my python/opencv socket server an image from its camera in YUV420p format.

    What I do to access the image as an opencv IPLImage is the following (and yes this is inefficient but I didn't / don't want to have to write new conversion tools myself) :

    1. Save the yuv image to a file (some_image.yuv)
    2. subprocess.call(insert ffmpeg call here)
    3. Read the resultant file (bmp, png, it doesn't matter) back in using cv.LoadImage

    My problem right now is a very noticable color shift. I'm waving a red felt sheet in these pictures. The first one shows a heavy yellow tint. The second isn't as bad but is very rare — mostly when I have the red sheet it's heavily tinted.

    I'm wondering both of these things :

    1. if there's either a better way to do this
    2. If the color tinting issue can be resolved

    My ffmpeg conversion line looks something like

    ffmpeg -s 640x480 -vcodec rawvideo -f rawvideo -pix_fmt yuv420p -i image.yuv -vcodec bmp -f image2 output.bmp

    I've also tried :

    ffmpeg -f rawvideo -s 640x480 -pix_fmt yuv420p -vf colormatrix=bt709:bt601 -i image.yuv -f image -vcodec png output.png

    The color shift is always there, unfortunately !

    The color shift is my big problem right now as I later convert the image to HSV and use thresholding to choose a color range that works for me.