Recherche avancée

Médias (1)

Mot : - Tags -/getid3

Autres articles (105)

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

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

  • Monitoring de fermes de MediaSPIP (et de SPIP tant qu’à faire)

    31 mai 2013, par

    Lorsque l’on gère plusieurs (voir plusieurs dizaines) de MediaSPIP sur la même installation, il peut être très pratique d’obtenir d’un coup d’oeil certaines informations.
    Cet article a pour but de documenter les scripts de monitoring Munin développés avec l’aide d’Infini.
    Ces scripts sont installés automatiquement par le script d’installation automatique si une installation de munin est détectée.
    Description des scripts
    Trois scripts Munin ont été développés :
    1. mediaspip_medias
    Un script de (...)

Sur d’autres sites (6827)

  • Revision c29c613400 : Merge "vp8enc : Prevent out of bounds memory access."

    28 janvier 2015, par Alex Converse

    Merge "vp8enc : Prevent out of bounds memory access."

  • Revision c0856b98cc : Merge "Fixing out of bounds access in frame_refs[] array."

    30 janvier 2014, par Yaowu Xu

    Merge "Fixing out of bounds access in frame_refs[] array."

  • Access Violation at avcodec_encode_video2()

    23 mars 2016, par bot1131357

    I am trying to understand the FFmpeg API by following online examples available but it seems that the FFmpeg API has changed over time, making most of the examples obsolete ; I hope some of you can help me make more sense of the FFmpeg API examples.

    I am currently trying to understand the encoding-example from FFmpeg, but I am getting an Access Violation error at this line :

    out_size = avcodec_encode_video2(codecCtx, &avpkt, picture, &got_packet);

    where I get "Unhandled exception at 0x77c29e42 in test01_encode.exe : 0xC0000005 : Access violation reading location 0xccccccc8." from Visual Studio.

    I understand that avcodec_encode_video() is deprecated in favour of avcodec_encode_video2(), which uses AVPacket. I’ve allocated a buffer to data member of AVPacket and set its size, but still the same. What did I miss ?

    The library that I’m using is ffmpeg-20160219-git-98a0053-win32-dev. I would really really appreciate if you could help me out of this confusion.

    (Side : What does it mean by "get delayed frames" and why are we encoding by specifying AVFrame* parameter as NULL ?)

    /*
    * Video encoding example
    */
    char filename[] = "test.mpg";
    int main(int argc, char** argv)
    {
       AVCodec *codec;
       AVCodecContext *codecCtx= NULL;
       int i, out_size, size, x, y, outbuf_size;
       FILE *f;
       AVFrame *picture;
       uint8_t *outbuf, *picture_buf;

       printf("Video encoding\n");

       // Register all formats and codecs
       av_register_all();

       /* find the mpeg1 video encoder */
       codec = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           exit(1);
       }

       codecCtx= avcodec_alloc_context3(codec);
       picture= av_frame_alloc();

       /* put sample parameters */
       codecCtx->bit_rate = 400000;
       /* resolution must be a multiple of two */
       codecCtx->width = 352;
       codecCtx->height = 288;
       /* frames per second */
       //codecCtx->time_base= (AVRational){1,25};
       codecCtx->time_base.num = 1;
       codecCtx->time_base.den = 25;

       codecCtx->gop_size = 10; /* emit one intra frame every ten frames */
       codecCtx->max_b_frames=1;
       codecCtx->pix_fmt = AV_PIX_FMT_YUV420P;

       /* open it */
       if (avcodec_open2(codecCtx, codec, NULL) < 0) {
           fprintf(stderr, "could not open codec\n");
           exit(1);
       }

       fopen_s(&f,filename, "wb");
       if (!f) {
           fprintf(stderr, "could not open %s\n", filename);
           exit(1);
       }

       /* alloc image and output buffer */
       outbuf_size = 100000;
       outbuf = (uint8_t*) malloc(outbuf_size);
       size = codecCtx->width * codecCtx->height;
       picture_buf = (uint8_t*) malloc((size * 3) / 2); /* size for YUV 420 */

       picture->data[0] = picture_buf;
       picture->data[1] = picture->data[0] + size;
       picture->data[2] = picture->data[1] + size / 4;
       picture->linesize[0] = codecCtx->width;
       picture->linesize[1] = codecCtx->width / 2;
       picture->linesize[2] = codecCtx->width / 2;

       picture->width = codecCtx->width;
       picture->height = codecCtx->height;
       picture->format = codecCtx->pix_fmt;

       AVPacket avpkt;
       int got_packet;

       avpkt.size=av_image_get_buffer_size(codecCtx->pix_fmt, codecCtx->width,
                       codecCtx->height,1);    
       avpkt.data = (uint8_t *)av_malloc(avpkt.size*sizeof(uint8_t));

       /* encode 1 second of video */
       for(i=0;i<25;i++) {
           fflush(stdout);
           /* prepare a dummy image */
           /* Y */
           for(y=0;yheight;y++) {
               for(x=0;xwidth;x++) {
                   picture->data[0][y * picture->linesize[0] + x] = x + y + i * 3;
               }
           }

           /* Cb and Cr */
           for(y=0;yheight/2;y++) {
               for(x=0;xwidth/2;x++) {
                   picture->data[1][y * picture->linesize[1] + x] = 128 + y + i * 2;
                   picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5;
               }
           }

           /* encode the image */
           //out_size = avcodec_encode_video(codecCtx, outbuf, outbuf_size, picture);
           // <access violation="violation">
           out_size = avcodec_encode_video2(codecCtx, &amp;avpkt, picture, &amp;got_packet);
           printf("encoding frame %3d (size=%5d)\n", i, out_size);
           //fwrite(outbuf, 1, out_size, f);
           fwrite(avpkt.data, 1, avpkt.size, f);
       }

       /* get the delayed frames */
       for(; out_size; i++) {
           fflush(stdout);

           //out_size = avcodec_encode_video(codecCtx, outbuf, outbuf_size, NULL);
           out_size = avcodec_encode_video2(codecCtx, &amp;avpkt, NULL, &amp;got_packet);
           printf("write frame %3d (size=%5d)\n", i, out_size);
           //fwrite(outbuf, 1, out_size, f);
           fwrite(avpkt.data, 1, avpkt.size, f);
       }

       /* add sequence end code to have a real mpeg file */
       outbuf[0] = 0x00;
       outbuf[1] = 0x00;
       outbuf[2] = 0x01;
       outbuf[3] = 0xb7;
       fwrite(outbuf, 1, 4, f);
       fclose(f);
       free(picture_buf);
       free(outbuf);

       avcodec_close(codecCtx);
       av_free(codecCtx);
       av_free(picture);
       printf("\n");
    }
    </access>