Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (52)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (8317)

  • Convert individual pixel values from RGB to YUV420 and save the frame - C++

    24 mars 2014, par learner

    I have been working with RGB->YUV420 conversion for sometime using the FFmpeg library. Already tried the sws_scale functionality but its not working well. Now, I have decided to convert each pixel individually, using colorspace conversion formulae. So, following is the code that gets me few frames and allows me to access individual R,G,B values of each pixel :

    // Read frames and save first five frames to disk
       i=0;
       while((av_read_frame(pFormatCtx, &packet)>=0) && (i<5))
       {
           // Is this a packet from the video stream?
           if(packet.stream_index==videoStreamIdx)
           {  
               /// Decode video frame            
               avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);

               // Did we get a video frame?
               if(frameFinished)
               {
                   i++;
                   sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data,
                             pFrame->linesize, 0, pCodecCtx->height,
                             pFrameRGB->data, pFrameRGB->linesize);

                   int x, y, R, G, B;
                   uint8_t *p = pFrameRGB->data[0];
                   for(y = 0; y < h; y++)
                   {  
                       for(x = 0; x < w; x++)
                       {
                           R = *p++;
                           G = *p++;
                           B = *p++;
                           printf(" %d-%d-%d ",R,G,B);
                       }
                   }

                   SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, i);
               }
           }

           // Free the packet that was allocated by av_read_frame
           av_free_packet(&packet);
       }

    I read online that to convert RGB->YUV420 or vice-versa, one should first convert to YUV444 format. So, its like : RGB->YUV444->YUV420. How do I implement this in C++ ?

    Also, here is the SaveFrame() function used above. I guess this will also have to change a little since YUV420 stores data differently. How to take care of that ?

    void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame)
    {
       FILE *pFile;
       char szFilename[32];
       int  y;

       // Open file
       sprintf(szFilename, "frame%d.ppm", iFrame);
       pFile=fopen(szFilename, "wb");
       if(pFile==NULL)
           return;

       // Write header
       fprintf(pFile, "P6\n%d %d\n255\n", width, height);

       // Write pixel data
       for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);

       // Close file
       fclose(pFile);
    }

    Can somebody please suggest ? Many thanks !!!

  • arm : vp9mc : Load only 12 pixels in the 4 pixel wide horizontal filter

    3 janvier, par Janne Grunau
    arm : vp9mc : Load only 12 pixels in the 4 pixel wide horizontal filter
    

    This reduces the amount the horizontal filters read beyond the filter
    width to a consistent 1 pixel. The data is not used so this is usually
    not noticeable. It becomes a problem when the application allocates
    frame buffers only for the aligned picture size and the end of it is at
    a page boundary. This happens for picture sizes which are a multiple of
    the page size like 1280x640. The frame buffer allocation is based on
    its most likely done via mmap + MAP_ANONYMOUS so start and end of the
    buffer are page aligned and the previous and next page are not
    necessarily mapped.
    This mirrors the aarch64 change.

    Signed-off-by : Janne Grunau <janne-ffmpeg@jannau.net>
    Signed-off-by : Ronald S. Bultje <rsbultje@gmail.com>

    • [DH] libavcodec/arm/vp9mc_neon.S
  • aarch64 : vp9mc : Load only 12 pixels in the 4 pixel wide horizontal filter

    3 janvier, par Janne Grunau
    aarch64 : vp9mc : Load only 12 pixels in the 4 pixel wide horizontal filter
    

    This reduces the amount the horizontal filters read beyond the filter
    width to a consistent 1 pixel. The data is not used so this is usually
    not noticeable. It becomes a problem when the application allocates
    frame buffers only for the aligned picture size and the end of it is at
    a page boundary. This happens for picture sizes which are a multiple of
    the page size like 1280x640. The frame buffer allocation is based on
    its most likely done via mmap + MAP_ANONYMOUS so start and end of the
    buffer are page aligned and the previous and next page are not
    necessarily mapped.
    Under these conditions like seen by Firefox a read beyond the end of the
    buffer results in a segfault.
    After the over-read is reduced to a single pixel it's reasonable to use
    VP9's emulated edge motion compensation for this.

    Fixes : https://bugzilla.mozilla.org/show_bug.cgi?id=1881185
    Signed-off-by : Janne Grunau <janne-ffmpeg@jannau.net>
    Signed-off-by : Ronald S. Bultje <rsbultje@gmail.com>

    • [DH] libavcodec/aarch64/vp9mc_neon.S