Recherche avancée

Médias (1)

Mot : - Tags -/getid3

Autres articles (72)

Sur d’autres sites (9834)

  • Playing RTSP in WPF application with low latency using FFMPEG / FFMediaElement (FFME)

    22 mars 2019, par Paboka

    I’m trying to use FFMediaElement (FFME, WPF MediaElement replacement based on FFmpeg) component to play RSTP live video in my WPF application.

    I have a good connection to my camera and I want to play it with minimum available latency.

    I’ve reduced the latency by changing ProbeSize to its minimal value :

    private void Media_OnMediaInitializing(object Sender, MediaInitializingRoutedEventArgs e)
    {
     e.Configuration.GlobalOptions.ProbeSize = 32;
    }

    But I still have about 1 second of latency since the very beginning of the stream. I mean, when I start playing, I have to wait for 1 second till the video appears and then I have 1s of latency.

    I’ve also tried to change following parameters :

    e.Configuration.GlobalOptions.EnableReducedBuffering = true;
    e.Configuration.GlobalOptions.FlagNoBuffer = true;
    e.Configuration.GlobalOptions.MaxAnalyzeDuration = TimeSpan.Zero;

    but it gave no result.

    I measured time-interval between FFmpeg output lines (the number in the first column is the time, elapsed from the previous line, ms)

    ----     OpenCommand: Entered
      39     FFInterop.Initialize: FFmpeg v4.0
       0     EVENT START: MediaInitializing
       0     EVENT DONE : MediaInitializing
     379     EVENT START: MediaOpening
       0     EVENT DONE : MediaOpening
       0     COMP VIDEO: Start Offset:      0,000; Duration:        N/A
      41     SYNC-BUFFER: Started.
     609     SYNC-BUFFER: Finished. Clock set to 1534932751,634
       0     EVENT START: MediaOpened
       0     EVENT DONE : MediaOpened
       0     EVENT START: BufferingStarted
       0     EVENT DONE : BufferingStarted
       0     OpenCommand: Completed
       0     V BLK: 1534932751,634 | CLK: 1534932751,634 | DFT:    0 | IX:   0 | PQ:     0,0k | TQ:     0,0k
       0     Command Queue (1 commands): Before ProcessNext
       0        Play - ID: 404 Canceled: False; Completed: False; Status: WaitingForActivation; State:
      94     V BLK: 1534932751,675 | CLK: 1534932751,699 | DFT:   24 | IX:   1 | PQ:     0,0k | TQ:     0,0k

    So, the most the process of "sync-buffering" takes the most of the time.

    Is there any parameter of FFmpeg which allows reducing a size of the buffer ?

  • ffmpeg Cg shader ITU 709 YCbYg

    22 juillet 2018, par user2517097

    I have a viewer (mrViewer at sourceforge) that displays movie files by feeding YCbCr images and merging them later in a shader. Currently I am trying to track a color issue in my viewer, not displaying DNxHD movies properly. The EXR file is to be seen in RGB, not scene linear. The movie was created from that EXR file in Nuke (a comp program). All movie files are converted from EXR image without color space conversion in NUKE 11. All movie files are encoded with video color range.

    Color_Profile_nuke11.exr

    Color_Profile_nuke11_DNxHD_mov64_444.mov

    Color_Profile_nuke11_DNxHD_mov64_422.mov

    In the shader, I do (simplified Cg code) :

     half3 pre;

     pre.r = tex2D(YImage, tc).r;  // Y
     pre.g = tex2D(UImage, tc).r;  // U
     pre.b = tex2D(VImage, tc).r;  // V

     half3 c;

     if ( coeffs )
     {
         pre += Koff;

         c.r = dot(Kr, pre);
         c.g = dot(Kg, pre);
         c.b = dot(Kb, pre);
     }
     else
     {

         half3 yuv;

         yuv.r = 1.1643 * ( pre.r - 0.0625 );
         yuv.g = pre.g - 0.5;
         yuv.b = pre.b - 0.5;

         c.r = yuv.r + 1.5958 * yuv.b;
         c.g = yuv.r - 0.39173 * yuv.g - 0.81290 * yuv.b;
         c.b = yuv.r + 2.017 * yuv.g;
     }

     Out output;
     output.pixel = c;
     return output;



    // Send coeffs to shader shader (C++ code)
    {
    _shader->setUniform( "coeffs", 1 );
    // HDTV  YCbCr coefficients
    _shader->setUniform( "Koff", 0.0f, -0.5f, -0.5f );
    _shader->setUniform( "Kr", 1.0f, 0.0f, 1.28033f );
    _shader->setUniform( "Kg", 1.0f, -0.21482f, -0.38059f );
    _shader->setUniform( "Kb", 1.0f, 2.12798f, 0.0f );
    }

    Now, my problem is that the ITU 709 (the one with the dot() calls) path seems to not be behaving properly. It creates a washed out image. I am wondering if this has to do with full jpeg and full mpeg not having taken into account or whether my coefficients are wrong.

    If I set the color matrix to ITU709 in my C++ code with the ffmpeg library and let its swscale do the conversion, I get good color correspondence in the image if I select the (default) 601 path in the shader.

  • Anomalie #3920 (Nouveau) : sur Sauvegarde SQLite (SPIP 3.1.3 et 3.1.4 mini)

    11 mars 2017, par YannX DYX

    En SPIP 3 la sauvegarde standard pose parfois des problèmes, que j’ai trop souvent vus...
    Cette fois j’ai investigué sur un SPIP 3.1.4 OVH (avec prefix spécifique), toutes les tables ne sont pas sauvegardées, au contraire de la sauvegarde SQL : certes un message existe mais !
    - d’une part des tables vides ou non déclarées dans un plugin activé sont omises : pourquoi ?
    (encore une fois au contraire de la sauvegarde SQL encore disponible en plugin !)
    => est-il possible d’apporter un lien vers une aide plus détaillée, explicitant les causes possibles ?
    (cf. http://forum.spip.net/fr_262960.html & http://forum.spip.net/fr_266342.html par exemple).
    - le long libellé affiché <:dump:texte_sauvegarde:> ne signale aucunement ces aspects et indications ; le lien vers http://www.spip.net/fr_article1489.html est-il encore pertinent (je n’ai jamais tenté une restauration d’une autre version SQLite : comment se passerait une table non déclarée ou non connue dans le SPIP cible ? ) ?
    - d’autre part la lecture du message en fin des erreurs est peu explicite à la lecture (cf. ci-dessous),
    il me semblerait plus significatif d’afficher : Nombre de tables non sauvegardées : 12/58
    - d’ailleurs l’affichage est incorrect, car il n’indique pas le bon préfixe (en cas de préfixe non-standard !!)
    (et de ce fait, je vais avouer avoir jusqu’à présent négligé ces erreurs incomprises, et... patatras !)
    _ S’il est intéressant de faire une sauvegarde dé-préfixée (ce que j’ai parfois trouvé utile), peut-etre serait-il intéressant de faire apparaitre (dans un commentaire ou une meta) le préfixe d’origine, à titre de documentation !

    En recherchant de la documentation, je n’ai trouvé que http://www.spip.net/fr_article3418.html qui mériterait peut-etre d’etre complété avec les informations/explications ci-dessus (et leurs conséquences)...

    En complément, le site exemple ayant été migré d’anciennes versions SPIP 2, montre encore les anciennes tables@ spip_mots_xx@
    je ne me souviens pas d’un plugin qui éliminerait ces anciennes tables résiduelles (pour ceux qui ne savent utiliser phpMyAdmin ou Adminer)... ce qui supprimerait ensuite ces erreurs / voir par exemple sur les forums SPIP)