Recherche avancée

Médias (3)

Mot : - Tags -/spip

Autres articles (76)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

Sur d’autres sites (9921)

  • why the output of mp3 decode sounds so delayed ?(with ffmpeg mp3lame lib)

    11 mars 2014, par user3401739

    i'm recording sound and encoding to mp3 with ffmpeg lib. then decode the mp3 data right away, play the decode data, but it's sounds so delayed.
    here are the codes :
    the function encode first parameter accepts the raw pcm data, len = 44100.

    encode parameters :

    cntx_->channels = 1;
    cntx_->sample_rate = 44100;
    cntx_->sample_fmt = 6;
    cntx_->channel_layout =  AV_CH_LAYOUT_MONO;
    cntx_->bit_rate = 8000;
    err_ = avcodec_open2(cntx_, codec_, NULL);

    vector<unsigned char="char">       encode(unsigned char* encode_data, unsigned int len)
    {
       vector<unsigned char="char"> ret;
       AVPacket avpkt;
       av_init_packet(&amp;avpkt);

       unsigned int len_encoded = 0;
       int data_left = len / 2;
       int miss_c = 0, i = 0;
       while (data_left > 0)
       {
           int sz = data_left > cntx_->frame_size ? cntx_->frame_size : data_left;
           mp3_frame_->nb_samples = sz;
           mp3_frame_->format = cntx_->sample_fmt;
           mp3_frame_->channel_layout = cntx_->channel_layout;

           int needed_size = av_samples_get_buffer_size(NULL, 1,
               mp3_frame_->nb_samples, cntx_->sample_fmt, 1);

           int r = avcodec_fill_audio_frame(mp3_frame_, 1, cntx_->sample_fmt, encode_data + len_encoded, needed_size, 0);

           int gotted = -1;

           r = avcodec_encode_audio2(cntx_, &amp;avpkt, mp3_frame_, &amp;gotted);
           if (gotted){
               i++;
               ret.insert(ret.end(), avpkt.data, avpkt.data + avpkt.size);
           }
           else if (gotted == 0){
               miss_c++;
           }
           len_encoded += needed_size;
           data_left -= sz;
           av_free_packet(&amp;avpkt);
       }
       return ret;
    }

    std::vector<unsigned char="char">  decode(unsigned char* data, unsigned int len)
    {
       std::vector<unsigned char="char"> ret;

       AVPacket avpkt;
       av_init_packet(&amp;avpkt);
       avpkt.data = data;
       avpkt.size = len;

       AVFrame* pframe = av_frame_alloc();
       while (avpkt.size > 0){
           int goted = -1;av_frame_unref(pframe);
           int used = avcodec_decode_audio4(cntx_, pframe, &amp;goted, &amp;avpkt);
           if (goted){
               ret.insert(ret.end(), pframe->data[0], pframe->data[0] + pframe->linesize[0]);
               avpkt.data += used;
               avpkt.size -= used;
               avpkt.dts = avpkt.pts = AV_NOPTS_VALUE;
           }
           else if (goted == 0){
               avpkt.data += used;
               avpkt.size -= used;
               avpkt.dts = avpkt.pts = AV_NOPTS_VALUE;
           }
           else if(goted &lt; 0){
               break;
           }
       }
       av_frame_free(&amp;pframe);
       return ret;
    }
    </unsigned></unsigned></unsigned></unsigned>

    Suppose it's the 100th call to encode(data, len), this "frame" would appear in 150th or later in the decode call, the latency is not acceptable. It seems the mp3lame encoder would keep the sample data for later use, but not my desire.
    I don't know what is going wrong. Thank you for any information.

    today i debug the code again and post some detail :

    encode : each pcm sample frame len = 23040 ,which is 10 times of mp3 frame size, each time call encode only output 9 frames, this output cause decode output 20736 samples, 1 frame(2304 bytes) is lost, and the sound is noisy.

    if the mp3 or mp2 encode is not suitable for real time voice transfer, which encoder should i choose ?

  • avformat/mp3dec : also accept Lavc as shortname to read delays

    24 octobre 2014, par Michael Niedermayer
    avformat/mp3dec : also accept Lavc as shortname to read delays
    

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavformat/mp3dec.c
  • avformat/mp3enc : Squeeze our mp3 encoder tag into the 9byte shortname instead of...

    24 octobre 2014, par Michael Niedermayer
    avformat/mp3enc : Squeeze our mp3 encoder tag into the 9byte shortname instead of randomly truncating
    

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavformat/mp3enc.c