Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (111)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (7666)

  • How to paint on a video frame by frame and save it using flutter ?

    20 septembre 2022, par Maxence Bourdin

    The goal is to analyse a video frame by frame and apply a painting on each of those frames. Then save the video and be able to play it.

    


    Do you know if such a thing is possible in flutter ? I've heard about ffmpeg package but I'm not too sure if that's possible with it.

    


  • How to save image from the middle of a video ?

    29 octobre 2017, par puppon -su

    I need to make a thumbnail for a video, to seek to the 25% of a video and save the image. Here is what I’m doing right now, but it only saves black image.

    #include

    #include <libavformat></libavformat>avformat.h>
    #include <libavutil></libavutil>dict.h>

    int main (int argc, char **argv)
    {

       av_register_all();

       AVFormatContext *pFormatCtx = avformat_alloc_context();

       int res;

       res = avformat_open_input(&amp;pFormatCtx, "test.mp4", NULL, NULL);
       if (res) {
           return res;
       }


       avformat_find_stream_info(pFormatCtx, NULL);

       int64_t duration = pFormatCtx->duration;


       // Find the first video stream
       int videoStream=-1;
       for(int i=0; inb_streams; i++) {
           if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
               videoStream=i;
               break;
           }
       }
       if(videoStream==-1) {
           return -1;
       }

       AVCodecContext *pCodecCtxOrig = NULL;

       // Get a pointer to the codec context for the video stream
       pCodecCtxOrig=pFormatCtx->streams[videoStream]->codec;


       AVCodec *pCodec = NULL;
       // Find the decoder for the video stream
       pCodec=avcodec_find_decoder(pCodecCtxOrig->codec_id);
       if(pCodec==NULL) {
           fprintf(stderr, "Unsupported codec!\n");
           return -1; // Codec not found
       }


       AVCodecContext *pCodecCtx = NULL;
       // Copy context
       pCodecCtx = avcodec_alloc_context3(pCodec);
       if(avcodec_copy_context(pCodecCtx, pCodecCtxOrig) != 0) {
           fprintf(stderr, "Couldn't copy codec context");
           return -1; // Error copying codec context
       }


       // Open codec
       if(avcodec_open2(pCodecCtx, pCodec, NULL)&lt;0) {
           return -1; // Could not open codec
       }


       AVFrame *pFrame = NULL;

       pFrame=av_frame_alloc();

       AVFrame *pFrameRGB = NULL;

       pFrameRGB=av_frame_alloc();



       // Determine required buffer size and allocate buffer
       int numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width,
                                   pCodecCtx->height);

       uint8_t *buffer = NULL;
       buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));


       // Assign appropriate parts of buffer to image planes in pFrameRGB
       // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
       // of AVPicture
       res = avpicture_fill((AVPicture *)pFrameRGB, buffer, AV_PIX_FMT_RGB24,
                       pCodecCtx->width, pCodecCtx->height);
       if (res&lt;0) {
           return;
       }



       // I've set this number randomly
       res = av_seek_frame(pFormatCtx, videoStream, 20.0, AVSEEK_FLAG_FRAME);
       if (res&lt;0) {
           return;
       }



       AVPacket packet;
       while(1) {
           av_read_frame(pFormatCtx, &amp;packet);
           if(packet.stream_index==videoStream) {
               int frameFinished;
               avcodec_decode_video2(pCodecCtx, pFrame, &amp;frameFinished, &amp;packet);
               if(frameFinished) {
                   SaveFrame(pFrameRGB, pCodecCtx->width,
                       pCodecCtx->height);
                   break;
               }

           }
       }


       avformat_close_input(&amp;pFormatCtx);
       return 0;
    }



    void SaveFrame(AVFrame *pFrame, int width, int height) {
     FILE *pFile;
     char szFilename[] = "frame.ppm";
     int  y;

     // Open file
     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);
    }

    I was following this tutorial http://dranger.com/ffmpeg/tutorial01.html http://dranger.com/ffmpeg/tutorial07.html . It says that it was updated in 2015, but there already are some warnings about deprecated code, for example here : pFormatCtx->streams[i]->codec.

    I got video duration (in microseconds), but I don’t understand what I should send to av_seek_frame. Can I somehow use frame number for both duration and seeking, instead of time ?

  • mov : Save number of stsd elements after stream extradata allocation

    29 juin 2016, par Vittorio Giovara
    mov : Save number of stsd elements after stream extradata allocation
    

    Avoid freeing an unallocated array in mov_read_close() in case
    of a malloc failure.

    Signed-off-by : Vittorio Giovara <vittorio.giovara@gmail.com>

    • [DBH] libavformat/mov.c