Recherche avancée

Médias (0)

Mot : - Tags -/performance

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (31)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Pas question de marché, de cloud etc...

    10 avril 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

Sur d’autres sites (5154)

  • Introducing Updates to the Funnels Feature

    29 mai 2024, par Erin

    We’ve made improvements to the Funnels feature to be more user-friendly and offer you greater flexibility. 

    &lt;script type=&quot;text/javascript&quot;&gt;<br />
           if ('function' === typeof window.playMatomoVideo){<br />
           window.playMatomoVideo(&quot;FunnelsProductUpdate2024&quot;, &quot;#FunnelsProductUpdate2024&quot;)<br />
           } else {<br />
           document.addEventListener(&quot;DOMContentLoaded&quot;, function() { window.playMatomoVideo(&quot;FunnelsProductUpdate2024&quot;, &quot;#FunnelsProductUpdate2024&quot;); });<br />
           }<br />
      &lt;/script&gt;

    Here’s what’s changing :

    Setting up and managing funnels is now easier than ever 

    Previously, creating funnels was tedious and required going through the Goals feature. But we’ve changed that with the introduction of a separate page to configure funnels. 

    Dedicated Manage Funnels page in Matomo

    Create funnels with greater flexibility—no longer tied to goals 

    Funnels is now a standalone feature, providing you with more flexibility. Before, you could only create a funnel if it was tied to a goal, in other words, the final step in the funnel had to be a goal. What’s more, you also couldn’t use goals for steps in the funnel.  

    Previous configuration requirements of Funnels in Matomo
    Previous configuration requirements of Funnels

    Now, funnels are independent of goals, and goals can serve as steps within the funnel. This means you have the freedom to configure any combination of steps in a funnel : 

    • All steps can be goals 
    • No steps need to be goals 
    • Or some steps can be goals, some steps can be events 
    Goals no longer required in Matomo Funnels

    No matter what your customer journey looks like, funnels now offer the versatility to meet your business’s specific needs. 

    Find friction points faster with intuitive visuals 

    One of the most significant improvements is the visual upgrade of the Funnels feature. The new Funnels graph is now visually in line with industry standards and intuitive. 

    New Funnel Analytics chart in Matomo

    The new visual provides a clearer view of your drop-off and conversion rates so you can instantly find points of friction in your funnel to improve the user experience and overall conversion rate.  

    This visualisation also provides a detailed overview of the number of visitors who enter, exit, skip, or proceed at each step of your funnel by using different coloured bars for visual clarity on each step’s performance. 

    With this update, we’ve also replaced ‘backfilled visits’ with ‘skipped steps’ to avoid misinterpretation of the data. 

    New data table for more granular insights 

    Accompanying this visual improvement is a new data table, allowing for more granular insights, segment comparison, and easy data export.

    We’ve also increased Funnel analysis limits. You can now compare funnel data for 2 date periods and 6 segments (up to 12 compared datasets in total). 

    Sign up for our newsletter to receive all the latest Matomo updates. 

  • Discord bot stop playing music in random time of song

    25 janvier 2021, par Jusmejtr

    I have a discord to let me play a random song from the list.

    &#xA;

    How bot works :&#xA;Bot IS connected to firestore Cloud (firebase) where i have economy data from my server. Price for playing random song is 75 coins.

    &#xA;

    Everything worked as it should, but yesterday I used command, the bot started playing and after a while it stopped playing music and also no other commands worked, bot probably get freezed.

    &#xA;

    I have no errors in the console until after a minute it showed me this error.

    &#xA;

    https://pastebin.com/ay9gV75T

    &#xA;

    The bot is hosted on Heroku and I also added this buildpack to ffmpeg in the settings.

    &#xA;

    https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest

    &#xA;

    This is my code :

    &#xA;

    module.exports = {&#xA;    name: "buy-music",&#xA;    description: "buy a music",&#xA;&#xA;    async execute(message, config, db){&#xA;        const PREFIX = (config.prefix);&#xA;&#xA;        if(message.content === PREFIX &#x2B; "buy music"){&#xA;            const ytdl = require("ytdl-core");&#xA;            message.delete();&#xA;            let uzivatel = message.author.tag;&#xA;&#xA;            let voiceChannel = message.member.voice.channel;&#xA;            if(!voiceChannel) return message.reply("Mus&#xED;š byť vo voice roomke");&#xA;&#xA;            let cena = 75;&#xA;    &#xA;            db.collection(&#x27;economy&#x27;).doc(uzivatel).get().then(async (q) => {&#xA;                if(!q.exists) return message.reply("Nem&#xE1;š vytvoren&#xFD; &#xFA;čet");&#xA;                var hodnota = q.data().money;&#xA;                if(hodnota &lt; cena) return message.reply("Nem&#xE1;š dostatok financi&#xED;");&#xA;&#xA;                db.collection(&#x27;statusy&#x27;).doc(&#x27;music&#x27;).get().then(async (asaj) => {&#xA;                    let stav = asaj.data().stav;&#xA;                    if(stav == "off"){&#xA;                        db.collection(&#x27;statusy&#x27;).doc(&#x27;music&#x27;).update({&#xA;                            "stav": "on",&#xA;                            "autor": message.author.tag,&#xA;                        });&#xA;                        hodnota -= cena;&#xA;                        db.collection(&#x27;economy&#x27;).doc(uzivatel).update({&#xA;                            &#x27;money&#x27;: hodnota&#xA;                        });&#xA;                        function randomhraj(){&#xA;                            var pole = [&#xA;                     My YT links&#xA;&#xA;                            ]&#xA;                            let rnd = Math.floor(Math.random() * pole.length);&#xA;                            let output = pole[rnd];&#xA;                            return output;&#xA;                        }&#xA;        &#xA;                        try{&#xA;                            var pripojenie = await voiceChannel.join();&#xA;                            message.reply(`&#xDA;spešne si si k&#xFA;pil chuťovečku`);&#xA;                        }catch(error){&#xA;                            console.log(`Error pri pripajani do room (music join) ${error}`);&#xA;                        }&#xA;                        &#xA;                        const dispatcher = pripojenie.play(ytdl(randomhraj())).on("finish", async() => {&#xA;                            await voiceChannel.leave();&#xA;                            await db.collection(&#x27;statusy&#x27;).doc(&#x27;music&#x27;).update({&#xA;                                "stav": "off",&#xA;                                "autor": "nikto",&#xA;                            });&#xA;                        }).on("error", error => {&#xA;                            console.log(error)&#xA;                        })&#xA;                        dispatcher.setVolumeLogarithmic(5 / 5)&#xA;                    }else{&#xA;                        message.reply("Moment&#xE1;lne si hudbu k&#xFA;pil niekto in&#xFD; alebo ak si hudbu k&#xFA;pil a chceš ju zastaviť použi pr&#xED;kaz *stop");&#xA;                    }&#xA;                    &#xA;                });&#xA;            });&#xA;    &#xA;        }else if(message.content === PREFIX &#x2B; "stop"){&#xA;            message.delete();&#xA;            db.collection(&#x27;statusy&#x27;).doc(&#x27;music&#x27;).get().then((n) => {&#xA;                let kto = n.data().autor;&#xA;                let meno = message.author.tag;&#xA;                if(!message.member.voice.channel) return message.channel.send("Mus&#xED;š byť vo voice roomke pre stopnutie hudby");&#xA;                if(kto == meno){&#xA;                    message.member.voice.channel.leave();&#xA;                    message.channel.send("&#xDA;spešne odpojen&#xFD;");&#xA;                    db.collection(&#x27;statusy&#x27;).doc(&#x27;music&#x27;).update({&#xA;                        "stav": "off",&#xA;                        "autor": "nikto",&#xA;                    });&#xA;                }else{&#xA;                    message.reply("Zastaviť hudbu m&#xF4;že len ten kto si ju k&#xFA;pil");&#xA;                }&#xA;            });&#xA;        }&#xA;        &#xA;    }&#xA;}&#xA;

    &#xA;

  • FFMpeg C++ encoder fails with hardware acceleration quick sync intel

    28 août 2022, par teals

    I am trying to debug an issue I have with a simple C++ encoder using FFMmpeg. The following code below works correctly on these other hardware acceleration systems/platforms :

    &#xA;

      &#xA;
    • Mac/VideoToolbox,
    • &#xA;

    • Cuda/NVEnc
    • &#xA;

    • Raspberry pi/h264_v4l2m2m.
    • &#xA;

    &#xA;

    It fails on intel quick sync at avcodec_open2. I'm using Ubuntu 22.04. I built FFMpeg from source with the Intel Media SDK installed and configured. I verified that the QuickSync install works. I also have a corresponding decoder implementation that works correctly using intel quick sync. So I know everything properly installed. I am also running this on an 11th Gen Intel CPU.

    &#xA;

    [hevc_qsv @ 0x564b0d34f0c0] Low power mode is unsupported (This sometimes shows up)&#xA;[hevc_qsv @ 0x563691234000] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.&#xA;Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height&#xA;

    &#xA;

    This is the only error that I get and I haven't found any helpful resources. I tried playing around with different parameters but nothing seems to work. Any help or insight would be extremely helpful.

    &#xA;

    bool VideoEncoder::create() {&#xA;    char const* outfile = filePath.c_str();&#xA;&#xA;     // open output format context&#xA;    int ret = avformat_alloc_output_context2(&amp;ofctx, nullptr, nullptr, outfile);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avformat_alloc_output_context2(" &lt;&lt; outfile &lt;&lt; "): ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // create new video stream&#xA;    const AVCodec* codec = avcodec_find_encoder_by_name(encoderName.c_str());&#xA;    vstrm = avformat_new_stream(ofctx, codec);&#xA;    if (!vstrm) {&#xA;        std::cerr &lt;&lt; "fail to avformat_new_stream";&#xA;        return false;&#xA;    }&#xA;&#xA;    // open video encoder&#xA;    cctx = avcodec_alloc_context3(codec);&#xA;    if (!vstrm) {&#xA;        std::cerr &lt;&lt; "fail to avcodec_alloc_context3";&#xA;        return false;&#xA;    }&#xA;    const AVRational dst_fps = {fps, 1};&#xA;    cctx->width = width;&#xA;    cctx->height = height;&#xA;    if(pixel_format != AV_PIX_FMT_NONE) {&#xA;        cctx->pix_fmt = pixel_format;&#xA;    }&#xA;    else {&#xA;        cctx->pix_fmt = codec->pix_fmts[0];&#xA;    }&#xA;    cctx->time_base = av_inv_q(dst_fps);&#xA;    cctx->framerate = dst_fps;&#xA;    cctx->bit_rate = bitrate * 1000000;&#xA;&#xA;&#xA;    AVDictionary* options = nullptr;&#xA;    if(gpu_id >= 0) {&#xA;        av_dict_set_int(&amp;options, "gpu", gpu_id, 0);&#xA;    }&#xA;&#xA;    &#xA;    if (ofctx->oformat->flags &amp; AVFMT_GLOBALHEADER)&#xA;        cctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;    ret = avcodec_open2(cctx, codec, &amp;options);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avcodec_open2: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;    avcodec_parameters_from_context(vstrm->codecpar, cctx);&#xA;&#xA;    //For mac/quicktime we need to add hvc1 tag.&#xA;    if (encoderName.find("hevc") != std::string::npos) {&#xA;        vstrm->codecpar->codec_tag = MKTAG(&#x27;h&#x27;, &#x27;v&#x27;, &#x27;c&#x27;, &#x27;1&#x27;);&#xA;    }&#xA;&#xA;    /*&#xA;    std::cout&#xA;        &lt;&lt; "outfile: " &lt;&lt; outfile &lt;&lt; "\n"&#xA;        &lt;&lt; "format:  " &lt;&lt; ofctx->oformat->name &lt;&lt; "\n"&#xA;        &lt;&lt; "vcodec:  " &lt;&lt; codec->name &lt;&lt; "\n"&#xA;        &lt;&lt; "size:    " &lt;&lt; width &lt;&lt; &#x27;x&#x27; &lt;&lt; height &lt;&lt; "\n"&#xA;        &lt;&lt; "fps:     " &lt;&lt; av_q2d(cctx->framerate) &lt;&lt; "\n"&#xA;        &lt;&lt; "pixfmt:  " &lt;&lt; av_get_pix_fmt_name(cctx->pix_fmt) &lt;&lt; "\n"&#xA;        &lt;&lt; std::flush;*/&#xA;&#xA;    // initialize sample scaler&#xA;    swsCtx = sws_getContext(&#xA;        width, height, AV_PIX_FMT_BGR24,&#xA;        width, height, cctx->pix_fmt,&#xA;        SWS_BILINEAR, nullptr, nullptr, nullptr);&#xA;    if (!swsCtx) {&#xA;        std::cerr &lt;&lt; "fail to sws_getContext";&#xA;        return false;&#xA;    }&#xA;&#xA;    // allocate frame buffer for encoding&#xA;    frame = av_frame_alloc();&#xA;    frame->width = width;&#xA;    frame->height = height;&#xA;    frame->format = static_cast<int>(cctx->pix_fmt);&#xA;    ret = av_frame_get_buffer(frame, 32);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to av_frame_get_buffer: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // allocate packet to retrive encoded frame&#xA;    pkt = av_packet_alloc();&#xA;    // open output IO context&#xA;    ret = avio_open2(&amp;ofctx->pb, outfile, AVIO_FLAG_WRITE, nullptr, nullptr);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avio_open2: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // write media container header (if any)&#xA;    ret = avformat_write_header(ofctx, nullptr);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avformat_write_header: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    return true;&#xA;}&#xA;</int>

    &#xA;