Recherche avancée

Médias (1)

Mot : - Tags -/net art

Autres articles (30)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (4744)

  • converting images to mp4 using ffmpeg on iphone

    29 novembre 2011, par user633901

    Up till now, i can create mpeg1 but with no luck for mp4.Maybe we can talk and share information.Someone told me that i have to set some flags for using mp4.But i am stuck at using it...

    following is the working code :

    av_register_all();
    printf("Video encoding\n");

    /// find the mpeg video encoder
    //codec=avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);
    codec = avcodec_find_encoder(CODEC_ID_MPEG4);

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

    c = avcodec_alloc_context();
    picture = avcodec_alloc_frame();

    // put sample parameters
    c->bit_rate = 400000;
    /// resolution must be a multiple of two
    c->width = 240;
    c->height = 320;
    //c->codec_id = fmt->video_codec;
    //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; // PIX_FMT_YUV420P

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

    f = fopen([[NSHomeDirectory() stringByAppendingPathComponent:@"test.mp4"] UTF8String], "wb");

    if (!f) {
       fprintf(stderr, "could not open %s\n",[@"test.mp4" UTF8String]);
       exit(1);
    }

    // alloc image and output buffer
    outbuf_size = 100000;
    outbuf = malloc(outbuf_size);
    size = c->width * c->height;

    #pragma mark -

    AVFrame* outpic = avcodec_alloc_frame();
    int nbytes = avpicture_get_size(PIX_FMT_YUV420P, c->width, c->height); //this is half size of numbytes.

    //create buffer for the output image
    uint8_t* outbuffer = (uint8_t*)av_malloc(nbytes);

    #pragma mark -  
    for(k=0;k<1;k++) {
       for(i=0;i<25;i++) {
           fflush(stdout);

           int numBytes = avpicture_get_size(PIX_FMT_RGBA, c->width, c->height);
           uint8_t *buffer = (uint8_t *)av_malloc(numBytes*sizeof(uint8_t));

           UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", i+1]];
           CGImageRef newCgImage = [image CGImage];

           CGDataProviderRef dataProvider = CGImageGetDataProvider(newCgImage);
           CFDataRef bitmapData = CGDataProviderCopyData(dataProvider);
           buffer = (uint8_t *)CFDataGetBytePtr(bitmapData);  
           ///////////////////////////
           //outbuffer=(uint8_t *)CFDataGetBytePtr(bitmapData);
           //////////////////////////
           avpicture_fill((AVPicture*)picture, buffer, PIX_FMT_RGBA, c->width, c->height);
           avpicture_fill((AVPicture*)outpic, outbuffer, PIX_FMT_YUV420P, c->width, c->height);//does not have image data.

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

           //perform the conversion
           sws_scale(fooContext, picture->data, picture->linesize, 0, c->height, outpic->data, outpic->linesize);
           // Here is where I try to convert to YUV

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

           free(buffer);
           buffer = NULL;
       }

       // 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, outbuf_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(c);
    av_free(c);
    av_free(picture);
    //av_free(outpic);
    printf("\n");

    my msn:hieeli@hotmail.com

  • h.264 Hardware Encoding with ffmpeg

    23 mai 2016, par Paolo

    I must capture h.264 raw stream in Linux from a UVC USB camera with Sonix SN9C291B h.264 hardware encoder, maybe the most used camera controller encoder.
    Now, I only found sample code to capture stream using avformat_open_input with /dev/video0 or /dev/video1 function but it does not work.
    What is the ffmpeg function I must use to capture h.264 raw data from the camera ?

    After call the function :

    c = avcodec_alloc_context3 (codec);

    c->bit_rate = 400000;

    c->width = 640; this setting generate an error! Why?
  • ffmpeg dont change time duration

    26 mars 2017, par combo_ci

    I tried to convert a UDP stream (that genrated from DVB signal) to HLS m3u8 file with this code :

    ffmpeg -i udp://239.1.2.1:60001 -acodec aac -strict -2 -vcodec libx264 -hls_wrap 100 -f hls /var/www/html/ts/1.m3u8

    and output m3u8 file is :

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:3
    #EXT-X-MEDIA-SEQUENCE:66
    #EXTINF:0.960000,
    21.ts
    #EXTINF:2.080000,
    22.ts
    #EXTINF:2.400000,
    23.ts
    #EXTINF:1.760000,
    24.ts
    #EXTINF:2.080000,
    20.ts

    I tried to change the target duration to 10 in this file with the option -segment_time 10 but the target duration doesn’t change in m3u8 file, can anybody help me with this problem ?