Recherche avancée

Médias (0)

Mot : - Tags -/configuration

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

Autres articles (52)

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

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (4731)

  • Decode H264 video using libavcodec, C

    10 janvier 2015, par deadman

    I’m trying to decode a raw h264 file with ffmpeg/libavcodec, but can’t get it to work properly. Output should be a raw YUV-File for now. It’s possible to compile the code with GCC

    gcc -o decoder decoder.c -L./lib/ -llibavcodec -llibavutil

    avcodec.dll, avutil.dll and swresample.dll must be placed in the directory for the .exe to start. Output in the CMD looks like this (only part of it, but its always like this) :

    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] Missing reference picture, default is 65562
    [h264 @ 00a80f20] error while decoding MB 80 54, bytestream -10
    [h264 @ 00a80f20] concealing 1649 DC, 1649 AC, 1649 MV errors in B frame
    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] Missing reference picture, default is 65566
    [h264 @ 00a80f20] Missing reference picture, default is 65566
    [h264 @ 00a80f20] Missing reference picture, default is 65566
    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] Missing reference picture, default is 65568
    [h264 @ 00a80f20] reference picture missing during reorder
    [h264 @ 00a80f20] Missing reference picture, default is 65570
    [h264 @ 00a80f20] reference picture missing during reorder

    Heres my code

    #include
    #include

    #ifdef HAVE_AV_CONFIG_H
    #undef HAVE_AV_CONFIG_H
    #endif

    #include "libavcodec/avcodec.h"
    //#include "libavcodec/libavutil/mathematics.h"

    #define INBUF_SIZE 4096

    void video_decode(char *outfilename, char *filename)
    {
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int frame, got_picture, len;
       FILE *f, *outf;
       AVFrame *picture;
       uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
       AVPacket avpkt;
       int i;

       av_init_packet(&avpkt);

       memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);

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

       c = avcodec_alloc_context3(codec);
       picture = av_frame_alloc();

       if((codec->capabilities)&CODEC_CAP_TRUNCATED)
           (c->flags) |= CODEC_FLAG_TRUNCATED;

       c->height = 1080;
       c->width = 1920;

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

       f = fopen(filename, "rb");
       if (!f) {
           fprintf(stderr, "could not open %s\n", filename);
           exit(1);
       }

       outf = fopen(outfilename,"w");
       if(!outf){
           fprintf(stderr, "could not open %s\n", filename);
           exit(1);
       }
       frame = 0;
       for(;;) {
           avpkt.size = fread(inbuf, 1, INBUF_SIZE, f);
           if (avpkt.size == 0)
               break;

           avpkt.data = inbuf;
           while (avpkt.size > 0) {

               len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);

               if (len < 0) {
                   fprintf(stderr, "Error while decoding frame %d\n", frame);
                   exit(1);
               }
               if (got_picture) {
                   printf("saving frame %3d\n", frame);
                   fflush(stdout);
                   for(i=0; iheight; i++)
                       fwrite(picture->data[0] + i * picture->linesize[0], 1, c->width, outf  );
                   for(i=0; iheight/2; i++)
                       fwrite(picture->data[1] + i * picture->linesize[1], 1, c->width/2, outf );
                   for(i=0; iheight/2; i++)
                       fwrite(picture->data[2] + i * picture->linesize[2], 1, c->width/2, outf );
                   frame++;
               }
               avpkt.size -= len;
               avpkt.data += len;
           }
       }

       avpkt.data = NULL;
       avpkt.size = 0;
       len = avcodec_decode_video2(c,picture, &got_picture, &avpkt);
       if(got_picture) {
           printf("saving last frame %d\n",frame);
           fflush(stdout);
           for(i=0; iheight; i++)
               fwrite(picture->data[0] + i * picture->linesize[0], 1, c->width, outf );
           for(i=0; iheight/2; i++)
               fwrite(picture->data[1] + i * picture->linesize[1], 1, c->width/2, outf );
           for(i=0; iheight/2; i++)
               fwrite(picture->data[2] + i * picture->linesize[2], 1, c->width/2, outf );
           frame++;
       }

       fclose(f);
       fclose(outf);

       avcodec_close(c);
       av_free(c);
       av_frame_free(&picture);
       printf("\n");
    }

    int main(int argc, char **argv){
       avcodec_register_all();
       video_decode("test", "trailer.264");

       return 0;
    }

    I also tried different videos in different formats (of course i changed the codec in the code in this case) like MPEG1, H263, H265, but none of those was working properly either.
    I hope someone can help me with this and tell me what I’m doing wrong here. Thanks

  • ffmpeg select frames using between

    17 décembre 2014, par skyuuka

    I use the following command to select the 18 to 22 frames of an video :

    ffmpeg -i input_video.avi -vf "select=between(n\,18\,22)" -f image2 frames_%3d.png

    But I get the following errors :

    Metadata:
       major_brand     : qt  
       minor_version   : 0
       compatible_brands: qt  
       creation_time   : 2013-01-04 21:17:15
       encoder         : 6.0.1
       encoder-eng     : 6.0.1
       date            : 2013-01-04T13:17:15-0800
       date-eng        : 2013-01-04T13:17:15-0800
     Duration: 00:00:09.17, start: 0.000000, bitrate: 20766 kb/s
       Stream #0.0(und): Video: h264 (Baseline), yuv420p, 1920x1080, 20765 kb/s, 29.97 fps, 29.97 tbr, 600 tbn, 1200 tbc
       Metadata:
         creation_time   : 2013-01-04 21:17:15
       Stream #0.1(und): Audio: aac, 44100 Hz, mono, s16, 61 kb/s
       Metadata:
         creation_time   : 2013-01-04 21:17:15
    Incompatible pixel format 'yuv420p' for codec 'png', auto-selecting format 'rgb24'
    [buffer @ 0x2589ac0] w:1920 h:1080 pixfmt:yuv420p
    [select @ 0x259da00] [Eval @ 0x7fff7a38e940] Missing ')' or too many args in 'between(n,18,22)'
    [select @ 0x259da00] Error while parsing expression 'between(n,18,22)'
    Error initializing filter 'select' with args 'between(n,18,22)'
    Error opening filters!
  • Is there a way to pipe input video into ffmpeg ?

    31 janvier 2019, par Joe Williams

    ffmpeg -f avfoundation -i "1:0" -vf "crop=1920:1080:0:0" -pix_fmt yuv420p -y -r 30 -c:a aac -b:a 128k -f flv rtmp://RTMP_SERVER:RTMP_PORT/STREAM_KEY

    Hello guys, the above command works pretty well. It records the audio/video of the computer. But what I want to do is pipe a repeating video or image(png/jpeg/gif), so that there is no live video feed from the computer, but just the image on the stream with the audio.

    How would you go about doing this ?

    Also, if you know any programming interfaces that can do this same thing, please give suggestions. Because I would rather not use a CLI.