Recherche avancée

Médias (91)

Autres articles (77)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (12586)

  • vf_colorspace : Add support for full range yuv

    26 août 2016, par Vittorio Giovara
    vf_colorspace : Add support for full range yuv
    

    Whenever a full range video is input, since the YUVJ* formats are not
    listed as supported for this filter, a range reduction takes place
    through the auto-inserted format filter, forcing the conversion to
    operate on a limited range,

    However the filter handles full range videos perfectly fine, so adding
    support to YUVJ* formats will allow skipping a conversion step, while
    providing completely identical results.

    Signed-off-by : Vittorio Giovara <vittorio.giovara@gmail.com>
    Reviewed-by : "Ronald S. Bultje" <rsbultje@gmail.com>
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavfilter/vf_colorspace.c
  • Revert to also converting parameters of range method to numbers. Closes gh-702

    22 mars 2013, par jcbowman
    Revert to also converting parameters of range method to numbers. Closes gh-702
    

    Unlike min/max, there's no range attribute in html5. For dates, min/max can be used.

  • How to get the latest frames in ffmpeg, not the next frame

    6 novembre 2014, par LawfulEvil

    I have an application which connects to an RTSP camera and processes some of the frames of video. Depending on the camera resolution and frame rate, I don’t need to process all the frames and sometimes my processing takes a while. I’ve designed things so that when the frame is read, its passed off to a work queue for another thread to deal with. However, depending on system load/resolution/frame rate/network/file system/etc, I occasionally will find cases where the program doesn’t keep up with the camera.

    I’ve found that with ffmpeg(I’m using the latest git drop from mid october and running on windows) that being a couple seconds behind is fine and you keep getting the next frame, next frame, etc. However, once you get, say, 15-20 seconds behind that frames you get from ffmpeg occasionally have corruption. That is, what is returned as the next frame often has graphical glitches (streaking of the bottom of the frame, etc).

    What I’d like to do is put in a check, somehow, to detect if I’m more than X frames behind the live stream and if so, flush the caches frames out and start fetching the latest/current frames.

    My current snippet of my frame buffer reading thread (C++) :

    while(runThread)
    {
       av_init_packet(&amp;(newPacket));

       int errorCheck = av_read_frame(context, &amp;(newPacket));
       if (errorCheck &lt; 0)
       {
           // error
       }
       else
       {

           int frameFinished = 0;
           int decodeCode = avcodec_decode_video2(ccontext, actualFrame, &amp;frameFinished, &amp;newPacket);

           if (decodeCode &lt;0)
           {
               // error
           }
           else
           if (decodeCode == 0)
           {
               // no frame could be decompressed / decoded / etc
           }
           else
           if ((decodeCode > 0) &amp;&amp; (frameFinished))
           {
               // do my processing / copy the frame off for later processing / etc
           }
           else
           {
               // decoded some data, but frame was not finished...
               // Save data and reconstitute the pieces somehow??
               // Given that we free the packet, I doubt there is any way to use this partial information
           }
           av_free_packet(&amp;(newPacket));
       }
    }

    I’ve google’d and looked through the ffmpeg documents for some function I can call to flush things and enable me to catch up but I can’t seem to find anything. This same sort of solution would be needed if you wanted to only occasionally monitor a video source(eg, if you only wanted to snag one frame per second or per minute). The only thing I could come up with is disconnecting from the camera and reconnecting. However, I still need a way to detect if the frames I am receiving are old.

    Ideally, I’d be able to do something like this :

    while(runThread)
    {
       av_init_packet(&amp;(newPacket));

       // Not a real function, but I'd like to do something like this
       if (av_check_frame_buffer_size(context) > 30_frames)
       {
           // flush frame buffer.
           av_frame_buffer_flush(context);
       }

       int errorCheck = av_read_frame(context, &amp;(newPacket));

       ...
       }
    }