Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (15)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (3910)

  • Why does FFMPEG adds up extra bit rate to video ? [migrated]

    5 juin 2012, par user735647

    I use FFMPEG (command line Input) to convert my videos to a specific output format. The problem I am facing is when I try to pass a constant bit rate(700 kbps) to FFMPEG, the result is an output video with a different bit rate(say 1000 kbps). This phenomenon occurs invariably for all videos.Why is this happening ? I need to maintain a constant bit rate. Can anyone help me out.

    My FFMPEG version is 0.5

    The command line parameter which I am passing to FFMPEG is,

    -i {inputfile}
    -b 700k -ab 64k
    -vcodec libx264
    -acodec libfaac -ac 2 -ar 44100
    -y -s 320x240
    {outputfile}

    EDIT :

    I was able to force CBR with a fluctuation of 3% when I used the following parameters.

    ffmpeg -i myfile.avi
    -b 4000k -minrate 4000k
    -maxrate 4000k -bufsize 1835k   out.m2v

    But when I used -maxrate and - minrate along with my parameter set I was not able to force CBR. My parameter set is as follows,

    -i {inputfile}
    -b 1200k -minrate 1200k
    -maxrate 1200k -bufsize 1200k
    -ab 64k -vcodec libx264
    -acodec libfaac -ac 2 -ar 44100
    -y -s 320x240
    {outputfile}

    Why is this happening ?

  • How to set time_base when muxing AVI with libavformat ?

    18 mai 2012, par Anastasia

    In my application I receive from a remote server synchronized video
    (mpeg4) and audio (mp3) and mux them to avi file. The video comes
    frame-by-frame, and the audio comes in small chunks, say 200-250 ms.
    Both video frames and audio chunks have timestamps in milliseconds.

    My question is how to set audio time_base and pts correctly ?
    For video I set time_base.num = framerate, time_base.den = 1 ; and
    calculate pts as follows :

     AVRational time_base_1kHz;
     time_base_1kHz.num = 1;
     time_base_1kHz.den = 1000;
     packet.pts = av_rescale_q(timeStamp - baseTimeStamp_, time_base_1kHz, videoStream_->time_base);

    where baseTimeStamp_ is the 1st timestamp of the stream.

    But if I try do similar calculation for audio, I don't get playable
    avi. If I always set to audio AV_NOPTS_VALUE, then avi has playable
    video, but no audio.

    So what are the correct values for audio time_base and pts's ?
    Do I set time_base and pts's for video correctly ?

  • Not able to encode image with ffmpeg

    29 juin 2012, par user1310596

    I am trying to encode one image with the help of ffmpeg library.. Actually i want to encode live video but for now i am starting with encoding an image..
    Here is my code for that..

       av_register_all();
       avcodec_init();
       avcodec_register_all();
       avformat_alloc_context();

       AVCodec *codec;
       AVCodecContext *ctx= NULL;
       int out_size, size, outbuf_size;
       AVFrame *picture;
       uint8_t *outbuf;
       unsigned char *flvdata = malloc(sizeof(unsigned char) * 30);


       outbuf_size = 100000;
       outbuf = malloc(outbuf_size);


       printf("Video encoding\n");

       codec = avcodec_find_encoder(CODEC_ID_FLV1);
       if (!codec) {
               fprintf(stderr, "codec not found\n");
               exit(1);
       }

       ctx= avcodec_alloc_context();
       picture= avcodec_alloc_frame();


       ctx->width = 320;
       ctx->height = 240;
       ctx -> sample_rate = 11025;
       ctx -> time_base.den = 1000;
       ctx -> time_base.num = 23976;
       ctx -> codec_id = CODEC_ID_FLV1;
       ctx -> codec_type = CODEC_TYPE_VIDEO;
       ctx->pix_fmt = PIX_FMT_YUV420P;

       if (avcodec_open(ctx, codec) < 0) {
               fprintf(stderr, "could not open codec\n");
               exit(1);
       }

       outbuf_size = 100000;
       outbuf = malloc(outbuf_size);
       size = ctx->width * ctx->height;

       AVFrame* outpic = avcodec_alloc_frame();
       int nbytes = avpicture_get_size(PIX_FMT_YUV420P, ctx->width, ctx->height);

       uint8_t* outbuffer = (uint8_t*)av_malloc(nbytes);

       fflush(stdout);

       int numBytes = avpicture_get_size(PIX_FMT_YUV420P, ctx->width, ctx->height);

       UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"0.jpg"]];
       CGImageRef newCgImage = [image CGImage];

       CGDataProviderRef dataProvider = CGImageGetDataProvider(newCgImage);
       CFDataRef bitmapData = CGDataProviderCopyData(dataProvider);
       long dataLength = CFDataGetLength(bitmapData);

       uint8_t *buffer = (uint8_t *)av_malloc(dataLength);
       buffer = (uint8_t *)CFDataGetBytePtr(bitmapData);

       for(int i = 0; i < dataLength; i++)
       {
               if((i + 1) % 16 == 1 && i != 1)
                       printf("\n");
               printf("%X\t",buffer[i]); // getting something different than the     actual hex value of the image
       }



       outpic -> pts = 0;        

       avpicture_fill((AVPicture*)picture, buffer, PIX_FMT_RGB8, ctx->width, ctx->height);

       avpicture_fill((AVPicture*)outpic, outbuffer, PIX_FMT_YUV420P, ctx->width, ctx->height);

       struct SwsContext* fooContext = sws_getContext(ctx->width, ctx->height,
                                                              PIX_FMT_RGB8,
                                                              ctx->width, ctx->height,
                                                              PIX_FMT_YUV420P,
                                                              SWS_FAST_BILINEAR, NULL, NULL, NULL);

       sws_scale(fooContext, picture->data, picture->linesize, 0, ctx->height, outpic->data, outpic->linesize);

       printf("abcdefghijklmnop");
       out_size = avcodec_encode_video(ctx, outbuf, outbuf_size, outpic);
       printf("\n\n out_size %d   outbuf_size %d",out_size,outbuf_size);

    so the size of image is 29 kb and the avcodec_encode_video is returning 20143.. So is it correct ? I mean i am encoding so its size should also decrease... And i have opened that image in hex mode and i am getting different data than that is in buffer (as shown in the code). so i think that buffer is not getting correct data. Right ?
    Can anyone please help me with my code ?
    Thank you in advance...