Recherche avancée

Médias (1)

Mot : - Tags -/sintel

Autres articles (62)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10258)

  • h264 via WebRTC latency issue

    18 septembre 2024, par Lucas

    I am trying to send a video stream encoded with h264 (hardware accelerated with nvidia encoder) via WebRTC for low latency display on a browser.

    


    More precisely, I have a thread that encodes an opengl framebuffer at a fixed frame rate, the resulting AVPacket's data (I encode using ffmpeg's C api) is then forwarded via WebRTC to the client (using aiortc)

    


    The problem is that I observe significant delays, that seem to depend on the frame rate I use.
For example, running it locally, I get around 160ms delay when running at 30fps, and around 30ms when encoding at 90fps.

    


    The delay here is the measured time to encode + transmit + decode, and I have the strong impression that the issue happen when presenting the video frame, like the browser is not immediately presenting the frame... (encoding is fast, I would expect the transmission to be also rather fast on a local setup, and decoding seems to be fine as well, as reported by the RTP stats in the browser).

    


    I tried to play with RTP timestamps, but that did not change anything, the only variable that seems to impact the latency is the encoding thread 'frequency'.

    


    Any idea on what could be creating this latency ? Am I missing a parameter ?

    


    Also, here are the codec options I use : (they do not influence the latency that much from what I experimented)

    


    profile = high
preset = llhq  # low latency, high quality
tune = zerolatency
zerolatency = 1
g = 2 * FRAME_PER_SECOND  # key frame every 2s
strict-gop = 1


    


    UPDATE

    


    I have the impression that the jitter buffer on Chrome's side is kind of preventing the rtp packets to be decoded immediately, is that possible ?

    


    UPDATE 2

    


      

    • Using RTP playout-delay header extension slightly reduced the latency.
    • 


    • Setting playoudDelayHint in browser also seemed to help a bit
    • 


    


    UPDATE 3

    


    After further investigations, I came to the conclusion that it was not possible to get a lower latency by going through the standard webrtc for video streams, as there is little to no control on the video buffering, which I believe to be responsible of the observed latency.

    


    On a side note, I tried to check how google stadia is doing it, as they seem to use WebRTC as well, but they use some in-house frameworks... (plus Chrome is the only supported browser)

    


  • FFMPEG Compilation on Windows 32 bit Vs 64 bit

    15 janvier 2016, par ARK

    When I try to compile ffmpeg using MinGW, targeting 32-bit, I observed below error for several files :

    c :\mingw\include\unistd.h:79:1 : error : expected ’,’ or ’ ;’ before
    ’int’
    int __mingw_sleep( unsigned long, unsigned long ) ;
    ^
    In file included from c :\mingw\include\zconf.h:452:0,
    from c :\mingw\include\zlib.h:34,
    from c :/Work/FFMPEG_2.8.4/src/libavcodec/pngenc.c:35 :
    c :\mingw\include\unistd.h:105:1 : error : expected ’,’ or ’ ;’ before
    ’int’
    int nanosleep( const struct timespec *, struct timespec * ) ;
    ^
    c :\mingw\include\unistd.h:125:28 : error : expected ’,’ or ’ ;’
    before ’usleep’
    int _cdecl __MINGW_NOTHROW usleep( useconds_t
    )__MINGW_ATTRIB_DEPRECATED ;
    ^
    c :\mingw\include\unistd.h:138:10 : error : conflicting types for ’_cdecl’
    unsigned _cdecl
    __MINGW_NOTHROW sleep( unsigned ) ;
    ^
    c :\mingw\include\unistd.h:125:5 : note : previous declaration of ’_cdecl’ was here

    int _cdecl _MINGW_NOTHROW usleep( useconds_t
    )_MINGW_ATTRIB_DEPRECATED ;
    ^
    c :\mingw\include\unistd.h:138:33 : error : expected ’,’ or ’ ;’ before ’sleep’
    unsigned _cdecl _MINGW_NOTHROW sleep( unsigned ) ;
    ^
    c :\mingw\include\unistd.h:153:12 : error : expected ’=’, ’,’, ’ ;’, ’asm’ or ’_att
    ribute__’ before
    ’ftruncate’ int _cdecl ftruncate( int, off_t ) ;
    ^
    make : *** [libavcodec/pngenc.o] Error 1

    Similar issue was faced by someone and I provided a solution (workaround) in another forum

    Recently, I started FFMPEG compilation targeting to 64-bit. FFMPEG code (version 2.8.4) downloaded from the ffmpeg site compiled straight for 64-bit. I was expecting errors, but surprisingly I don’t see above errors. Then I thought FFMPEG could have fixed the issues, but it started showing up above errors again when I compiled it for 32-bit. Initially I thought it may be to do with my compilation environment, but similar issue was faced by some other people as well. So, I can confidently rule out the compilation environment factor.

    So the question here is, how come above error is specific to 32-bit. I couldn’t understand a bit, any idea about this behavior ??

  • ARM compiler update

    15 janvier 2010, par Mans — ARM, Compilers

    Since my last shootout, all the tested vendors have updated their compilers. Here is a quick update on each of them.

    Both the 4.3 and 4.4 branches of FSF GCC have had bugfix releases, bringing them to 4.3.4 and 4.4.2, respectively. Neither update contains anything particularly noteworthy.

    The CodeSourcery 2009q3 release sees an update to a GCC 4.4 base, a significant change from the 4.3 base used in 2009q1. The update is a mixed blessing. In fact, it is mostly a curse and hardly a blessing at all. On the bright side, the floating-point speed regressions in 2009q1 are gone, 2009q3 being a few per cent faster even than 2007q3. Unfortunately, this improvement is completely overshadowed by a major speed regression on integer code, a whopping 24% in one case. This ties in with the slowdown previously observed with FSF GCC 4.4 compared to 4.3.

    ARM RVCT 4.0 is now at Build 697. This update fixes some bugs and introduces others. Notably, it no longer builds FFmpeg correctly. The issue has been reported to ARM.

    Texas Instruments, finally, have made a formal release, v4.6.1, of their TMS470 compiler incorporating various fixes allowing it to build a moderately patched FFmpeg. The performance remains somewhere between GCC and RVCT on average.

    In light of the above, my recommendations remain unchanged :

    • For a free compiler, choose CodeSourcery 2009q1. It beats GCC 4.3.4 by 5-10% in most cases.
    • GNU purists are best served by GCC 4.3.4, which is up to 20% faster than 4.4.2 and rarely slower.
    • When price is not a concern, ARM RCVT is a good option, outperforming GCC by up to a factor 2.
    • In all cases, disable any auto-vectorisation features.

    Regardless of which compiler is chosen, I cannot overstress the importance of testing. All compilers are crawling with bugs, and even the most innocent-looking code change can trigger one of them. When using a compiler other than GCC, extra caution is advised considering a lot of code is developed using only GCC and may thus fall prey to bugs unique to said other compiler.