Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (39)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (9872)

  • Making a movie out of pictures in correct order

    6 novembre 2022, par astrogab

    Short version

    


    How can one combine files img1000.png, img5000.png, img10000.png, img11000.png in the right order into a movie ?

    


    Longer version

    


    I am using ffmpeg to make a movie out of snapshots of a simulation. There should be for instance 5 images per second. The names are :

    


    image0200.png
image0300.png
image0400.png
image0500.png
image1000.png
image1500.png
image2000.png
...
image8500.png
image9000.png
image9500.png
image10000.png
image15000.png


    


    i.e., they are sequential but there are irregular gaps in the numbers. The numbers are formatted according to '%04d' but go above 9999. I have tried

    


    ffmpeg -y -loglevel debug -nostats \
-r:v 5 -thread_queue_size 1024 -f image2 \
-pattern_type glob -i "*[0-9][0-9][0-9][0-9].png" \
-r:v 30 -preset veryslow -pix_fmt yuv420p -crf 28 \
-an  AMDG.mp4


    


    and many, many other variations but either only two frames end up being visible in the movie (even though the images are found when using -debug) or only the files up to image9500.png are used (and glob does not seem to allow [0-9]{4,} as for regex), or, with

    


        ffmpeg -y -loglevel debug -nostats \
    -r:v 5 \
    -thread_queue_size 1024 -f image2 -pattern_type glob \
       -i "image[0-9][0-9][0-9][0-9].png" \
    -r:v 5 \
    -thread_queue_size 1024 -f image2 -pattern_type glob \
       -i "image[1-9][0-9][0-9][0-9][0-9].png" \
    -r:v 30 -preset veryslow -pix_fmt yuv420p -crf 28 \
    -map 0 -map 1 \
    -an  AMDG.mp4


    


    there are apparently two streams in the output movie and only one of them is being played. (I realised in the process -map 0 -map 1 was needed in order for both input streams to be used.)

    


    In one of the variations of options I found (now I have lost what it was exactly !) all images were included but the order was not the desired one : image1000.png was shown before image10000.png. Apparently a newer version of ffmpeg (I have ffmpeg version 3.4.8-0ubuntu0.2) has the ability to sort like sort -V, so that image10000 come after image1000, but reinstalling ffmpeg is in general not a practical option. Also renaming the files is not practical and creating e.g. soft links with sequential names in the format '%05d' starting at 0 and in steps of 1 (so that -i '%05d' could be used) is of course not elegant.

    


    With the -concat filter as in https://unix.stackexchange.com/questions/77016/ffmpeg-pattern-type-glob-not-loading-files-in-correct-order, i.e.,

    


      ffmpeg -y -loglevel debug -nostats -r:v 5 \
    -thread_queue_size 1024 -f image2 -f concat \
    -safe 0 -i <(find . -maxdepth 1 -regex 'image*.png' \
       -exec echo "file $(pwd)/"{} \; | sort -V) \
    -r:v 30 -codec:v libx264 -preset veryslow -pix_fmt yuv420p -crf 28 \
    -an \
    AMDG.mp4


    


    the processing took a long time and made the whole system sluggish, while producing a movie of 60 kB showing only two different images.

    


    I have the impression that there are several issues at once... Thanks if you can help !

    


  • iPhone ffmpeg dev using libav to decode from AMR to ACC codec

    10 octobre 2011, par VictorT

    It seems to be that, the AMR support of AudioQueue has been disappeared since iOS 4.3 was released. I can't use audio frame received from RSTP server with old way :

    audioFormat.mFormatID = kAudioFormatAMR;
    int err = AudioQueueNewOutput(&audioFormat, MyAudioQueueOutputCallback, self, NULL, kCFRunLoopCommonModes, 0, &audioQueue);

    As a result I received an error in last string.

    Maybe someone know how to decode AMR AVPacket into raw buffer and encode it with AAC or MP3 using LIBAV ?

    I've tried to use

    avcodec_decode_audio3

    It works and I can get raw buffer but when I'm trying to encode it with

    avcodec_encode_audio

    I get 0 as result

    This is my method to encode buffer :

    - (AVPacket) encodeRawFrame:(const short *) in_buffer withSize:(unsigned int) in_buf_byte_size
    {
       AVPacket res;
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int count, out_size, outbuf_size, frame_byte_size;
       uint8_t *outbuf;

       avcodec_init();
       avcodec_register_all();

       printf("Audio encoding\n");

       codec = avcodec_find_encoder(CODEC_ID_AAC);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           return res;
       }

       c= avcodec_alloc_context();

       c->bit_rate = 64000;
       c->sample_rate = 24000;
       c->channels = 2;

       if (avcodec_open(c, codec) < 0)
       {
           fprintf(stderr, "could not open codec\n");
       }
       else
       {
           frame_byte_size=c->frame_size*2*2;
           count = in_buf_byte_size/frame_byte_size;

           fprintf(stderr, "Number of frames: %d\n", count);

           outbuf_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
           outbuf = (uint8_t*) malloc(outbuf_size);

           out_size = avcodec_encode_audio(c, outbuf, outbuf_size, &in_buffer[frame_byte_size*i]);
           if(out_size >= 0)
           {
               res.size = outbuf_size;
               res.data = malloc(outbuf_size);                
           }

           free(outbuf);
       }


       avcodec_close(c);
       av_free(c);
       return res;
    }

    After encoding "out_size" is always 0 and result buffer is empty.

    Thanks.

  • Iphone Streaming and playing Audio Problem

    20 août 2011, par KayKay

    I am trying to make an app that plays audio stream using ffmpeg, libmms.
    I can open mms server, get stream, and decode audio frame to raw frame using suitable codec.
    However I don't know how to do next.
    I think I must use AudioToolbox/AudioToolbox.h and make audioqueue.
    but however when I give audioqueuebuffer decode buffer's memory and play, Only plays the white noise.
    Here is my code.

    What am i missing ?
    Any comment and hint is very appreciated.
    Thanks very much.

    while(av_read_frame(pFormatCtx, &pkt)>=0)
    {
       int pkt_decoded_len = 0;
       int frame_decoded_len;
       int decode_buff_remain=AVCODEC_MAX_AUDIO_FRAME_SIZE * 5;
       if(pkt.stream_index==audiostream)
       {
           frame_decoded_len=decode_buff_remain;
           int16_t *decode_buff_ptr = decode_buffer;
           int decoded_tot_len=0;
           pkt_decoded_len = avcodec_decode_audio2(pCodecCtx, decode_buff_ptr, &frame_decoded_len,
                                                   pkt.data, pkt.size);
           if (pkt_decoded_len <0) break;
           AudioQueueAllocateBuffer(audioQueue, kBufferSize, &buffers[i]);
           AQOutputCallback(self, audioQueue, buffers[i], pkt_decoded_len);

           if(i == 1){
               AudioQueueSetParameter(audioQueue, kAudioQueueParam_Volume, 1.0);
               AudioQueueStart(audioQueue, NULL);
           }
           i++;
       }
    }


    void AQOutputCallback(void *inData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, int copySize)
    {
       mmsDemoViewController *staticApp = (mmsDemoViewController *)inData;
       [staticApp handleBufferCompleteForQueue:inAQ buffer:inBuffer size:copySize];
    }

    - (void)handleBufferCompleteForQueue:(AudioQueueRef)inAQ
                             buffer:(AudioQueueBufferRef)inBuffer
                               size:(int)copySize
    {
       inBuffer->mAudioDataByteSize = inBuffer->mAudioDataBytesCapacity;
       memcpy((char*)inBuffer->mAudioData, (const char*)decode_buffer, copySize);

       AudioQueueEnqueueBuffer(inAQ, inBuffer, 0, NULL);
    }