Recherche avancée

Médias (91)

Autres articles (39)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Création définitive du canal

    12 mars 2010, par

    Lorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
    A la validation, vous recevez un email vous invitant donc à créer votre canal.
    Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
    A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...)

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

Sur d’autres sites (4947)

  • x86 : Avoid some bypass delays and false dependencies

    11 octobre 2015, par Henrik Gramner
    x86 : Avoid some bypass delays and false dependencies
    

    A bypass delay of 1-3 clock cycles may occur on some CPUs when transitioning
    between int and float domains, so try to avoid that if possible.

    • [DH] common/x86/deblock-a.asm
    • [DH] common/x86/mc-a.asm
    • [DH] common/x86/pixel-a.asm
    • [DH] common/x86/predict-a.asm
    • [DH] common/x86/sad-a.asm
    • [DH] common/x86/x86util.asm
  • lavf/segment : add new option segment_clocktime_wrap_duration

    18 janvier 2016, par Marton Balint
    lavf/segment : add new option segment_clocktime_wrap_duration
    

    This option can force the segmenter to only start a new segment if a packet
    reaches the muxer within the specified duration after the segmenting clock
    time, which makes it more resilient to backward local time jumps, such as leap
    seconds or transition to standard time from daylight savings time.

    Reviewed-by : Stefano Sabatini <stefasab@gmail.com>
    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] doc/muxers.texi
    • [DH] libavformat/segment.c
  • What's the reason of failed to read from input stream while playing in ffmpeg

    5 février 2016, par Long Bai

    I’m using ffmpeg library in qt compiled with mingw.
    I’m going to read from rtmp stream, process video frame and write to another rtmp stream.
    I refered ffmpeg examples and developed it.
    It works well with local video stream.
    But on the internet stream, it is failed to read from input stream after a few seconds playing.
    What’s the reason of this problem ?
    Thanks for your answer.

    Here is my code.
    as you can see the following, on the line "ret=av_read_frame(m_pInContext,&inPacket)" return negative value.

    while (!m_bAborted)

    // read stream.
    int64_t tstart = av_gettime_relative() ;
    ret = av_read_frame(m_pInContext, &inPacket) ;
    if (ret < 0)
    SetError("Failed to read input stream.") ;
    break ;
    //continue ;

       if (inPacket.stream_index == m_nVideoStreamIdx)
       {
           do
           {
               // decode frame.
               int decodedLen = DecodePacket(m_pInFrame, &amp;inPacket, &amp;got_frame, 1);
               if (decodedLen &lt; 0)
                   break;

               if (got_frame)
               {
                   // convert frame from yuv420 to rgb24.
                   if (sws_ctx1)
                   {
                       sws_scale(sws_ctx1, m_pInFrame->data, m_pInFrame->linesize, 0, m_nHeight, pRawData, arrRawDataLineSize);
                   }

                   // image processing to remove the code and ads on video.
                   if (m_pListener)
                       m_pListener->OnFrame(pRawData[0], m_nWidth, m_nHeight, arrRawDataLineSize[0], AV_PIX_FMT_RGB24, 24);

                   // convert from rgb24 to yuv420 to write to the output stream.
                   if (sws_ctx2)
                   {
                       sws_scale(sws_ctx2, pRawData, arrRawDataLineSize, 0, m_nHeight, m_dst_picture.data, m_dst_picture.linesize);
                   }

                   // increase frame number.
                   frameCount ++;

                   // write to the output stream.
                   ret = WriteVideoFrame(m_pOutContext, m_pOutVideoStream, &amp;frameCount);
                   if (ret &lt; 0) {
                       if (sws_ctx2)
                           sws_freeContext(sws_ctx2);
                       sws_ctx2 = NULL;
                       CloseOutputStream();

                       SetError("Failed to write video stream.");
                   }

                   // estimate frame time and sleep.
                   //clock_t tend = clock();
                   int64_t tend = av_gettime_relative();
                   frameDuration = tend-tstart;//(long)(1000 * (tend - tstart) / CLOCKS_PER_SEC);
                   if (1000*frameTime - frameDuration > 0)
                       av_usleep(1000*frameTime - frameDuration);
                       //QThread::msleep(frameTime - frameDuration);
                   tstart = tend;
               }

               // if there is another frame in the packet, then loop.
               inPacket.size -= decodedLen;
               inPacket.data += decodedLen;
           }while(inPacket.size > 0);
       }

       else if (m_pOutContext)
       {

       }

       av_packet_unref(&amp;inPacket);
    }