Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (73)

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

  • 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

  • Taille des images et des logos définissables

    9 février 2011, par

    Dans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
    Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...)

Sur d’autres sites (7780)

  • Spotlight : Alwaysdata.com the company behind Piwik.org web hosting [Interview]

    11 avril 2013, par matt — About, Community

    Piwik is the result of the work of many talented individuals and companies. Today we’d like to showcase Alwaysdata.com, the awesome web hosting company providing managed hosting for all Piwik.org websites and services.

    I recently met and asked a few questions to Cyril, co-founder of Alwaysdata.com and Piwik core developer. Learn more in the interview below !

    What is Alwaysdata ?

    We are a French web hosting company created in 2006. If you need to host a website — a Piwik installation, for example — or even your domains/emails, we provide infrastructure and maintenance services.

    Who are your customers and what kind of work do you do ?

    We have several types of clients :

    • Individuals who need hosting for their personal site and who benefit from storage space with direct SSH access.
    • Web agencies who need hosting for their clients’ sites.
    • The largest customers, often on dedicated servers, for hosting their site/infrastructure.

    Our work falls into three categories :

    1. Support (via administration, telephone, Twitter, IRC, etc.)
    2. Development (in Python), primarily to add new features
    3. System administration, either for maintenance (e.g. adding servers), or for preparing new features

    What sets Alwaysdata apart from the large web hosting competition ?

    Two things :

    • Availability. We are a small team and often know our customers quite well. We are all on IRC, so you can contact us directly if you need any assistance.
    • Features. We are halfway between traditional web hosting and the cloud, combining the advantages of both.

    Are you using Piwik internally or with customers ? If so, how are you using Piwik ?

    All of our customers can view statistics for their sites via our global Piwik installation, without having to configure anything.

    To provide these analytics reports to our customers, we implemented import of the raw access logs in Piwik. The Log import toolkit is now a feature included in Piwik.

    What is the next big thing for Alwaysdata ?

    We are going to upgrade our pricing : instead of fixed costs, each of our clients will now pay exactly what they consume. This allows our clients the benefit of a very high quality service for the lowest possible price.

    We are also going to add native support for more technologies : Java, Node.js, ZeroMQ, etc.

    Thank you for your time and all the best to Alwaysdata for the future !

    Note from Matt, Piwik founder : Cyril and the team at Alwaysdata.com have been consistently great in their system administration work for Piwik.org services, providing a fast and reliable web hosting experience with top notch support and security practises. They also handled the migration of all services from our old servers with total piece of mind.

    Alwaysdata contributed to Piwik the popular Log Analytics toolkit. They are great software developers and system administrators with a passion for their work. Since 2006, they have been maintaining optimized hosting services for the entire web infrastructure (websites, domains, emails, databases, etc.), from the simplest to the most exotic. We do recommend their managed hosting services.

    Learn more

  • FFMPEG intermittent failures reading live RTMP stream

    22 janvier 2019, par stevendesu

    The Command

    I’m attempting to read a live RTMP stream and save the result to a file with the following command :

    ffmpeg -re -rtmp_live live -y -i "rtmp://<server>/<app>/<stream>" -c copy -f flv /tmp/dump.flv
    </stream></app></server>

    I run this command then after 10-15 seconds I kill the process and check /tmp/dump.flv. I’m trying to do this for stream diagnostic purposes (determine the encoding, bitrate, resolution, pixel format, and key frame interval of the live stream)

    This command works about 25-50% of the time. When it works FFMPEG takes about 5 seconds to connect to the stream, then it begins dumping data to disk. After I kill the process, I can find a couple of megabytes of video data in /tmp/dump.flv which can be probed using ffprobe.

    When the command fails, it goes into one of two failure states :

    Failure State 1

    stderr is flooded with a series of messages about "missing picture in access unit with size X", and the output file /tmp/dump.flv is created but contains 0 bytes

    ffmpeg version 3.4.4-1~16.04.york0 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
     configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [NULL @ 0x55b72d568920] pps_id 381 out of range
    [AVBSFContext @ 0x55b72d5692c0] Invalid NAL unit 0, skipping.
       Last message repeated 1 times
    [h264 @ 0x55b72d568920] Invalid NAL unit 0, skipping.
       Last message repeated 1 times
    [h264 @ 0x55b72d568920] no frame!
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2200
    [AVBSFContext @ 0x55b72d5692c0] Invalid NAL unit 0, skipping.
       Last message repeated 2 times
    [h264 @ 0x55b72d568920] Invalid NAL unit 0, skipping.
       Last message repeated 2 times
    [h264 @ 0x55b72d568920] no frame!
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3171
    [AVBSFContext @ 0x55b72d5692c0] Invalid NAL unit 0, skipping.
    [h264 @ 0x55b72d568920] Invalid NAL unit 0, skipping.
    [h264 @ 0x55b72d568920] no frame!
    [NULL @ 0x55b72d568920] missing picture in access unit with size 80572
    [h264 @ 0x55b72d568920] missing picture in access unit with size 1560
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2608
    [h264 @ 0x55b72d568920] non-existing PPS 0 referenced
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2734
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2885
    [h264 @ 0x55b72d568920] missing picture in access unit with size 77739
    [h264 @ 0x55b72d568920] non-existing PPS 254 referenced
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3360
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2804
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3051
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3067
    [h264 @ 0x55b72d568920] missing picture in access unit with size 77693
    [h264 @ 0x55b72d568920] non-existing PPS 0 referenced
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2421
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2779
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2442
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2678
    [h264 @ 0x55b72d568920] missing picture in access unit with size 76877
    [h264 @ 0x55b72d568920] sps_id 15 out of range
    [h264 @ 0x55b72d568920] missing picture in access unit with size 1342
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2412
    [h264 @ 0x55b72d568920] missing picture in access unit with size 2238
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3550
    [h264 @ 0x55b72d568920] missing picture in access unit with size 3075
    ...
    (after hitting Ctrl+C:)
    Input #0, flv, from 'rtmp://<server>/<app>/<stream>':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.83.100
     Duration: 00:00:00.00, start: 5285.919000, bitrate: N/A
       Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080, 2543 kb/s, 24 fps, 24 tbr, 1k tbn, 48 tbc
    Output #0, flv, to '/tmp/dump.flv':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (Constrained Baseline) ([7][0][0][0] / 0x0007), yuv420p, 1920x1080, q=2-31, 2543 kb/s, 24 fps, 24 tbr, 1k tbn, 1k tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    frame=    0 fps=0.0 q=-1.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Exiting normally, received signal 2.
    </stream></app></server>

    Failure State 2

    The message "No start code is found." is displayed and FFMPEG immediately terminates after less than a half-second. When this happens the file /tmp/dump.flv is not created.

    ffmpeg version 3.4.4-1~16.04.york0 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
     configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [NULL @ 0x56274b0be920] missing picture in access unit with size 3710
    [AVBSFContext @ 0x56274b0bf2c0] No start code is found.
    rtmp://<server>/<app>/<stream>: could not find codec parameters
    Input #0, flv, from 'rtmp://<server>/<app>/<stream>':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.83.100
     Duration: 00:00:00.00, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: h264, none, 2543 kb/s, 24 fps, 1k tbn
    Output #0, flv, to '/tmp/dump.flv':
    Output file #0 does not contain any stream
    </stream></app></server></stream></app></server>

    What I’ve tried

    • Adding or removing -re to try and limit the input frame rate to the source frame rate
    • Adding or removing -rtmp_live live
    • Adding or removing -timeout 5 (or any other timeout value)
    • Using RTMP URL parameters (e.g. -i "rtmp://<server>/<app>/<stream> live=1 timeout=5"</stream></app></server>)

    Does anyone know why this command’s success is so intermittent or how I can get more consistent results ?

    Alternate Acceptable Solution

    The only reason I’m using ffmpeg to dump the stream to a temporary file at all is because I plan to perform multiple tests on the file (at least two at the moment — one to get the encoding, and another to get the key frame interval). By downloading the stream I reduce bandwidth usage and reduce runtime. However it’s perfectly acceptable to forego ffmpeg and just use ffprobe directly on the RTMP URL if this would help.

    Note that I did try this and I get the same two failure states with ffprobe

  • Different ways of embedding the Piwik tracking code for faster website performance

    18 avril 2017, par InnoCraft — Community, Development

    Many studies have shown that performance matters a lot. For each 100ms a websites takes longer to load, a business may lose about 0.1% to 1% in revenue. It also matters because Google judges page speed as a ranking factor for search results page. At InnoCraft, we help our clients optimizing their Piwik integration and recommend different ways of embedding the tracking code tailored to their needs. The best way to embed the tracking code depends on your website, what you want to achieve, and how important tracking is to you.

    This technical blog post mainly focuses on improving the time to load your website. This is an important metric as for example Google usually measures the time it took to load a page. Many businesses therefore want to get to the page load event as quickly as possible.

    The regular way of embedding the tracking code

    By default, Piwik is embedded in the header or footer of your website. This is a sensible default. While it is loaded asynchronously and deferred, it still does delay the onload event. Depending on the performance of your Piwik, how fast your website loads, how your website’s resources are embedded, and other factors you may want to consider alternatives. Three of them I will introduce below.

    Embedding the tracker after the load event

    To ensure that your website will always load even if the Piwik server is un-available, you may want to load the tracking code only after the website is loaded like this :

    var _paq = _paq || [];
    _paq.push(["trackPageView"]);
    _paq.push(["enableLinkTracking"]);

    function embedTrackingCode() {
      var u="https://your.piwik.domain/";
      _paq.push(["setTrackerUrl", u+"piwik.php"]);
      _paq.push(["setSiteId", "1"]);

      var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
      g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);    
    }

    if (window.addEventListener) {
       window.addEventListener("load", embedTrackingCode, false);
    } else if (window.attachEvent) {
       window.attachEvent("onload",embedTrackingCode);
    } else {
       embedTrackingCode();
    }

    The downside is you won’t track all of your visitors because some will have already left your website by the time your website is fully loaded. Especially when you have a JavaScript-heavy website or when your website takes longer to load in general. To detect the load event correctly cross browser, you may want to use a library like jQuery.

    Delaying the tracking

    Another technique is to load the tracking with a little delay at the end of your website like this :

    setTimeout(function () {
       embedTrackingCode();
    }, 5);

    This time the tracking script will still track most of your visitors but does not slow down loading the rest of your website as much as it would do by default (at least perceived). In some cases, you will notice a performance improvement when looking at the “time to load” but it depends on your website.

    Not loading the JavaScript Tracker at all

    With Piwik you also have the option to not embed the tracking code into your websites at all and instead generate reports from the webserver logs using Piwik Log Analytics. This works very well but some data might not be available like the device resolution which can be only captured using JavaScript. On the bright side this solution also captures users with ad blockers or tracking blockers.

    Questions ?

    We invite you to test different ways to see what makes sense for you and how it affects your website performance as well as the perceived performance. If you have any questions, feel free to get in touch with us.

    Read on

    The last post in this series is Performance optimizations you can apply today to load the Piwik JavaScript tracker faster.