Recherche avancée

Médias (91)

Autres articles (52)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

Sur d’autres sites (6824)

  • QTRLE is supported by ffmpeg ?

    22 avril 2016, par Sagar
    • I am trying to create video using QTRLE format with RGB24 or ARGB pixel format in ffmpeg library.But video is not played.
    • But is i use H264 format with yuv format then it’s working fine.
    • Is QTRLE is not supported by ffmpeg or i m doing any mistake ?

      static void video_encode_example(const char *filename, int codec_id)
      {
             AVCodec *codec;
             AVCodecContext *c = NULL;
             int i, ret, x, y, got_output;
             FILE *f;
             AVFrame *frame;
             AVPacket pkt;
             uint8_t endcode[] = { 0, 0, 1, 0xb7 };

             printf("Encode video file %s\n", filename);

             /* find the mpeg1 video encoder */

             codec = avcodec_find_encoder((AVCodecID) codec_id);
             //  codec = 28;
             if (!codec) {
                 fprintf(stderr, "Codec not found : %d\n", codec_id);
                 exit(1);
             }

             c = avcodec_alloc_context3(codec);

             if (!c) {
                 fprintf(stderr, "Could not allocate video codec context\n");
                 exit(1);
             }

             /* 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 };
             /* emit one intra frame every ten frames
              * check frame pict_type before passing frame
              * to encoder, if frame->pict_type is AV_PICTURE_TYPE_I
              * then gop_size is ignored and the output of encoder
              * will always be I frame irrespective to gop_size
              */
             c->gop_size = 10;
             c->max_b_frames = 1;
             c->pix_fmt = AV_PIX_FMT_RGB24;

             if (codec_id == AV_CODEC_ID_H264)
                 av_opt_set(c->priv_data, "preset", "slow", 0);

             /* open it */
             if (avcodec_open2(c, codec, NULL) < 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);
             }

             frame = av_frame_alloc();
             if (!frame) {
                 fprintf(stderr, "Could not allocate video frame\n");
                 exit(1);
             }
             frame->format = c->pix_fmt;
             frame->width = c->width;
             frame->height = c->height;

             /* the image can be allocated by any means and av_image_alloc() is
              * just the most convenient way if av_malloc() is to be used */
             ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height,
                     c->pix_fmt, 32);
             if (ret < 0) {
                 fprintf(stderr, "Could not allocate raw picture buffer\n");
                 exit(1);
             }
             ////////////////////////////////////
             cv::Mat input = imread("image for creating video(image.png)");
             Mat output;
             resize(input, input, Size(c->width, c->height));
             cvtColor(input, input, CV_BGR2RGB);

             av_image_fill_arrays(frame->data, frame->linesize, input.data,
                     c->pix_fmt, c->width, c->height, 1);

             ////////////////////////////////////

             for (i = 0; i < 250; i++) {
                 av_init_packet(&pkt);
                 pkt.data = NULL;    // packet data will be allocated by the encoder
                 pkt.size = 0;

                 fflush(stdout);

                 frame->pts = i;

                 /* encode the image */
                 ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
                 if (ret < 0) {
                     fprintf(stderr, "Error encoding frame\n");
                     exit(1);
                 }

                 if (got_output) {
                     printf("Write frame %3d (size=%5d)\n", i, pkt.size);
                     fwrite(pkt.data, 1, pkt.size, f);
                     av_packet_unref(&pkt);
                 }
             }

             /* get the delayed frames */
             for (got_output = 1; got_output; i++) {
                 fflush(stdout);

                 ret = avcodec_encode_video2(c, &pkt, NULL, &got_output);
                 if (ret < 0) {
                     fprintf(stderr, "Error encoding frame\n");
                     exit(1);
                 }

                 if (got_output) {
                     printf("Write frame %3d (size=%5d)\n", i, pkt.size);
                     fwrite(pkt.data, 1, pkt.size, f);
                     av_packet_unref(&pkt);
                 }
             }

             /* add sequence end code to have a real mpeg file */
             fwrite(endcode, 1, sizeof(endcode), f);
             fclose(f);

             avcodec_close(c);
             av_free(c);
         //  av_freep(&frame->data[0]);
             av_frame_free(&frame);
             printf("\n");
      }

      int main() {
         av_register_all();
         video_encode_example("test.mov", AV_CODEC_ID_QTRLE);
      }
  • Streaming video written using FFmpeg (C# using AutoGen) sends multiple data requests

    26 juin 2016, par williamtroup

    I’ve written a video generator that rights a video in h264 format (mp4). When I stream the video from my azure service, i’m seeing the following network traffic :

    enter image description here

    The AVCodecContext layout I’m using is as follows :

    AVCodec* videoCodec = ffmpeg.avcodec_find_encoder(AVCodecID.AV_CODEC_ID_H264)
    AVCodecContext* videoCodecContext = ffmpeg.avcodec_alloc_context3(videoCodec);
    videoCodecContext->bit_rate = 400000;
    videoCodecContext->width = 1280;
    videoCodecContext->height = 720;
    videoCodecContext->gop_size = 12;
    videoCodecContext->max_b_frames = 1;
    videoCodecContext->pix_fmt = videoCodec->pix_fmts[0];
    videoCodecContext->codec_id = videoCodec->id;
    videoCodecContext->codec_type = videoCodec->type;
    videoCodecContext->time_base = new AVRational
    {
       num = 1,
       den = 30
    };

    ffmpeg.av_opt_set(videoCodecContext->priv_data, "preset", "ultrafast");

    I cannot figure out how to solve this problem. Videos generating using Windows Movie Maker stream perfectly.

    Also, this appears to only happening in Google Chrome.

  • QRTLE is supported by ffmpeg ?

    22 avril 2016, par Sagar
    • I am trying to create video using QRTLE format with RGB24 or ARGB pixel format in ffmpeg library.But video is not played.
    • But is i use H264 format with yuv format then it’s working fine.
    • Is QRTLE is not supported by ffmpeg or i m doing any mistake ?

      static void video_encode_example(const char *filename, int codec_id)
      {
             AVCodec *codec;
             AVCodecContext *c = NULL;
             int i, ret, x, y, got_output;
             FILE *f;
             AVFrame *frame;
             AVPacket pkt;
             uint8_t endcode[] = { 0, 0, 1, 0xb7 };

             printf("Encode video file %s\n", filename);

             /* find the mpeg1 video encoder */

             codec = avcodec_find_encoder((AVCodecID) codec_id);
             //  codec = 28;
             if (!codec) {
                 fprintf(stderr, "Codec not found : %d\n", codec_id);
                 exit(1);
             }

             c = avcodec_alloc_context3(codec);

             if (!c) {
                 fprintf(stderr, "Could not allocate video codec context\n");
                 exit(1);
             }

             /* 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 };
             /* emit one intra frame every ten frames
              * check frame pict_type before passing frame
              * to encoder, if frame->pict_type is AV_PICTURE_TYPE_I
              * then gop_size is ignored and the output of encoder
              * will always be I frame irrespective to gop_size
              */
             c->gop_size = 10;
             c->max_b_frames = 1;
             c->pix_fmt = AV_PIX_FMT_RGB24;

             if (codec_id == AV_CODEC_ID_H264)
                 av_opt_set(c->priv_data, "preset", "slow", 0);

             /* open it */
             if (avcodec_open2(c, codec, NULL) < 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);
             }

             frame = av_frame_alloc();
             if (!frame) {
                 fprintf(stderr, "Could not allocate video frame\n");
                 exit(1);
             }
             frame->format = c->pix_fmt;
             frame->width = c->width;
             frame->height = c->height;

             /* the image can be allocated by any means and av_image_alloc() is
              * just the most convenient way if av_malloc() is to be used */
             ret = av_image_alloc(frame->data, frame->linesize, c->width, c->height,
                     c->pix_fmt, 32);
             if (ret < 0) {
                 fprintf(stderr, "Could not allocate raw picture buffer\n");
                 exit(1);
             }
             ////////////////////////////////////
             cv::Mat input = imread("image for creating video(image.png)");
             Mat output;
             resize(input, input, Size(c->width, c->height));
             cvtColor(input, input, CV_BGR2RGB);

             av_image_fill_arrays(frame->data, frame->linesize, input.data,
                     c->pix_fmt, c->width, c->height, 1);

             ////////////////////////////////////

             for (i = 0; i < 250; i++) {
                 av_init_packet(&pkt);
                 pkt.data = NULL;    // packet data will be allocated by the encoder
                 pkt.size = 0;

                 fflush(stdout);

                 frame->pts = i;

                 /* encode the image */
                 ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
                 if (ret < 0) {
                     fprintf(stderr, "Error encoding frame\n");
                     exit(1);
                 }

                 if (got_output) {
                     printf("Write frame %3d (size=%5d)\n", i, pkt.size);
                     fwrite(pkt.data, 1, pkt.size, f);
                     av_packet_unref(&pkt);
                 }
             }

             /* get the delayed frames */
             for (got_output = 1; got_output; i++) {
                 fflush(stdout);

                 ret = avcodec_encode_video2(c, &pkt, NULL, &got_output);
                 if (ret < 0) {
                     fprintf(stderr, "Error encoding frame\n");
                     exit(1);
                 }

                 if (got_output) {
                     printf("Write frame %3d (size=%5d)\n", i, pkt.size);
                     fwrite(pkt.data, 1, pkt.size, f);
                     av_packet_unref(&pkt);
                 }
             }

             /* add sequence end code to have a real mpeg file */
             fwrite(endcode, 1, sizeof(endcode), f);
             fclose(f);

             avcodec_close(c);
             av_free(c);
         //  av_freep(&frame->data[0]);
             av_frame_free(&frame);
             printf("\n");
      }

      int main() {
         av_register_all();
         video_encode_example("test.mov", AV_CODEC_ID_QTRLE);
      }