Recherche avancée

Médias (0)

Mot : - Tags -/flash

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

Autres articles (89)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • 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

Sur d’autres sites (9798)

  • Unable to encode single frame h264 (.mp4) video with FFmpeg. No video stream present

    5 mai 2015, par Maxito

    I have achieved this with ffmpeg command line tool using the command. The folder had only one image.

    ffmpeg -r 24 -i image%03d.bmp -c:v libx264 -pix_fmt yuv420p
    oneframex.mp4

    I would like to do the same with C++. If I encode a video of three or more frames, video encodes correctly, but the result of encoding a one or two frames video never has a video stream, as reported by ffprobe and some media players.

    Comparing with ffprobe, my video (the one with three or more frames) and the one generated by the command tool show almost the same information. Only bitrate and encoder version are different.

    I have tried adding force_key_frames to 1, tried with many encoding options and have be unsuccessful.

    The application output gives me this information :

    [libx264 @ 20d1b840] using cpu capabilities : MMX2 SSE2Fast SSSE3
    SSE4.2 AVX

    [libx264 @ 20d1b840] profile High, level 4.0

    [libx264 @ 20d1b840] 264 - core 142 r2431 ac76440 - H.264/MPEG-4 AVC
    codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html -
    options : cabac=0 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=dia subme=8
    psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=0 trellis=0
    8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2
    threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1
    interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0
    keyint=1 keyint_min=1 scenecut=0 intra_refresh=0 rc=crf mbtree=0
    crf=10.0 qcomp=0.60 qpmin=0 qpmax=25 qpstep=4 ip_ratio=1.40 aq=1:1.00

    These are my main parameters :

    pCodecCtx->codec_id = AV_CODEC_ID_H264;
    pCodecCtx->pix_fmt= AV_PIX_FMT_YUV420P;
    pCodecCtx->gop_size = 1;
    pCodecCtx->bit_rate = 400000;
    pCodecCtx->me_range = 16;
    pCodecCtx->max_qdiff = 4;
    pCodecCtx->qcompress = 0.6;
    pCodecCtx->qmin = 0;
    pCodecCtx->qmax = 25;
    pCodecCtx->time_base.den = 24;
    pCodecCtx->time_base.num = 1;

    AVDictionary *param = 0;
               av_dict_set(&param, "preset", "slow", 0);
               av_dict_set(&param, "profile", "high", 0);
               av_dict_set(&param, "crf", "10", 0); //this gave me quality
               av_dict_set(&param, "force_key_frames", "1", 0);

    In my encoding I just added

    ppicture->pts = pCodecCtx->frame_number

    to avoid non-strictly-monotonic PTS message. And tried the methods from this question in case it had something to do.

    I’m sure I must be missing some important parameter to be able to create such a small video. I will take any suggestion.

  • capture my webcam and encode to mp4 with ffmpeg, but the x264 works bad

    17 septembre 2015, par zhangxm1991

    here is my version :
    ffmpeg version : 2.3.3
    libx264 version:142.x

    I wat to capture my video and use ffmpeg and x264 to a mp4 file. the solution is 320x240.
    But i found that the video file is so big. Then i found that the P frame and B frame is very big, even nearly equal to the I frame.I do not know why.

    here is my code :

       c->codec_id = codec_id;
       c->bit_rate = 400000;
       c->width    = 320;
       c->height   = 240;
       c->time_base.den = 10;
       c->time_base.num = 1;
       c->pix_fmt       = AV_PIX_FMT_YUV420P;

    Here is my program output :

    [libx264 @ 0xb6200fc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

    [libx264 @ 0xb6200fc0] profile High, level 1.3

    [libx264 @ 0xb6200fc0] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=400 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00

    Output #0, mp4, to '/home/2014_09_12/0002b6429579/5/2014_09_12_18_39_12_600.mp4':

       Stream #0:0: Video: h264 (libx264), yuv420p, 320x240, q=-1--1, 400 kb/s, 10 tbc

       Stream #0:1: Audio: aac, 8000 Hz, mono, fltp, 32 kb/s

    [mp4 @ 0xb62005e0] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.

    [mp4 @ 0xb62005e0] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.

    [mp4 @ 0xb62005e0] Encoder did not produce proper pts, making some up.

    [libx264 @ 0xb6200fc0] frame I:3     Avg QP: 2.79  size: 72996

    [libx264 @ 0xb6200fc0] frame P:383   Avg QP: 0.14  size: 54075

    [libx264 @ 0xb6200fc0] frame B:216   Avg QP: 1.95  size: 64784

    [libx264 @ 0xb6200fc0] consecutive B-frames: 30.1% 63.2%  6.0%  0.7%

    [libx264 @ 0xb6200fc0] mb I  I16..4: 16.1% 12.7% 71.2%

    [libx264 @ 0xb6200fc0] mb P  I16..4:  3.5%  5.1% 15.9%  P16..4: 20.3% 22.8% 14.0%  0.0%  0.0%    skip:18.3%

    [libx264 @ 0xb6200fc0] mb B  I16..4:  0.4%  2.5%  8.2%  B16..8: 32.6% 19.8% 13.5%  
    direct:22.2%  skip: 0.8%  L0:25.5% L1:12.8% BI:61.6%

    [libx264 @ 0xb6200fc0] final ratefactor: -32.89

    [libx264 @ 0xb6200fc0] 8x8 transform intra:21.0% inter:29.6%

    [libx264 @ 0xb6200fc0] coded y,uvDC,uvAC intra: 100.0% 100.0% 100.0% inter: 83.3% 80.9% 80.9%

    [libx264 @ 0xb6200fc0] i16 v,h,dc,p:  5%  7% 42% 46%

    [libx264 @ 0xb6200fc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 12% 23%  8%  6%  6%  8%  9% 14%

    [libx264 @ 0xb6200fc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 11% 19% 10%  8%  8% 10% 10% 12%

    [libx264 @ 0xb6200fc0] i8c dc,h,v,p: 78%  3%  4% 15%

    [libx264 @ 0xb6200fc0] Weighted P-Frames: Y:0.5% UV:0.3%

    [libx264 @ 0xb6200fc0] ref P L0: 43.4% 14.6% 19.0% 22.9%  0.1%

    [libx264 @ 0xb6200fc0] ref B L0: 63.3% 35.7%  1.1%

    [libx264 @ 0xb6200fc0] ref B L1: 97.0%  3.0%

    [libx264 @ 0xb6200fc0] kb/s:4.53

    [aac @ 0xb6201ba0] 2 frames left in the queue on closing
  • Decoding then re-encoding frames in reverse order with ffmpeg

    21 août 2014, par user3875919

    I am pretty new to ffmpeg, and now I want to decode the frames and encode it back in reverse order. I have used this tutorial for decoding the video and this example to encode it back. I can decode the frames properly, but when I re-encode it, I get a dummy image rather than clear video. How can I get the actual reversed video ?

    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;
       struct SwsContext *sws_ctx = NULL;
       AVFrame *frame;
       AVFrame *frameRGB = NULL;
       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(codec_id);
       if (!codec) {
           fprintf(stderr, "Codec not found\n");
           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_YUV420P;

       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);
       }

       /* encode 1 second of video */
       for (i = 0; i < 25; i++) {
           av_init_packet(&pkt);
           pkt.data = NULL;    // packet data will be allocated by the encoder
           pkt.size = 0;

           fflush(stdout);
           /* prepare a dummy image */
           /* Y */
           for (y = 0; y < c->height; y++) {
               for (x = 0; x < c->width; x++) {
                   frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
               }
           }

           /* Cb and Cr */
           for (y = 0; y < c->height/2; y++) {
               for (x = 0; x < c->width/2; x++) {
                   frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
                   frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
               }
           }

           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) {
               // Convert the image from its native format to RGB
               sws_scale
               (
                   sws_ctx,
                   (uint8_t const * const *)frame->data,
                   frame->linesize,
                   0,
                   c->height,
                   frameRGB->data,
                   frameRGB->linesize
               );
               printf("Write frame %3d (size=%5d)\n", i, pkt.size);
               fwrite(pkt.data, 1, pkt.size, f);
               av_free_packet(&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_free_packet(&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");
    }