Recherche avancée

Médias (0)

Mot : - Tags -/masques

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

Autres articles (87)

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

  • MediaSPIP Init et Diogène : types de publications de MediaSPIP

    11 novembre 2010, par

    À l’installation d’un site MediaSPIP, le plugin MediaSPIP Init réalise certaines opérations dont la principale consiste à créer quatre rubriques principales dans le site et de créer cinq templates de formulaire pour Diogène.
    Ces quatre rubriques principales (aussi appelées secteurs) sont : Medias ; Sites ; Editos ; Actualités ;
    Pour chacune de ces rubriques est créé un template de formulaire spécifique éponyme. Pour la rubrique "Medias" un second template "catégorie" est créé permettant d’ajouter (...)

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

Sur d’autres sites (7756)

  • Live Streaming RTMP to RTSP

    19 septembre 2013, par user2794054

    i need to test a restream work like this.
    now i m using crtmpserver. i want to restream rtmp live source to iis smooth streaming format & rtsp format. Please guide me
    rtmp live to rtsp live
    &
    rtmp to live http streaming (target IIS server)

    Thanks

  • Streaming Audio with OpenAL and FFMPEG

    28 janvier 2013, par Michael Barth

    Alright, basically I'm working on a simple video player and I'll probably be asking another question about lagging video\syncing to audio later, but for now I'm having a problem with audio. What I've managed to do to is go through all of the audio frames of a video and add them to a vector buffer then play the audio from that buffer using OpenAL.

    This is inefficient and memory hogging and so I need to be able stream it using what I guess is called a rotating buffer. I've ran into problems, one being that there's not a lot of information on streaming with OpenAL let alone the proper way to decode audio with FFMPEG and pipe it to OpenAL. I'm even less comfortable using a vector for my buffer because I honestly have no idea how vectors work in C++, but I some how managed to pull something out of my head to make it work.

    Currently I have a Video class that looks like this :

    class Video
    {
       public:
           Video(string MOV);
           ~Video();
           bool HasError();
           string GetError();
           void UpdateVideo();
           void RenderToQuad(float Width, float Height);
           void CleanTexture();
       private:
           string FileName;
           bool Error;
           int videoStream, audioStream, FrameFinished, ErrorLevel;
           AVPacket packet;
           AVFormatContext *pFormatCtx;
           AVCodecContext *pCodecCtx, *aCodecCtx;
           AVCodec *pCodec, *aCodec;
           AVFrame *pFrame, *pFrameRGB, *aFrame;

           GLuint VideoTexture;
           struct SwsContext* swsContext;

           ALint state;
           ALuint bufferID, sourceID;
           ALenum format;
           ALsizei freq;

           vector  bufferData;
    };

    The bottom private variables are the relevant ones. Currently I'm decoding audio in the class constructor to an AVFrame and adding the data to bufferData like so :

       av_init_packet(&packet);

       alGenBuffers(1, &bufferID);
       alGenSources(1, &sourceID);

       alListener3f(AL_POSITION, 0.0f, 0.0f, 0.0f);

       int GotFrame = 0;

       freq = aCodecCtx->sample_rate;
       if (aCodecCtx->channels == 1)
           format = AL_FORMAT_MONO16;
       else
           format = AL_FORMAT_STEREO16;

       while (av_read_frame(pFormatCtx, &packet) >= 0)
       {
           if (packet.stream_index == audioStream)
           {
               avcodec_decode_audio4(aCodecCtx, aFrame, &GotFrame, &packet);
               bufferData.insert(bufferData.end(), aFrame->data[0], aFrame->data[0] + aFrame->linesize[0]);
               av_free_packet(&packet);
           }
       }
       av_seek_frame(pFormatCtx, audioStream, 0, AVSEEK_FLAG_BACKWARD);

       alBufferData(bufferID, format, &amp;bufferData[0], static_cast<alsizei>(bufferData.size()), freq);

       alSourcei(sourceID, AL_BUFFER, bufferID);
    </alsizei>

    In my UpdateVideo() is where I'm decoding video to an OpenGL texture through the video stream, so it would make sense for me to decode my audio there and stream it :

    void Video::UpdateVideo()
    {
       alGetSourcei(sourceID, AL_SOURCE_STATE, &amp;state);
       if (state != AL_PLAYING)
           alSourcePlay(sourceID);
       if (av_read_frame(pFormatCtx, &amp;packet) >= 0)
       {
           if (packet.stream_index == videoStream)
           {
               avcodec_decode_video2(pCodecCtx, pFrame, &amp;FrameFinished, &amp;packet);
               if (FrameFinished)
               {
                   sws_scale(swsContext, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);
                   av_free_packet(&amp;packet);
               }
           }
           else if (packet.stream_index == audioStream)
           {
               /*
               avcodec_decode_audio4(aCodecCtx, aFrame, &amp;FrameFinishd, &amp;packet);
               if (FrameFinished)
               {
                   //Update Audio and rotate buffers here!
               }
               */
           }
           glGenTextures(1, &amp;VideoTexture);
           glBindTexture(GL_TEXTURE_2D, VideoTexture);
           glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
           glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
           glTexImage2D(GL_TEXTURE_2D, 0, 3, pCodecCtx->width, pCodecCtx->height, 0, GL_RGB, GL_UNSIGNED_BYTE, pFrameRGB->data[0]);
       }
       else
       {
           av_seek_frame(pFormatCtx, videoStream, 0, AVSEEK_FLAG_BACKWARD);
       }
    }

    So I guess the big question is how do I do it ? I've got no clue. Any help is appreciated, thank you !

  • FFMPEG multi bitrate wowza live streaming keyframe alignment

    27 septembre 2013, par Michael Dietriech

    I tried live streaming with ffmpeg to wowza but even though i use -r 25 -g 50 -keyint_min 50 -sc_threshold 0, the keyframes don't seem to be aligned at the same place of the stream for all the outputs so when Wowza makes chunks for HLS out of it, the keyframes don't get alligned at the beginning of each chunk.

    Any suggestions ?