Recherche avancée

Médias (91)

Autres articles (52)

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

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

Sur d’autres sites (9028)

  • CRO Audit : Increase Your Conversions in 10 Simple Steps

    25 mars 2024, par Erin

    You have two options if you’re unhappy with your website’s conversion rates.

    The first is to implement a couple of random tactics you heard on that marketing podcast, which worked for a business completely unrelated to yours. 

    The other is to take a more systematic, measured approach. An approach that finds specific problems with the pages on your site and fixes them one by one. 

    You’re choosing the second option, right ?

    Good, then let’s explain what a conversion rate optimisation audit is and how you can complete one using our step-by-step process.

    What is a CRO audit ?

    A conversion rate optimisation audit (CRO audit) systematically evaluates your website. It identifies opportunities to enhance your website’s performance and improve conversion rates. 

    During the audit, you’ll analyse your website’s entire customer journey, collect valuable user behaviour data and cross reference that with web analytics to find site elements (forms, calls-to-actions, etc.) that you can optimise.

    What is a CRO audit

    It’s one (and usually the first) part of a wider CRO strategy. 

    For example, an online retailer might run a CRO audit to discover why cart abandonment rates are high. The audit may throw up several potential problems (like a confusing checkout form and poor navigation), which the retailer can then spend time optimising using A/B tests

    Why run a CRO audit ?

    A CRO audit can be a lot of work, but it’s well worth the effort. Here are the benefits you can expect from running one.

    Generate targeted and relevant insights

    You’ve probably already tested some “best practice” conversion rate optimisations, like changing the colour of your CTA button, adding social proof or highlighting benefits to your headlines. 

    These are great, but they aren’t tailored to your audience. Running a CRO audit will ensure you find (and rectify) the conversion bottlenecks and barriers that impact your users, not someone else’s.

    Improve conversion rates

    Ultimately, CRO audits are about improving conversion rates and increasing revenue. Finding and eliminating barriers to conversion makes it much more likely that users will convert. 

    But that’s not all. CRO audits also improve the user experience and customer satisfaction. The audit process will help you understand how users behave on your website, allowing you to create a more user-friendly customer experience. 

    A 10-step process for running your first CRO audit 

    Want to conduct your first CRO audit ? Follow the ten-step process we outline below :

    A 10-step process for running your first CRO audit

    1. Define your goals

    Start your CRO audit by setting conversion goals that marry with the wider goals of your business. The more clearly you define your goals, the easier it will be to evaluate your website for opportunities. 

    Your goals could include :

    • Booking more trials
    • Getting more email subscribers
    • Reducing cart abandonments

    You should also define the specific actions users need to take for you to achieve these goals. For example, users will have to click on your call-to-action and complete a form to book more trials. On the other hand, reducing cart abandonments requires users to add items to their cart and click through all of the forms during the checkout process. 

    If you’re unsure where to start, we recommend reading our CRO statistics roundup to see how your site compares to industry averages for metrics like conversion and click-through rates. 

    You’ll also want to ensure you track these conversion goals in your web analytics software. In Matomo, it only takes a few minutes to set up a new conversion goal, and the goals dashboard makes it easy to see your performance at a glance. 

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    2. Review your analytics

    With your goals in mind, the next step is to dive into your website analytics and identify pages that need improvement.

    Consider the following conversion metrics when analysing pages :

    • Conversion rate
    • Average time on page
    • Average order value
    • Click-through rate

    Ensure you’re analysing metrics aligning with the goals you set in step one. Average order value could be a great metric to track if you want to reduce cart abandonments, for example, but it’s unsuitable to get more email subscribers.

    3. Research the user experience

    Next, you’ll want to gather user experience data to better understand how potential customers use your website and why they aren’t converting as often as you’d like. 

    You can use several tools for user behaviour analysis, but we recommend heatmaps and session recordings.

    Heatmaps visually represent how users click, move and scroll your website. It will show where visitors place their attention and which page elements are ignored. 

    Take a look at this example below from our website. As you can see, the navigation, headline and CTA get the most attention. If we weren’t seeing as many conversions as we liked and our CTAs were getting ignored, that might be a sign to change their colour or placement. 

    Screenshot of Matomo heatmap feature

    Session recordings capture the actions users take as they browse your website. They let you watch a video playback of how visitors behave, capturing clicks and scrolls so you can see each visitor’s steps in order. 

    Session recordings will show you how users navigate and where they drop off. 

    4. Analyse your forms

    Whether your forms are too confusing or too long, there are plenty of reasons for users to abandon your forms. 

    But how many forms are they abandoning exactly and which forms are there ?

    That’s what form analysis is for. 

    Running a form analysis will highlight which forms need work and reveal whether forms could be contributing to a page’s poor conversion rate. It’s how Concrete CMS tripled its leads in just a few days.

    Matomo’s Form Analytics feature makes running form analysis easy.

    A screenshot of Matomo's form analysis dashboard

    Just open up the forms dashboard to get a snapshot of your forms’ key metrics, including average hesitation time, starter rate and submission rates. 

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    5. Analyse your conversion funnel

    Next, analyse the conversion funnel to see if there’s an obvious bottleneck or several pages where visitors abandon your desired action. Common conversion abandonment points are shopping carts and forms.

    A website conversion funnel

    For example, you could find there is a drop-off in conversions between checking out and making a purchase or between booking a demo and signing up for a subscription. Understanding where these drop-offs occur lets you dig deeper and make targeted improvements.

    Don’t worry if you’ve got a very long funnel. Start at the bottom and work backward. Problems with the pages at the very end of your funnel tasked with converting customers (landing pages, checkout pages, etc.) will have the biggest impact on your conversion rate. So, it makes sense to start there. 

    6. Analyse campaigns and traffic sources (marketing attribution)

    It’s now time to analyse traffic quality to ensure you’re powering your conversion optimisation efforts with the best traffic possible. 

    This can also help you find your best customers so you can focus on acquiring more of them and tailoring your optimisation efforts to their preferences. 

    Run a marketing attribution report to see which traffic sources generate the most conversions and have the highest conversion rates. 

    Matomo comparing linear, first click, and last click attribution models in the marketing attribution dashboard

    Using marketing attribution is crucial here because it gives a fuller picture of how customers move through their journey, recognising the impact of various touchpoints in making a decision, unlike last-click attribution, which only credits the final touchpoint before a conversion.

    7. Use surveys and other qualitative data sources

    Increase the amount of qualitative data you have access to by speaking directly to customers. Surveys, interviews and other user feedback methods add depth and context to your user behaviour research.

    Sure, you aren’t getting feedback from hundreds of customers like you do with heatmaps or session recordings, but the information can sometimes be much richer. Users will often tell you outright why they didn’t take a specific action in a survey response (or what convinced them to convert). 

    Running surveys is now even easier in Matomo, thanks to the Matomo Surveys third-party plugin. This lets you add a customisable survey popup to your site, the data from which is automatically added to Matomo and can be combined with Matomo segments.

    8. Develop a conversion hypothesis

    Using all of the insights you’ve gathered up to this point, you can now hypothesise what’s wrong and how you can fix it. 

    Here’s a template you can use :

    Conversion Hypothesis Template

    This could end up looking something like the following :

    Based on evidence gathered from web analytics and heatmaps, moving our signup form above the fold will fix our lack of free trial signups, improving signups by 50%.

    A hypothesis recorded in Matomo

    Make sure you write your hypothesis down somewhere. Matomo lets you document your hypothesis when creating an A/B test, so it’s easy to reflect on when the test finishes. 

    9. Run A/B tests

    Now, it’s time to put your theory into practice by running an A/B test.

    Create an experiment using a platform like Matomo that creates two different versions of your page : the original and one with the change you mentioned in your hypothesis. 

    There’s no set time for you to run an A/B test. Just keep running it until the outcome is statistically significant. This is something your A/B testing platform should do automatically. 

    A statistically significant result means it would be very unlikely the outcome doesn’t happen in the long term.

    A screenshot of an A/B test

    As you can see in the image above, the wide header variation has significantly outperformed both the original and the other variation. So we can be pretty confident about making the change permanent. 

    If the outcome of your A/B test also validates your conversion hypothesis, you can implement the change. If not, analyse the data, brainstorm another hypothesis and run another A/B test. 

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    10. Monitor and iterate

    You need to develop a culture of continuous improvement to succeed with conversion rate optimisation. That means constantly monitoring your conversion goals and running tests to improve your metrics. 

    While you don’t need to run a conversion audit every month, you should run audits regularly throughout the year.

    How often should you conduct a CRO audit ? 

    You should conduct a CRO audit fairly regularly. 

    We recommend creating a CRO schedule that sees you run a CRO audit every six to 12 months. That will ensure you continue identifying problem pages and keeping your conversion rates competitive. 

    Regular CRO audits will also account for evolving consumer behaviours, changes in your industry and your own business goals, all of which can impact your approach conversion rate optimisation. 

    Run your CRO audit with Matomo

    A CRO audit process is the only way you can identify conversion optimisation methods that will work for your site and your target audience. It’s a methodical, data-backed strategy for making targeted improvements to send conversion rates soaring. 

    There are a lot of steps to complete, but you don’t need dozens of tools to run a CRO audit process. 

    Just one : Matomo.

    Unlike other web analytics platforms, like Google Analytics, Matomo has the built-in tools and plugins to help with every step of the CRO audit process, from web analytics to conversion funnel analysis and A/B testing. With its accurate, unsampled data and privacy-friendly tracking, Matomo is the ideal choice for optimising conversions. 

    Learn how to increase your conversions with Matomo, and start a free 21-day trial today. No credit card required.

  • Convert image to black and white with ffmpeg

    20 septembre 2023, par maddogandnoriko

    How can I convert an image to b&w with ffmpeg ?

    


    I am making some coloring book images by decoloring images and reducing to a black outline. Even though they appear b&w most are not.

    


  • pyqt5 gui dependent on ffmpeg compiled with pyinstaller doesn't run on other machines ?

    19 octobre 2022, par Soren

    I am trying to create a simple Pyqt5 GUI for Windows 10 that uses OpenAI's model Whisper to transcribe a sound file and outputting the results in an Excel-file. It works on my own computer where I have installed the necessary dependencies for Whisper as stated on their github i.e. FFMEG. I provide a minimal example of my code below :

    


    # Import library
import whisper
import os
from PyQt5 import QtCore, QtGui, QtWidgets
import pandas as pd
import xlsxwriter


class Ui_Dialog(QtWidgets.QDialog):
    
    
    # Define functions to use in GUI
   
    # Define function for selecting input files
    def browsefiles(self, Dialog):
      
       
       # Make Dialog box and save files into tuple of paths
       files = QtWidgets.QFileDialog().getOpenFileNames(self, "Select soundfiles", os.getcwd(), "lyd(*mp2 *.mp3 *.mp4 *.m4a *wma *wav)")
       
       self.liste = []
       for url in range(len(files[0])):
           self.liste.append(files[0][url])   

    
    def model_load(self, Dialog):
               
        # Load picked model
        self.model = whisper.load_model(r'C:\Users\Søren\Downloads\Whisper_gui\models' + "\\" + self.combo_modelSize.currentText() + ".pt") ##the path is set to where the models are on the other machine
        
    
    def run(self, Dialog):
                
        # Make list for sound files
        liste_df = []
        
        
        # Running loop for interpreting and encoding sound files
        for url in range(len(self.liste)):
                          
            # Make dataframe
            df = pd.DataFrame(columns=["filename", "start", "end", "text"])
            
            # Run model
            result = self.model.transcribe(self.liste[url])
                            
            # Extract results
            for i in range(len(result["segments"])):
                start = result["segments"][i]["start"]
                end = result["segments"][i]["end"]
                text = result["segments"][i]["text"]
                
                df = df.append({"filename": self.liste[url].split("/")[-1],
                            "start": start, 
                            "end": end, 
                            "text": text}, ignore_index=True)
            
            # Add detected language to dataframe
            df["sprog"] = result["language"]
            
            
            liste_df.append(df)
        
        
        
        # Make excel output
        
        # Concatenate list of dfs
        dataframe = pd.concat(liste_df)
        
        
        # Create a Pandas Excel writer using XlsxWriter as the engine.
        writer = pd.ExcelWriter(self.liste[0].split(".")[0] + '_OUTPUT.xlsx', engine='xlsxwriter')
        writer_wrap_format = writer.book.add_format({"text_wrap": True, 'num_format': '@'})


        # Write the dataframe data to XlsxWriter. Turn off the default header and
        # index and skip one row to allow us to insert a user defined header.
        dataframe.to_excel(writer, sheet_name="Output", startrow=1, header=False, index=False)

        # Get the xlsxwriter workbook and worksheet objects.
        #workbook = writer.book
        worksheet = writer.sheets["Output"]

        # Get the dimensions of the dataframe.
        (max_row, max_col) = dataframe.shape

        # Create a list of column headers, to use in add_table().
        column_settings = [{'header': column} for column in dataframe.columns]

        # Add the Excel table structure. Pandas will add the data.
        worksheet.add_table(0, 0, max_row, max_col - 1, {'columns': column_settings})

        # Make the columns wider for clarity.
        worksheet.set_column(0, max_col - 1, 12)
        
        in_col_no = xlsxwriter.utility.xl_col_to_name(dataframe.columns.get_loc("text"))
        
        worksheet.set_column(in_col_no + ":" + in_col_no, 30, writer_wrap_format)

        # Close the Pandas Excel writer and output the Excel file.
        writer.save()
        writer.close()
    
    
    ## Design setup
    
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(730, 400)
        
        self.select_files = QtWidgets.QPushButton(Dialog)
        self.select_files.setGeometry(QtCore.QRect(40, 62, 81, 31))
        font = QtGui.QFont()
        font.setPointSize(6)
        self.select_files.setFont(font)
        self.select_files.setObjectName("select_files")
        
    
               
        
        self.combo_modelSize = QtWidgets.QComboBox(Dialog)
        self.combo_modelSize.setGeometry(QtCore.QRect(40, 131, 100, 21))
        font = QtGui.QFont()
        font.setPointSize(6)
        self.combo_modelSize.setFont(font)
        self.combo_modelSize.setObjectName("combo_modelSize")
               
        
        self.runButton = QtWidgets.QPushButton(Dialog)
        self.runButton.setGeometry(QtCore.QRect(40, 289, 71, 21))
        font = QtGui.QFont()
        font.setPointSize(6)
        self.runButton.setFont(font)
        self.runButton.setObjectName("runButton")
        
        
       

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        
        
        
        modelSize_options = ['Chose model', 'tiny', 'base', 'small', 'medium', 'large']
        self.combo_modelSize.addItems(modelSize_options)
        
        # Do an action!
        self.select_files.clicked.connect(self.browsefiles)
        self.combo_modelSize.currentIndexChanged.connect(self.model_load)
        self.runButton.clicked.connect(self.run)
        
        
        
    

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.runButton.setText(_translate("Dialog", "Go!"))
        self.select_files.setText(_translate("Dialog", "Select"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())


    


    I compile this app with pyinstaller using the following code. I had some issues to begin with so I found other with similar problems and ended up with this :

    


    pyinstaller --onedir --hidden-import=pytorch --collect-data torch --copy-metadata torch --copy-metadata tqdm --copy-metadata tokenizers --copy-metadata importlib_metadata --hidden-import="sklearn.utils._cython_blas" --hidden-import="sklearn.neighbors.typedefs" --hidden-import="sklearn.neighbors.quad_tree" --hidden-import="sklearn.tree" --hidden-import="sklearn.tree._utils" --copy-metadata regex --copy-metadata requests --copy-metadata packaging --copy-metadata filelock --copy-metadata numpy --add-data "./ffmpeg/*;./ffmpeg/" --hidden-import=whisper --copy-metadata whisper --collect-data whisper minimal_example_whisper.py

    


    When I take the outputtet dist directory and try to run the app on another Windows machine without FFMPEG installed (or Whisper or any other things), I get the following error from the terminal as I push the "run" button in the app (otherwise the app does run).

    


    C:\Users\Søren>"G:\minimal_example_whisper\minimal_example_whisper.exe"
whisper\transcribe.py:70: UserWarning: FP16 is not supported on CPU; using FP32 instead
Traceback (most recent call last):
  File "minimal_example_whisper.py", line 45, in run
  File "whisper\transcribe.py", line 76, in transcribe
  File "whisper\audio.py", line 111, in log_mel_spectrogram
  File "whisper\audio.py", line 42, in load_audio
  File "ffmpeg\_run.py", line 313, in run
  File "ffmpeg\_run.py", line 284, in run_async
  File "subprocess.py", line 951, in __init__
  File "subprocess.py", line 1420, in _execute_child
FileNotFoundError: [WinError 2] Den angivne fil blev ikke fundet


    


    I suspect this has something to do with FFMPEG not being installed on the other machines system ? Does anyone have an automatic solution for this when compiling the app or can it simply only run on machines that has FFMPEG installed ?

    


    Thanks in advance !