Recherche avancée

Médias (91)

Autres articles (34)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

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

Sur d’autres sites (7628)

  • Piwik is now using Github issues as our Issue Tracker !

    9 juillet 2014, par Matthieu Aubry — Community, Development

    This is an announcement regarding the Issue Tracker used for the Piwik project. We are excited to announce that Piwik has migrated from Trac to now using Github issues for managing our issues !

    More than 5,400 tickets and 20,000+ comments from 1,000+ users were migrated to Github. Read on for more information.

    Where do I find Piwik Issue Tracker ?

    Benefits of using Github Issues for the Piwik project

    There are several advantages of moving to Github issues :

    • Faster and responsive user interface
    • Better cross-project referencing of issues
    • Ability to notify people with the @username functionality
    • No spam
    • Integration with Pull requests and our Git repository

    How do I get notifications for all Piwik tickets ?

    To receive notifications for new tickets or new comments in the Piwik project, go to github.com/piwik/piwik, then click the Watch button at the top of the page.

    In Github, watching a repository lets you follow new commits, pull requests, and issues that are created.

    How do I report a bug in Piwik ?
    See Submitting a bug report.

    How do I suggest a new feature ?
    See Submitting a feature request.

    Next steps

    At Piwik we care a lot about Data ownership. For this reason we need to have an up to date copy of all our tickets and comments out of github.com servers. Our next step will be to create and release as open source a tool to let anyone create a Mirror of their Github issues. See #5299.

    For more information about the Trac->migration, see #5273.

    We look forward to reading your issues on Github !

  • Piwik is now using Github issues as our Issue Tracker !

    9 juillet 2014, par Matthieu Aubry — Community, Development

    This is an announcement regarding the Issue Tracker used for the Piwik project. We are excited to announce that Piwik has migrated from Trac to now using Github issues for managing our issues !

    More than 5,400 tickets and 20,000+ comments from 1,000+ users were migrated to Github. Read on for more information.

    Where do I find Piwik Issue Tracker ?

    Benefits of using Github Issues for the Piwik project

    There are several advantages of moving to Github issues :

    • Faster and responsive user interface
    • Better cross-project referencing of issues
    • Ability to notify people with the @username functionality
    • No spam
    • Integration with Pull requests and our Git repository

    How do I get notifications for all Piwik tickets ?

    To receive notifications for new tickets or new comments in the Piwik project, go to github.com/piwik/piwik, then click the Watch button at the top of the page.

    In Github, watching a repository lets you follow new commits, pull requests, and issues that are created.

    How do I report a bug in Piwik ?
    See Submitting a bug report.

    How do I suggest a new feature ?
    See Submitting a feature request.

    Next steps

    At Piwik we care a lot about Data ownership. For this reason we need to have an up to date copy of all our tickets and comments out of github.com servers. Our next step will be to create and release as open source a tool to let anyone create a Mirror of their Github issues. See #5299.

    For more information about the Trac->migration, see #5273.

    We look forward to reading your issues on Github !

  • Publish RTMP stream to Red5 Server form iOS camera

    7 septembre 2015, par Mohammad Asif

    Please look at following code, I have transformed CMSampleBufferRef into AV_CODEC_ID_H264 but I don’t know how to transmit it to Red5 server.

    Thanks,

    - (void)  captureOutput:(AVCaptureOutput *)captureOutput
     didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
        fromConnection:(AVCaptureConnection *)connection {

    //NSLog(@"This is working ....");

     // [connection setVideoOrientation: [self deviceOrientation] ];

    if( !CMSampleBufferDataIsReady(sampleBuffer) )
    {
       NSLog( @"sample buffer is not ready. Skipping sample" );
       return;
    } else {

       if (captureOutput == videoOutput) {


           CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
           CVPixelBufferLockBaseAddress(pixelBuffer, 0);

           // access the data
           float width = CVPixelBufferGetWidth(pixelBuffer);
           float height = CVPixelBufferGetHeight(pixelBuffer);

           //float bytesPerRow = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, 0);
           unsigned char *rawPixelBase = (unsigned char *)CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 0);


           // Convert the raw pixel base to h.264 format

           if (codec == nil) {

               codec = 0;
               context = 0;
               frame = 0;

               fmt = avformat_alloc_context();
               //avformat_write_header(fmt, NULL);

               codec = avcodec_find_encoder(AV_CODEC_ID_H264);

               if (codec == 0) {
                   NSLog(@"Codec not found!!");
                   return;
               }

               context = avcodec_alloc_context3(codec);

               if (!context) {
                   NSLog(@"Context no bueno.");
                   return;
               }

               // Bit rate
               context->bit_rate = 400000; // HARD CODE
               context->bit_rate_tolerance = 10;
               // Resolution

               // Frames Per Second
               context->time_base = (AVRational) {1,25};
               context->gop_size = 1;
               //context->max_b_frames = 1;
               context->width = width;
               context->height = height;
               context->pix_fmt = PIX_FMT_YUV420P;

               // Open the codec
               if (avcodec_open2(context, codec, 0) < 0) {
                   NSLog(@"Unable to open codec");
                   return;
               }

               // Create the frame
               frame = av_frame_alloc();
               if (!frame) {
                   NSLog(@"Unable to alloc frame");
                   return;
               }
           }

           context->width = width;
           context->height = height;

           frame->format = context->pix_fmt;
           frame->width = context->width;
           frame->height = context->height;

           //int nbytes = avpicture_get_size(context->pix_fmt, context->width, context->height);
           //uint8_t* outbuffer = (uint8_t*)av_malloc(nbytes);
    //            AVFrame *pFrameDecoded = avcodec_alloc_frame();
    //            int num_bytes2 = avpicture_get_size(context->pix_fmt, frame->width, frame->height);
    //            uint8_t* frame2_buffer2 = (uint8_t *)av_malloc(num_bytes2 * sizeof(uint8_t));
    //            avpicture_fill((AVPicture*)pFrameDecoded, frame2_buffer2, PIX_FMT_YUVJ422P, 320, 240);

           frame->pts = (1.0 / 30) * 60 * count;
           avpicture_fill((AVPicture *) frame, rawPixelBase, context->pix_fmt, frame->width, frame->height);

           int got_output = 0;
           av_init_packet(&packet);
           //avcodec_encode_video2(context, &packet, frame, &got_output);

           do {
               avcodec_encode_video2(context, &packet, frame, &got_output);
               //avcodec_decode_video2(context, &packet, NULL, &got_output);
               //*... handle received packet*/

               if (isFirstPacket) {
                   [rtmp sendCreateStreamPacket];
                   isFirstPacket = false;
                   //av_dump_format(fmt, 0, [kRtmpEP UTF8String], 1);
                   avformat_alloc_output_context2(&ofmt_ctx, NULL, "flv", [kRtmpEP UTF8String]); //RTMP
               }

               packet.stream_index = ofmt_ctx->nb_streams;
               av_interleaved_write_frame(ofmt_ctx, &packet);
               count ++;

               //[rtmp write:[NSData dataWithBytes:packet.data length:packet.size]];


           } while(got_output);

           // Unlock the pixel data
           CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);

           //[rtmp write:[NSData dataWithBytes:packet.data length:packet.size]];

       } else {

       }
    }   }