Recherche avancée

Médias (0)

Mot : - Tags -/performance

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

Autres articles (82)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

Sur d’autres sites (9286)

  • FFMPEG in Java (runtime error)

    4 juillet 2012, par Eric

    I want to write a program that converts video into frames using FFMPEG. When I use it on the Ubuntu terminal, it works fine. But when I try to put it into the Java code, it gives me a runtime error. Did I make a mistake in my code below ?

    import java.util.*;
    import java.awt.*;
    import java.lang.*;
    import java.lang.Runtime;
    import java.io.*;
    import java.io.IOException;

    public class ConvertVideoToImage
    {
       private SingletonServer ss = null;

       public ConvertVideoToImage(SingletonServer ss)
       {
           this.ss = ss;
       }

       public void run()
       {
           convertVideo();
       }

       public void convertVideo()
       {
           try
           {
               Runtime rt = Runtime.getRunTime().exec("ffmpeg" + "-i" +         "display.wmv" + "image%d.jpg");
           }
           catch(Exception e){}
       }

    }

    Edit :

    I have changed the code like you suggested, but it also doesn't work. And when I Googled it, I found out that someone put the full path inside the executable and it became like this :

    Runtime.getRuntime().exec("/home/pc3/Documents/ffmpeg_temp/ffmpeg -i display.wmv image%d.jpg")

    BTW, thanks for the reply. I have another question. Is it possible to make a counter for FFMPEG ? I used this command in the Ubuntu terminal to make it convert a video to 30 frames/1seconds :

    ffmpeg -i display.wmv image%d.jpg

    This will automatically generate numbers like image1.jpg, image2.jpg, to image901.jpg. Is it possible to make a counter for this ? Because I need to count the files and control the number.

    Thanks in advance.

  • Understanding FFMPEG Video Encoding

    20 juin 2014, par SetSlapShot

    Got this from the encoding example in ffmpeg. I can somewhat follow the authors example for audio encoding, but I find myself befuddled looking at the C code (I commented in block numbers to help me reference what I’m talking about)...

    static void video_encode_example(const char *filename)
    {
    AVCodec *codec;
    AVCodecContext *c= NULL;
    int i, out_size, size, x, y, outbuf_size;
    FILE *f;
    AVFrame *picture;
    uint8_t *outbuf, *picture_buf;              //BLOCK ONE
    printf("Video encoding\n");

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

    c= avcodec_alloc_context();
    picture= avcodec_alloc_frame();
    /* put sample parameters */
    c->bit_rate = 400000;
    /* resolution must be a multiple of two */
    c->width = 352;
    c->height = 288;
    /* frames per second */
    c->time_base= (AVRational){1,25};
    c->gop_size = 10; /* emit one intra frame every ten frames */
    c->max_b_frames=1;
    c->pix_fmt = PIX_FMT_YUV420P;                   //BLOCK THREE

    /* open it */
    if (avcodec_open(c, codec) < 0) {
       fprintf(stderr, "could not open codec\n");
       exit(1);
    }
    f = fopen(filename, "wb");
    if (!f) {
       fprintf(stderr, "could not open %s\n", filename);
       exit(1);
    }                                               //BLOCK FOUR

    /* alloc image and output buffer */
    outbuf_size = 100000;
    outbuf = malloc(outbuf_size);
    size = c->width * c->height;
    picture_buf = 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] = c->width;
    picture->linesize[1] = c->width / 2;
    picture->linesize[2] = c->width / 2;              //BLOCK FIVE

    /* 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;
           }
       }                                            //BLOCK SIX

       /* 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;
           }
       }                                           //BLOCK SEVEN

       /* encode the image */
       out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
       printf("encoding frame %3d (size=%5d)\n", i, out_size);
       fwrite(outbuf, 1, out_size, f);
    }                                              //BLOCK EIGHT

    /* get the delayed frames */
    for(; out_size; i++) {
       fflush(stdout);
       out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
       printf("write frame %3d (size=%5d)\n", i, out_size);
       fwrite(outbuf, 1, out_size, f);
    }                                             //BLOCK NINE

    /* 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(c);
    av_free(c);
    av_free(picture);
    }                                            //BLOCK TEN

    Here’s what I can get from the authors code block by block...

    BLOCK ONE : Initializing Variables and pointers. I couldn’t find the AVFrame struct yet in the ffmpeg source code so I don’t know what its referencing

    BLOCK TWO : Uses a codec from the file, if not found close.

    BLOCK THREE : Sets sample video parameters. Only thing I don’t really get is gop size. I read about intra frames and I still don’t get what they are.

    BLOCK FOUR : Open the file for writing...

    BLOCK FIVE : Here’s where they really start losing me. Part is probably because I don’t know exactly what AVFrame is, but why do they only use 3/2 of the image size ?

    BLOCK SIX & SEVEN : I don’t understand what they are trying to accomplish with this math.

    BLOCK EIGHT : It looks like the avcodec function does all the work here, not concerned with that for the time being..

    BLOCK NINE : Since it’s outside the 25 frame for loop I assume it gets the leftover frames ?

    BLOCK TEN : Close, free mem, etc...

    I know this is a large block of code to be confused with, any input would be helpful. I got put in over my head at work. Thanks in advance SO.

  • What is the meaning of the hexadecimal value that follows the avc1 in an m3u8 variant playlist

    16 février 2013, par Anand

    From this apple's sample variant playlist

    https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8

    i see hexadecimal numbers follow the av1 like avc1.4d4015,avc1.4d401e,avc1.4d401e,avc1.4d401f can anybody know what is the meaning of them