Recherche avancée

Médias (0)

Mot : - Tags -/latitude

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

Autres articles (81)

  • Les notifications de la ferme

    1er décembre 2010, par

    Afin d’assurer une gestion correcte de la ferme, il est nécessaire de notifier plusieurs choses lors d’actions spécifiques à la fois à l’utilisateur mais également à l’ensemble des administrateurs de la ferme.
    Les notifications de changement de statut
    Lors d’un changement de statut d’une instance, l’ensemble des administrateurs de la ferme doivent être notifiés de cette modification ainsi que l’utilisateur administrateur de l’instance.
    À la demande d’un canal
    Passage au statut "publie"
    Passage au (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

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

  • After merge videos, the duration is too long - ffmpeg

    20 février 2017, par Thanh Dao

    I have file txt with content

    file intro.mp4
    file video.mp4
    file outtro.mp4

    with duration by 10s, 178s, 13s.

    I use ffmpeg to merge 3 files into one with below command :

    ffmpeg -f concat -i "file.txt" -vcodec copy -acodec copy "endfile.mp4"

    The duration of endfile.mp4 is longer 11 mins (660s).

    I have a question that which params of video affect to merge? And which common params to merge another videos?

    My English really too bad. Sorry for it :)
    Good working this week !

    P/S Details infor of files :

    intro.mp4 :

    ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
       built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
       configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
       libavutil      55. 43.100 / 55. 43.100<br />
       libavcodec     57. 68.100 / 57. 68.100<br />
       libavformat    57. 61.100 / 57. 61.100<br />
       libavdevice    57.  2.100 / 57.  2.100<br />
       libavfilter     6. 68.100 /  6. 68.100<br />
       libswscale      4.  3.101 /  4.  3.101<br />
       libswresample   2.  4.100 /  2.  4.100<br />
       libpostproc    54.  2.100 / 54.  2.100<br />
     Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/intro.mp4':<br />
       Metadata:<br />
       major_brand     : isom<br />
       minor_version   : 512<br />
       compatible_brands: isomiso2avc1mp41<br />
       encoder         : Lavf56.23.100<br />
     Duration: 00:00:10.08, start: -0.013061, bitrate: 701 kb/s<br />
       Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br />
       Metadata:<br />
       handler_name    : SoundHandler<br />
       Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 853 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br />
     Metadata:<br />
       handler_name    : VideoHandler<br />

    outtro.mp4 :

    ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
       built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
       configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
       libavutil      55. 43.100 / 55. 43.100<br />
       libavcodec     57. 68.100 / 57. 68.100<br />
       libavformat    57. 61.100 / 57. 61.100<br />
       libavdevice    57.  2.100 / 57.  2.100<br />
       libavfilter     6. 68.100 /  6. 68.100<br />
       libswscale      4.  3.101 /  4.  3.101<br />
       libswresample   2.  4.100 /  2.  4.100<br />
       libpostproc    54.  2.100 / 54.  2.100<br />
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/outtro.mp4':<br />
    Metadata:<br />
       major_brand     : isom<br />
       minor_version   : 512<br />
       compatible_brands: isomiso2avc1mp41<br />
       encoder         : Lavf56.23.100<br />
    Duration: 00:00:13.08, start: -0.013061, bitrate: 481 kb/s<br />
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br />
    Metadata:<br />
       handler_name    : SoundHandler<br />
    Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 392 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br />
    Metadata:<br />
       handler_name    : VideoHandler<br />

    video.mp4

    ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
       built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
       configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
       libavutil      55. 43.100 / 55. 43.100<br /><br />
       libavcodec     57. 68.100 / 57. 68.100<br /><br />
       libavformat    57. 61.100 / 57. 61.100<br /><br />
       libavdevice    57.  2.100 / 57.  2.100<br /><br />
       libavfilter     6. 68.100 /  6. 68.100<br /><br />
       libswscale      4.  3.101 /  4.  3.101<br /><br />
       libswresample   2.  4.100 /  2.  4.100<br /><br />
       libpostproc    54.  2.100 / 54.  2.100<br /><br />
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'path/to/video.mp4':<br />
       Metadata:<br />
           major_brand     : isom<br />
           minor_version   : 512<br />
           compatible_brands: isomiso2avc1mp41<br />
           encoder         : Lavf57.61.100<br />
       Duration: 00:02:58.38, start: 0.000000, bitrate: 922 kb/s<br />
           Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 782 kb/s, 29.97 fps, 29.97 tbr, 30k <br />tbn, 59.94 tbc (default)<br />
           Metadata:<br />
               handler_name    : VideoHandler<br />
           Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s (default)<br />
           Metadata:<br />
               handler_name    : SoundHandler<br />
  • Discord music bot doesn't play songs

    9 octobre 2023, par Gam3rsCZ

    I have made myself a discord bot that also plays music(it's only for my server so strings with messages are in Czech, but code is in English).&#xA;Bot worked a while ago but now it stopped, and I don't know where the problem is

    &#xA;

    I'm getting these errors : HTTP error 403 Forbidden Server returned 403 Forbidden (access denied) and&#xA;C :\Users\Me\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\player.py:711 : RuntimeWarning : coroutine 'music_cog.play_next' was never awaited&#xA;self.after(error)&#xA;RuntimeWarning : Enable tracemalloc to get the object allocation traceback&#xA;[2023-10-09 16:23:47] [INFO ] discord.player : ffmpeg process 17496 successfully terminated with return code of 1.&#xA;INFO : ffmpeg process 17496 successfully terminated with return code of 1.

    &#xA;

    My code is :

    &#xA;

    import discord&#xA;from discord.ext import commands&#xA;from yt_dlp import YoutubeDL&#xA;&#xA;class music_cog(commands.Cog):&#xA;    def __init__(self, bot):&#xA;        self.bot = bot&#xA;&#xA;        self.is_playing = False&#xA;        self.is_paused = False&#xA;        self.current = ""&#xA;&#xA;        self.music_queue = []&#xA;        self.YDL_OPTIONS = {"format": "m4a/bestaudio/best", "noplaylist": "True"}&#xA;        self.FFMPEG_OPTIONS = {"before_options": "-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5", "options": "-vn"}&#xA;&#xA;        self.vc = None&#xA;&#xA;    def search_yt(self, item):&#xA;        with YoutubeDL(self.YDL_OPTIONS) as ydl:&#xA;            try:&#xA;                info = ydl.extract_info("ytsearch:%s" % item, download=False)["entries"][0]&#xA;            except Exception:&#xA;                return False&#xA;        info = ydl.sanitize_info(info)&#xA;        url = info[&#x27;url&#x27;]&#xA;        title = info[&#x27;title&#x27;]&#xA;        return {&#x27;title&#x27;: title, &#x27;source&#x27;: url}&#xA;&#xA;    async def play_next(self):&#xA;        if len(self.music_queue) > 0:&#xA;            self.is_playing = True&#xA;            self.current = self.music_queue[0][0]["title"]&#xA;            m_url = self.music_queue[0][0]["source"]&#xA;&#xA;            self.music_queue.pop(0)&#xA;&#xA;            await self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e:  self.play_next())&#xA;        else:&#xA;            self.is_playing = False&#xA;&#xA;    async def play_music(self, ctx):&#xA;        try:&#xA;            if len(self.music_queue) > 0:&#xA;                self.is_playing = True&#xA;                m_url = self.music_queue[0][0]["source"]&#xA;&#xA;                if self.vc == None or not self.vc.is_connected():&#xA;                    self.vc =  await self.music_queue[0][1].connect()&#xA;&#xA;                    if self.vc == None:&#xA;                        await ctx.send("Nepodařilo se připojit do hlasov&#xE9;ho kan&#xE1;lu.")&#xA;                        return&#xA;                else:&#xA;                    await self.vc.move_to(self.music_queue[0][1])&#xA;&#xA;                self.current = self.music_queue[0][0]["title"]&#xA;                self.music_queue.pop(0)&#xA;&#xA;                self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())&#xA;            else:&#xA;                self.is_playing = False&#xA;&#xA;        except:&#xA;            print("Something went wrong")&#xA;            await ctx.send(content="Něco se pokazilo")&#xA;&#xA;    @commands.command(name="play", help="Plays selected song from YouTube")&#xA;    async def play(self, ctx, *args):&#xA;        query = " ".join(args)&#xA;&#xA;        voice_channel = ctx.author.voice.channel&#xA;        if voice_channel is None:&#xA;            await ctx.send("Připojte se do hlasov&#xE9;ho kan&#xE1;lu!")&#xA;        elif self.is_paused:&#xA;            self.vc.resume()&#xA;        else:&#xA;            song = self.search_yt(query)&#xA;            if type(song) == type(True):&#xA;                await ctx.send("P&#xED;sničku se nepodařilo st&#xE1;hnout. Špatn&#xFD; form&#xE1;t, možn&#xE1; jste se pokusili zadat playlist nebo livestream.")&#xA;            else:&#xA;                await ctx.send("P&#xED;snička přid&#xE1;na do řady.")&#xA;                self.music_queue.append([song, voice_channel])&#xA;&#xA;                if self.is_playing == False:&#xA;                    await self.play_music(ctx)&#xA;                    self.is_playing = True&#xA;&#xA;    @commands.command(name="pause", aliases=["p"], help="Pauses the BOT")&#xA;    async def pause(self, ctx, *args):&#xA;        if self.is_playing:&#xA;            self.is_playing = False&#xA;            self.is_paused = True&#xA;            self.vc.pause()&#xA;            await ctx.send(content="P&#xED;snička byla pozastavena.")&#xA;            &#xA;        elif self.is_paused:&#xA;            self.is_playing = True&#xA;            self.is_paused = False&#xA;            self.vc.resume()&#xA;            await ctx.send(content="P&#xED;snička byla obnovena.")&#xA;&#xA;    @commands.command(name="resume", aliases=["r"], help="Resumes playing")&#xA;    async def resume(self, ctx, *args):&#xA;        if self.is_paused:&#xA;            self.is_paused = False&#xA;            self.is_playing = True&#xA;            self.vc.resume()&#xA;            await ctx.send(content="P&#xED;snička byla obnovena.")&#xA;&#xA;    @commands.command(name="skip", aliases=["s"], help="Skips current song")&#xA;    async def skip(self, ctx, *args):&#xA;        if self.vc != None and self.vc:&#xA;            self.vc.stop()&#xA;        await self.play_next()&#xA;        await ctx.send(content="P&#xED;snička byla přeskočena.")&#xA;&#xA;    @commands.command(name="queue", aliases=["q"], help="Displays song queue")&#xA;    async def queue(self, ctx, songs=5):&#xA;        retval = ""&#xA;&#xA;        for i in range(0, len(self.music_queue)):&#xA;            if i > songs: break&#xA;            retval &#x2B;= "    " &#x2B; self.music_queue[i][0]["title"] &#x2B; "\n"&#xA;&#xA;        if retval != "":&#xA;            retval &#x2B;= "```"&#xA;            await ctx.send(content=("```Aktu&#xE1;ln&#xED; fronta:\n" &#x2B; retval))&#xA;        else:&#xA;            await ctx.send("Řada je pr&#xE1;zdn&#xE1;.")&#xA;&#xA;    @commands.command(name="clear", help="Clears the queue")&#xA;    async def clear(self, ctx):&#xA;        if self.vc != None and self.is_playing:&#xA;            self.vc.stop()&#xA;        self.music_queue = []&#xA;        await ctx.send("Řada byla vymaz&#xE1;na.")&#xA;&#xA;    @commands.command(name="leave", aliases=["dc", "disconnect"], help="Disconnects the BOT")&#xA;    async def leave(self, ctx):&#xA;        self.is_playing = False&#xA;        self.is_paused = False&#xA;&#xA;        if self.vc != None:&#xA;            return await self.vc.disconnect(), await ctx.send(content="BOT byl odpojen.")&#xA;&#xA;        else:&#xA;            return await ctx.send("BOT nen&#xED; nikde připojen.")&#xA;   &#xA;    @commands.command(name="current", help="Displays the current song")&#xA;    async def current(self, ctx):&#xA;        current = self.current&#xA;        retval = f"```Pr&#xE1;vě hraje:\n    {current}```"&#xA;        if current != "":&#xA;            await ctx.send(retval)&#xA;        else:&#xA;            await ctx.send("Aktu&#xE1;lně nic nehraje.")&#xA;

    &#xA;

    I already tried everything I can think of(which isn't a lot because I suck at programming), and also tried searching for some solution on the internet, but nothing worked.

    &#xA;

  • How to use Behavioural Analytics to Improve Website Performance

    20 septembre 2021, par Ben Erskine — Analytics Tips, Plugins, Heatmap

    User behavioural analytics (UBA) give your business unique insights into your customers. 

    Where traditional website metrics track what actions are completed or how many visitors you have, user behaviour shows the driving factors behind those actions. UBA tools such as website heatmap software provide an easy-to-read visualisation of this data. 

    Ultimately, user behaviour analysis improves website performance and conversions by boosting customer engagement, optimising positive customer experiences, and focusing on the most important part of your sales : the people who are actually buying from you. 

    What is user behaviour analytics ?

    User behaviour analytics (UBA) is data that shows how customers and website visitors interact with your brand online. 

    UBA is tracked using tools such as heatmaps, session recordings and data visualisation software. 

    Where traditional web analytics track metrics such as page views and bounce rates, behavioural analytics provide an even more in-depth picture of your website or funnel success. 

    For example, UBA tracks actions like 

    • How far users are scrolling down the page 
    • Which CTA’s and copy they are focusing on (or not focusing on) 
    • Which design elements, links or buttons they are interacting with 
    • What is happening in between each action

    Tracking user behaviour metrics help keep visitors on your website longer because they analyse where customers may be confused or unclear so you can fix it. 

    What’s the difference between data and behavioural analytics ?

    There are a few key differences between data and behavioural analytics. While data analytics are beneficial to improving website performance, using UBA creates a more customer-centric approach to funnel building. 

    The biggest difference between data and behavioural analytics ? Metric data shows which actions are happening. Behavioural analytics show you WHY they are happening. 

    For example, data can show you that a customer bounced or clicked away. Behaviour analytics show you that a page took a long time to load, they tried to click a link several times and then maybe got frustrated and clicked away. 

    Key differences between data analytics and behavioural analytics : 

    • What is happening versus what is driving it 
    • Track an action (e.g. click-through) versus tracking inaction (e.g. hover without clicking) 
    • Measuring completion of an action versus the flow of actions to complete action 
    • Source of traffic versus individual actions 
    • What happens when someone takes an action versus what happens in between taking action 

    Matomo heatmaps offer both website analytics and user behaviour for a comprehensive analysis.

    Why do behavioural analytics help improve website performance ?

    User behaviour is important because it doesn’t matter how many website visitors you have if they don’t convert. 

    If you have a lot of traffic on mobile devices, but a low CTR, heatmaps show you what is causing the low conversions. Perhaps there is a button that isn’t optimised for mobile scrolling, or a pop up that covers important copy. 

    Analysing the driving factors behind each decision means that you can increase sign-ups and conversions without losing money on website traffic that never actually buys. 

    Matomo's heatmaps feature

    How do heatmap tools show website user behaviour analytics ? 

    Heatmap tools provide a visual representation of user behaviour. 

    There are several key ways that heatmap tracking can improve website performance and therefore your overall conversions.

    Firstly, heatmaps show where to optimise website structure. It uses real visitor experiences to indicate whether customers have to scroll to reach important content, whether important messages are being missed, and whether CTAs are clear. 

    Secondly, heatmaps provide always-on UX and useability testing for your website, identifying user frustrations and optimising their experience over time.

    They also show valuable user experience insights for A/B versions of a landing page. Not only will you see the raw conversion data, but you will also understand why one page converts more than another.

    Ultimately, heatmaps increase ROI on marketing by optimising the traffic that you are sending to your website.

    Matomo Heatmaps - Hotjar alternative

    5 ways heatmaps and user behaviour analytics improve website performance and conversions

    #1. Improve customer experience

    One of the most important uses for UBA is to improve your customer experience. 

    Imagine you had a physical store. If there was something blocking customers from getting to the counter you could easily see and fix the problem. 

    It is just as important for an online store to find and fix these “roadblocks”. 

    Not only does it reduce friction in the sales funnel and make it easy for customers to buy from you, it improves their overall experience. And when 86% of buyers are willing to pay more for a great customer experience, UBA should be one of your number one priorities for growing your bottom line. 

    #2. Improve customer engagement

    Customer engagement is any interaction between a customer/product user and your business. 

    User behaviour analytics increase engagement at each customer journey touch point. 

    Using data from heatmaps will improve customer engagement because it gives you insights into how you can make your website more user friendly. This reduces friction and increases customer loyalty by making sure customers :

    • See important content 
    • Are not distracted by unnecessary elements 
    • Can easily access information or pages no matter what device they are using 
    • Are clicking on important page elements that take them further through the customer journey 

    For example, say a customer is on a sales page. A heatmap might show that pop ups or design elements like links to another page are pulling their attention away from the primary focus (i.e. the sales copy). 

    #3. Focus on customer-centric approach 

    A customer-centric approach means putting your customers at the centre of everything that you do. There is a lot of competition for your customers’ hard earned dollars, so you need to stand out. A good product or service is not enough on its own anymore. 

    User behaviour analytics are at the heart of customer-centric strategies. Instead of guessing how customers interact with your online presence, tools like heatmaps give insight into exactly what customers need. 

    This matched with an effective customer feedback strategy gives a holistic and effective approach to improving your customer experiences. 

    #4. Capture customer data across multiple channels

    Most customers won’t convert on their very first visit to a website. They might interact with your business across many channels and research your product multiple times before purchasing. 

    Multi Channel Conversion Attribution, also known as Cross Channel Attribution, lets you assign a value to each visit prior to a conversion or prior to a sale. By applying different attribution models, you get a better view on which channels actually lead to a conversion.

    User behaviour analytics like the multi channel conversion attribution that Matomo offers can show you exactly where you should focus your money to acquire new customers. 

    #5. Track and measure business objectives

    User behaviour analytics like heatmaps can show you whether you are actually hitting your targets. 

    Setting goals helps track your website performance against business objectives. 

    These include objectives such as lead generation, online sales and increased brand exposure. Matomo has a specific function for tracking goals and measuring analytics.

    Using a combination of UBA and data metrics will produce the most effective conversions. 

    For example, a customer reaching the payment confirmation page is a common objective to measure conversions. However, it is only tracked if they actually complete the action. Measuring on-page customer activity with heatmaps shows why they do or do not convert so you can fix issues. 

    Final thoughts on user behaviour analytics 

    User behavioural analytics (UBA) provide a unique and in-depth insight into your customers and their needs. Unlike traditional data metrics that track completed actions, UBA like heatmaps show you what happens in between each action and help fix any critical issues. 

    Heatmaps are your secret weapon to improving website performance while staying customer-centric ! 

    Want to know how heatmap analytics increase conversions and improve customer experience without spending more on traffic or marketing ? Check out some of the other in depth guides below. 

    The Ultimate Guide to Heatmap Software

    10 Proven Ways Heatmap Software Improves Website Conversions

    Heatmap Video

    Session Recording Video