Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (48)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

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

  • Qu’est ce qu’un masque de formulaire

    13 juin 2013, par

    Un masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
    Chaque formulaire de publication d’objet peut donc être personnalisé.
    Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
    Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...)

Sur d’autres sites (10295)

  • FFmpeg : avcodec_encode_video() and JPEG images

    2 février 2012, par user105909

    I'm trying to encode a series of .jpg files into a video using the ffmpeg library, and I can't seem to get the frames to encode. (I have to use the ffmpeg library, and using ffmpeg from a command line is not an option in my case.)

    Except for the part where I'm trying to open JPG files as AVFrames, my code is more or less the same thing as found in api-example.c from the ffmpeg library. When I populate the frames as the example does, everything works as expected. In the code below, I fail to encode any frames. Obviously the trouble is related to how I'm opening the JPG files, but I can't figure out what.

    I'm opening the image like this :

    AVFrame* open_image(const char* imageFileName, int width, int height, long * bufSize)
    {
       AVFormatContext *pFormatCtx;

       if(av_open_input_file(&pFormatCtx, imageFileName, NULL, 0, NULL)!=0)
       {
           printf("Can't open image file '%s'\n", imageFileName);
           return NULL;
       }      

       AVCodecContext *pCodecCtx;

       pCodecCtx = pFormatCtx->streams[0]->codec;
       pCodecCtx->width = width;
       pCodecCtx->height = height;
       pCodecCtx->pix_fmt = PIX_FMT_YUV420P;

       // Find the decoder for the video stream
       AVCodec *pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
       if (!pCodec)
       {
           printf("Codec not found\n");
           return NULL;
       }

       // Open codec
       if(avcodec_open(pCodecCtx, pCodec)<0)
       {
           printf("Could not open codec\n");
           return NULL;
       }

       AVFrame *pFrame = avcodec_alloc_frame();
       if (!pFrame)
       {
           LOGV(TAG, "Can't allocate memory for AVFrame\n");
           return NULL;
       }

       int frameFinished;
       int numBytes;

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

       // ***
       *bufSize = numBytes;
       // ***

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

       avpicture_fill((AVPicture *) pFrame, buffer, PIX_FMT_YUVJ420P, pCodecCtx->width, pCodecCtx->height);

       // Read frame

       AVPacket packet;

       int framesNumber = 0;
       while (av_read_frame(pFormatCtx, &packet) >= 0)
       {
           if(packet.stream_index != 0)
               continue;

           int ret = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
           if (ret > 0)
           {
               sprintf(buf, "Frame is decoded, size %d", ret);
               LOGV(TAG, buf);
               pFrame->quality = 4;
               return pFrame;
           }
           else {
               // printf("Error [%d] while decoding frame: %s\n", ret, strerror(AVERROR(ret)));
               sprintf(buf, "Error %d decoding frame: %s", ret, strerror(AVERROR(ret)));
               LOGV(TAG, buf);
           }
       }
    }

    ...and attempting to encode them like this :

    DIR * dir = opendir(path);
    int i = 0;

    if (dir != NULL) {

       for(struct dirent *ent = readdir(dir); ent != NULL; ent = readdir(dir)) {
           fflush(stdout);

           printf("%s/%s", path, ent->d_name);
           LOGV(TAG, filename);

           // If not a jpg file, pass it over
           const char * ext = strrchr(filename, '.');
           if((!ext) || (strcmp(ext, ".jpg"))) {
               continue;
           }

           /*** NOTE: Is this where I've gone wrong? Bufsize is set in open_image based on av_picture_size() */
           long bufSize = 0L;
           AVFrame * frame = open_image(filename, width, height, &bufSize);
           if(frame) {
               // This is what it needs to do, and it does not work.
               // Causes:
               // Wrong format?
               // Wrong buffer size?
               uint8_t * picBuf = (uint8_t *)malloc(bufSize);

               out_size = avcodec_encode_video(c, picBuf, bufSize, frame);

               printf("encoding frame %3d (size=%5d)\n", i++, out_size);
               /** On the first image, out_size is 0. On the next, it's -1, and fails. */

               if(out_size < 0) {
                   printf("Error encoding frame");
                   return -6;
               }

               fwrite(picBuf, 1, bufSize, f);

               free(picBuf);
               av_free(frame);
           }
           else {
               printf("Couldn't open image");
               return -5;
           }
       }

       closedir(dir);
    }
    else {
       printf("Couldn't open directory %s\n", path);
       return -4;
    }

    Could someone point me in the right direction ?

  • Anomalie #2693 (Nouveau) : Page des statistiques

    8 mai 2012, par jluc -

    Testée sur spip-contrib, la page statistiques ?exec=stats_visites présente quelques petits problèmes : Le tableau de liens dans la 2eme partie de la page concentre une bonne part de mes remarques : Le titre "Afficher les visites pour les articles les plus populaires et pour les derniers articles (...)

  • How to generate gif from avi using ffmpeg ?

    19 décembre 2012, par Marconi

    I'm trying to extract a part of a video into an animated gif using the following command :

    ffmpeg -i video.avi -t 5 out.gif

    It generates an animated gif but the quality is insane. However when I generate gif image using :

    ffmpeg -i video.avi -t 10 out%d.gif

    It generates acceptable quality of gif images. How can i generate animated gif using the first command but the same quality as the second command ?