Recherche avancée

Médias (16)

Mot : - Tags -/mp3

Autres articles (72)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Encodage et transformation en formats lisibles sur Internet

    10 avril 2011

    MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
    Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
    Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

Sur d’autres sites (5140)

  • Segmentation Analytics : How to Leverage It on Your Site

    27 octobre 2023, par Erin — Analytics Tips

    The deeper you go with your customer analytics, the better your insights will be.

    The result ? Your marketing performance soars to new heights.

    Customer segmentation is one of the best ways businesses can align their marketing strategies with an effective output to generate better results. Marketers know that targeting the right people is one of the most important aspects of connecting with and converting web visitors into customers.

    By diving into customer segmentation analytics, you’ll be able to transform your loosely defined and abstract audience into tangible, understandable segments, so you can serve them better.

    In this guide, we’ll break down customer segmentation analytics, the different types, and how you can delve into these analytics on your website to grow your business.

    What is customer segmentation ?

    Before we dive into customer segmentation analytics, let’s take a step back and look at customer segmentation in general. 

    Customer segmentation is the process of dividing your customers up into different groups based on specific characteristics.

    These groups could be based on demographics like age or location or behaviours like recent purchases or website visits. 

    By splitting your audience into different segments, your marketing team will be able to craft highly targeted and relevant marketing campaigns that are more likely to convert.

    Additionally, customer segmentation allows businesses to gain new insights into their audience. For example, by diving deep into different segments, marketers can uncover pain points and desires, leading to increased conversion rates and return on investment.

    But, to grasp the different customer segments, organisations need to know how to collect, digest and interpret the data for usable insights to improve their business. That’s where segmentation analytics comes in.

    What is customer segmentation analytics ?

    Customer segmentation analytics splits customers into different groups within your analytics software to create more detailed customer data and improve targeting.

    What is segmentation analytics?

    With customer segmentation, you’re splitting your customers into different groups. With customer segmentation analytics, you’re doing this all within your analytics platform so you can understand them better.

    One example of splitting your customers up is by country. For example, let’s say you have a global customer base. So, you go into your analytics software and find that 90% of your website visitors come from five countries : the UK, the US, Australia, Germany and Japan.

    In this area, you could then create customer segmentation subsets based on these five countries. Moving forward, you could then hop into your analytics tool at any point in time and analyse the segments by country. 

    For example, if you wanted to see how well your recent marketing campaign impacted your Japanese customers, you could look at your Japanese subset within your analytics and dive into the data.

    The primary goal of customer segmentation analytics is to gather actionable data points to give you an in-depth understanding of your customers. By gathering data on your different audience segments, you’ll discover insights on your customers that you can use to optimise your website, marketing campaigns, mobile apps, product offerings and overall customer experience.

    Rather than lumping your entire customer base into a single mass, customer segmentation analytics allows you to meet even more specific and relevant needs and pain points of your customers to serve them better.

    By allowing you to “zoom in” on your audience, segmentation analytics helps you offer more value to your customers, giving you a competitive advantage in the marketplace.

    5 types of segmentation

    There are dozens of different ways to split up your customers into segments. The one you choose depends on your goals and marketing efforts. Each type of segmentation offers a different view of your customers so you can better understand their specific needs to reach them more effectively.

    While you can segment your customers in almost endless ways, five common types the majority fall under are :

    5 Types of Segmentation

    Geographic

    Another way to segment is by geography.

    This is important because you could have drastically different interests, pain points and desires based on where you live.

    If you’re running a global e-commerce website that sells a variety of clothing products, geographic segmentation can play a crucial role in optimising your website.

    For instance, you may observe that a significant portion of your website visitors are from countries in the Southern Hemisphere, where it’s currently summer. On the other hand, visitors from the Northern Hemisphere are experiencing winter. Utilising this information, you can tailor your marketing strategy and website accordingly to increase sells.

    Where someone comes from can significantly impact how they will respond to your messaging, brand and offer.

    Geographic segmentation typically includes the following subtypes :

    • Cities (i.e., Austin, Paris, Berlin, etc.)
    • State (i.e., Massachusetts)
    • Country (i.e., Thailand)

    Psychographic

    Another key segmentation type of psychographic. This is where you split your customers into different groups based on their lifestyles.

    Psychographic segmentation is a method of dividing your customers based on their habits, attitudes, values and opinions. You can unlock key emotional elements that impact your customers’ purchasing behaviours through this segmentation type.

    Psychographic segmentation typically includes the following subtypes :

    • Values
    • Habits
    • Opinions

    Behavioural

    While psychographic segmentation looks at your customers’ overall lifestyle and habits, behavioural segmentation aims to dive into the specific individual actions they take daily, especially when interacting with your brand or your website.

    Your customers won’t all interact with your brand the same way. They’ll act differently when interacting with your products and services for several reasons. 

    Behavioural segmentation can help reveal certain use cases, like why customers buy a certain product, how often they buy it, where they buy it and how they use it.

    By unpacking these key details about your audience’s behaviour, you can optimise your campaigns and messaging to get the most out of your marketing efforts to reach new and existing customers.

    Behavioural segmentation typically includes the following subtypes :

    • Interactions
    • Interests
    • Desires

    Technographic

    Another common segmentation type is technographic segmentation. As the name suggests, this technologically driven segment seeks to understand how your customers use technology.

    While this is one of the newest segmentation types marketers use, it’s a powerful method to help you understand the types of tech your customers use, how often they use it and the specific ways they use it.

    Technographic segmentation typically includes the following subtypes :

    • Smartphone type
    • Device type : smartphone, desktop, tablet
    • Apps
    • Video games

    Demographic

    The most common approach to segmentation is to split your customers up by demographics. 

    Demographic segmentation typically includes subtypes like language, job title, age or education.

    This can be helpful for tailoring your content, products, and marketing efforts to specific audience segments. One way to capture this information is by using web analytics tools, where language is often available as a data point.

    However, for accurate insights into other demographic segments like job titles, which may not be available (or accurate) in analytics tools, you may need to implement surveys or add fields to forms on your website to gather this specific information directly from your visitors.

    How to build website segmentation analytics

    With Matomo, you can create a variety of segments to divide your website visitors into different groups. Matomo’s Segments allows you to view segmentation analytics on subsets of your audience, like :

    • The device they used while visiting your site
    • What channel they entered your site from
    • What country they are located
    • Whether or not they visited a key page of your website
    • And more

    While it’s important to collect general data on every visitor you have to your website, a key to website growth is understanding each type of visitor you have.

    For example, here’s a screenshot of how you can segment all of your website’s visitors from New Zealand :

    Matomo Dashboard of Segmentation by Country

    The criteria you use to define these segments are based on the data collected within your web analytics platform.

    Here are some popular ways you can create some common themes on Matomo that can be used to create segments :

    Visit based segments

    Create segments in Matomo based on visitors’ patterns. 

    For example :

    • Do returning visitors show different traits than first-time visitors ?
    • Do people who arrive on your blog experience your website differently than those arriving on a landing page ?

    This information can inform your content strategy, user interface design and marketing efforts.

    Demographic segments

    Create segments in Matomo based on people’s demographics. 

    For example :

    • User’s browser language
    • Location

    This can enable you to tailor your approach to specific demographics, improving the performance of your marketing campaigns.

    Technographic segments

    Create segments in Matomo based on people’s technographics. 

    For example :

    • Web browser being used (i.e., Chrome, Safari, Firefox, etc.)
    • Device type (i.e., smartphone, tablet, desktop)

    This can inform how to optimise your website based on users’ technology preferences, enhancing the effectiveness of your website.

    Interaction based segments

    Create segments in Matomo based on interactions. 

    For example :

    • Events (i.e., when someone clicks a specific URL on your website)
    • Goals (i.e., when someone stays on your site for a certain period)

    Insights from this can empower you to fine-tune your content and user experience for increasing conversion rates.

    Visitor Profile in Matomo
    Visitor profile view in Matomo with behavioural, location and technographic insights

    Campaign-based segments

    Create segments in Matomo based on campaigns. 

    For example :

    • Visitors arriving from specific traffic sources
    • Visitors arriving from specific advertising campaigns

    With these insights, you can assess the performance of your marketing efforts, optimise your ad spend and make data-driven decisions to enhance your campaigns for better results.

    Ecommerce segments

    Create segments in Matomo based on ecommerce

    For example :

    • Visitors who purchased vs. those who didn’t
    • Visitors who purchased a specific product

    This allows you to refine your website and marketing strategy for increased conversions and revenue.

    Leverage Matomo for your segmentation analytics

    By now, you can see the power of segmentation analytics and how they can be used to understand your customers and website visitors better. By breaking down your audience into groups, you’ll be able to gain insights into those segments to know how to serve them better with improved messaging and relevant products.

    If you’re ready to begin using segmentation analytics on your website, try Matomo. Start your 21-day free trial now — no credit card required.

    Matomo is an ideal choice for marketers looking for an easy-to-use, out-of-the-box web analytics solution that delivers accurate insights while keeping privacy and compliance at the forefront.

  • What is Audience Segmentation ? The 5 Main Types & Examples

    16 novembre 2023, par Erin — Analytics Tips

    The days of mass marketing with the same message for millions are long gone. Today, savvy marketers instead focus on delivering the most relevant message to the right person at the right time.

    They do this at scale by segmenting their audiences based on various data points. This isn’t an easy process because there are many types of audience segmentation. If you take the wrong approach, you risk delivering irrelevant messages to your audience — or breaking their trust with poor data management.

    In this article, we’ll break down the most common types of audience segmentation, share examples highlighting their usefulness and cover how you can segment campaigns without breaking data regulations.

    What is audience segmentation ?

    Audience segmentation is when you divide your audience into multiple smaller specific audiences based on various factors. The goal is to deliver a more targeted marketing message or to glean unique insights from analytics.

    It can be as broad as dividing a marketing campaign by location or as specific as separating audiences by their interests, hobbies and behaviour.

    Illustration of basic audience segmentation

    Audience segmentation inherently makes a lot of sense. Consider this : an urban office worker and a rural farmer have vastly different needs. By targeting your marketing efforts towards agriculture workers in rural areas, you’re honing in on a group more likely to be interested in farm equipment. 

    Audience segmentation has existed since the beginning of marketing. Advertisers used to select magazines and placements based on who typically read them. They would run a golf club ad in a golf magazine, not in the national newspaper.

    How narrow you can make your audience segments by leveraging multiple data points has changed.

    Why audience segmentation matters

    In a survey by McKinsey, 71% of consumers said they expected personalisation, and 76% get frustrated when a vendor doesn’t deliver.

    Illustrated statistics that show the importance of personalisation

    These numbers reflect expectations from consumers who have actively engaged with a brand — created an account, signed up for an email list or purchased a product.

    They expect you to take that data and give them relevant product recommendations — like a shoe polishing kit if you bought nice leather loafers.

    If you don’t do any sort of audience segmentation, you’re likely to frustrate your customers with post-sale campaigns. If, for example, you just send the same follow-up email to all customers, you’d damage many relationships. Some might ask : “What ? Why would you think I need that ?” Then they’d promptly opt out of your email marketing campaigns.

    To avoid that, you need to segment your audience so you can deliver relevant content at all stages of the customer journey.

    5 key types of audience segmentation

    To help you deliver the right content to the right person or identify crucial insights in analytics, you can use five types of audience segmentation : demographic, behavioural, psychographic, technographic and transactional.

    Diagram of the main types of audience segmentation

    Demographic segmentation 

    Demographic segmentation is when you segment a larger audience based on demographic data points like location, age or other factors.

    The most basic demographic segmentation factor is location, which is easy to leverage in marketing efforts. For example, geographic segmentation can use IP addresses and separate marketing efforts by country. 

    But more advanced demographic data points are becoming increasingly sensitive to handle. Especially in Europe, GDPR makes advanced demographics a more tentative subject. Using age, education level and employment to target marketing campaigns is possible. But you need to navigate this terrain thoughtfully and responsibly, ensuring meticulous adherence to privacy regulations.

    Potential data points :

    • Location
    • Age
    • Marital status
    • Income
    • Employment 
    • Education

    Example of effective demographic segmentation :

    A clothing brand targeting diverse locations needs to account for the varying weather conditions. In colder regions, showcasing winter collections or insulated clothing might resonate more with the audience. Conversely, in warmer climates, promoting lightweight or summer attire could be more effective. 

    Here are two ads run by North Face on Facebook and Instagram to different audiences to highlight different collections :

    Each collection is featured differently and uses a different approach with its copy and even the media. With social media ads, targeting people based on advanced demographics is simple enough — you can just single out the factors when making your campaign. But if you don’t want to rely on these data-mining companies, that doesn’t mean you have no options for segmentation.

    Consider allowing people to self-select their interests or preferences by incorporating a short survey within your email sign-up form. This simple addition can enhance engagement, decrease bounce rates, and ultimately improve conversion rates, offering valuable insights into audience preferences.

    This is a great way to segment ethically and without the need of data-mining companies.

    Behavioural segmentation

    Behavioural segmentation segments audiences based on their interaction with your website or app.

    You use various data points to segment your target audience based on their actions.

    Potential data points :

    • Page visits
    • Referral source
    • Clicks
    • Downloads
    • Video plays
    • Goal completion (e.g., signing up for a newsletter or purchasing a product)

    Example of using behavioural segmentation to improve campaign efficiency :

    One effective method involves using a web analytics tool such as Matomo to uncover patterns. By segmenting actions like specific clicks and downloads, pinpoint valuable trends—identifying actions that significantly enhance visitor conversions. 

    Example of a segmented behavioral analysis in Matomo

    For instance, if a case study video substantially boosts conversion rates, elevate its prominence to capitalise on this success.

    Then, you can set up a conditional CTA within the video player. Make it pop up after the user has watched the entire video. Use a specific form and sign them up to a specific segment for each case study. This way, you know the prospect’s ideal use case without surveying them.

    This is an example of behavioural segmentation that doesn’t rely on third-party cookies.

    Psychographic segmentation

    Psychographic segmentation is when you segment audiences based on your interpretation of their personality or preferences.

    Potential data points :

    • Social media patterns
    • Follows
    • Hobbies
    • Interests

    Example of effective psychographic segmentation :

    Here, Adidas segments its audience based on whether they like cycling or rugby. It makes no sense to show a rugby ad to someone who’s into cycling and vice versa. But to rugby athletes, the ad is very relevant.

    If you want to avoid social platforms, you can use surveys about hobbies and interests to segment your target audience in an ethical way.

    Technographic segmentation

    Technographic segmentation is when you single out specific parts of your audience based on which hardware or software they use.

    Potential data points :

    • Type of device used
    • Device model or brand
    • Browser used

    Example of segmenting by device type to improve user experience :

    Upon noticing a considerable influx of tablet users accessing their platform, a leading news outlet decided to optimise their tablet browsing experience. They overhauled the website interface, focusing on smoother navigation and better readability for tablet users. These changes offered tablet users a seamless and enjoyable reading experience tailored precisely to their device.

    Transactional segmentation

    Transactional segmentation is when you use your customers’ purchase history to better target your marketing message to their needs.

    When consumers prefer personalisation, they typically mean based on their actual transactions, not their social media profiles.

    Potential data points :

    • Average order value
    • Product categories purchased within X months
    • X days since the last purchase of a consumable product

    Example of effective transactional segmentation :

    A pet supply store identifies a segment of customers consistently purchasing cat food but not other pet products. They create targeted email campaigns offering discounts or loyalty rewards specifically for cat-related items to encourage repeat purchases within this segment.

    If you want to improve customer loyalty and increase revenue, the last thing you should do is send generic marketing emails. Relevant product recommendations or coupons are the best way to use transactional segmentation.

    B2B-specific : Firmographic segmentation

    Beyond the five main segmentation types, B2B marketers often use “firmographic” factors when segmenting their campaigns. It’s a way to segment campaigns that go beyond the considerations of the individual.

    Potential data points :

    • Company size
    • Number of employees
    • Company industry
    • Geographic location (office)

    Example of effective firmographic segmentation :

    Companies of different sizes won’t need the same solution — so segmenting leads by company size is one of the most common and effective examples of B2B audience segmentation.

    The difference here is that B2B campaigns are often segmented through manual research. With an account-based marketing approach, you start by researching your potential customers. You then separate the target audience into smaller segments (or even a one-to-one campaign).

    Start segmenting and analysing your audience more deeply with Matomo

    Segmentation is a great place to start if you want to level up your marketing efforts. Modern consumers expect to get relevant content, and you must give it to them.

    But doing so in a privacy-sensitive way is not always easy. You need the right approach to segment your customer base without alienating them or breaking regulations.

    That’s where Matomo comes in. Matomo champions privacy compliance while offering comprehensive insights and segmentation capabilities. With robust privacy controls and cookieless configuration, it ensures GDPR and other regulations are met, empowering data-driven decisions without compromising user privacy.

    Take advantage of our 21-day free trial to get insights that can help you improve your marketing strategy and better reach your target audience. No credit card required.

  • Could anyone help me understand why moviepy is rendering at 2.5 it/s ?

    23 décembre 2023, par tristan

    I'm writing a program that uses moviepy to make those weird reddit thread videos with mc parkour playing in the background (real original ik), and everything is good except for when im rendering video which seems to consume a ton of memory and moves really... really slow, like 2.5 it/s. could anyone help ? also im a novice programmer that has no bearing on what is conventional or proper, so sorry if my code is very bad.

    


    from moviepy.video.fx.all import resize
from moviepy.video.tools.subtitles import SubtitlesClip
from moviepy.editor import (
    CompositeVideoClip,
    AudioFileClip,
    VideoFileClip,
    ImageClip,
    TextClip
)
import random
import moviepy.config as cfg
import librosa
from imagegenerator import draw_title
from audioeditor import concatenate_audios
import soundfile as sf
import numpy as np

# Constants
VIDEO_FADE_DURATION = 0.4
SPEED_FACTOR = 1.1
TEXT_WIDTH = 600
MINIMUM_FONT_SIZE = 60
FONT_COLOR = "white"
OUTLINE_COLOR = "black"
TITLE_ANIMATION_DURATION = 0.25
ANIMATION_DURATION = 0.2

# Configure imagemagick binary
cfg.change_settings(
    {
        "IMAGEMAGICK_BINARY": "magick/magick.exe"
    }
)

# Ease-out function
def ease_out(t):
    return 1 - (1 - t) ** 2

# Overlap audio files
def overlap_audio_files(audio_path1, audio_path2):
    # Load the first audio file
    audio1, sr1 = librosa.load(audio_path1, sr=None)

    # Load the second audio file
    audio2, sr2 = librosa.load(audio_path2, sr=None)

    # Ensure both audio files have the same sample rate
    if sr1 != sr2:
        raise ValueError("Sample rates of the two audio files must be the same.")

    # Calculate the duration of audio2
    audio2_duration = len(audio2)

    # Tile audio1 to match the duration of audio2
    audio1 = np.tile(audio1, int(np.ceil(audio2_duration / len(audio1))))

    # Trim audio1 to match the duration of audio2
    audio1 = audio1[:audio2_duration]

    # Combine the audio files by superimposing them
    combined_audio = audio1 + audio2

    # Save the combined audio to a new file
    output_path = "temp/ttsclips/combined_audio.wav"
    sf.write(output_path, combined_audio, sr1)

    return output_path

# Generator function for subtitles with centered alignment and outline
def centered_text_generator_white(txt):
    return TextClip(
        txt,
        font=r"fonts/Invisible-ExtraBold.otf",
        fontsize=86,
        color=FONT_COLOR,
        bg_color='transparent',  # Use a transparent background
        align='center',  # Center the text
        size=(1072, 1682),
        method='caption',  # Draw a caption instead of a title
    )

# Generator function for subtitles with centered alignment and blurred outline
def centered_text_generator_black_blurred_outline(txt, blur_factor=3):
    outline_clip = TextClip(
        txt,
        font=r"fonts/Invisible-ExtraBold.otf",
        fontsize=86,
        color=OUTLINE_COLOR,
        bg_color='transparent',  # Use a transparent background
        align='center',  # Center the text
        size=(1080, 1688),
        method='caption',  # Draw a caption instead of a title
    )

    # Blur the black text (outline)
    blurred_outline_clip = outline_clip.fx(resize, 1.0 / blur_factor)
    blurred_outline_clip = blurred_outline_clip.fx(resize, blur_factor)

    return blurred_outline_clip

# Compile video function
def compile_video(title_content, upvotes, comments, tone, subreddit, video_num):
    # Set the dimensions of the video (720x1280 in this case)
    height = 1280

    # Concatenate the audios
    concatenate_audios()

    concatenated_audio_path = r"temp/ttsclips/concatenated_audio.mp3"
    title_audio_path = r"temp/ttsclips/title.mp3"

    title_audio = AudioFileClip(title_audio_path)
    concatenated_audio = AudioFileClip(concatenated_audio_path)

    # Calculate for video duration
    title_duration = title_audio.duration
    duration = concatenated_audio.duration

    # Set background
    background_path = f"saved_videos/newmcparkour.mp4"
    background = VideoFileClip(background_path)
    background_duration = background.duration
    random_start = random.uniform(0, background_duration - duration)
    background = background.subclip(random_start, random_start + duration)

    # Apply fade-out effect to both background clips
    background = background.crossfadeout(VIDEO_FADE_DURATION)

    # Generate the background image with rounded corners
    background_image_path = draw_title(title_content, upvotes, comments, subreddit)

    # Load the background image with rounded corners
    background_image = ImageClip(background_image_path)

    # Set the start of the animated title clip
    animated_background_clip = background_image.set_start(0)

    # Set the initial position of the text at the bottom of the screen
    initial_position = (90, height)

    # Calculate the final position of the text at the center of the screen
    final_position = [90, 630]

    # Animate the title clip to slide up over the course of the animation duration
    animated_background_clip = animated_background_clip.set_position(
        lambda t: (
            initial_position[0],
            initial_position[1]
            - (initial_position[1] - final_position[1])
            * ease_out(t / TITLE_ANIMATION_DURATION),
        )
    )

    # Set the duration of the animated title clip
    animated_background_clip = animated_background_clip.set_duration(
        TITLE_ANIMATION_DURATION
    )

    # Assign start times to title image
    stationary_background_clip = background_image.set_start(TITLE_ANIMATION_DURATION)

    # Assign positions to stationary title image
    stationary_background_clip = stationary_background_clip.set_position(final_position)

    # Assign durations to stationary title image
    stationary_background_clip = stationary_background_clip.set_duration(
        title_duration - TITLE_ANIMATION_DURATION
    )

    #  Select background music
    if tone == "normal":
        music_options = [
            "Anguish",
            "Garden",
            "Limerence",
            "Lost",
            "NoWayOut",
            "Summer",
            "Never",
            "Miss",
            "Touch",
            "Stellar"
        ]
    elif tone == "eerie":
        music_options = [
            "Creepy",
            "Scary",
            "Spooky",
            "Space",
            "Suspense"
        ]
    background_music_choice = random.choice(music_options)
    background_music_path = f"music/eeriemusic/{background_music_choice}.mp3"

    # Create final audio by overlapping background music and concatenated audio
    final_audio = AudioFileClip(
        overlap_audio_files(background_music_path, concatenated_audio_path)
    )

    # Release the concatenated audio
    concatenated_audio.close()

    # Create subtitles clip using the centered_text_generator
    subtitles = SubtitlesClip("temp/ttsclips/content_speechmarks.srt",
                            lambda txt: centered_text_generator_white(txt))
    subtitles_outline = SubtitlesClip("temp/ttsclips/content_speechmarks.srt",
                            lambda txt: centered_text_generator_black_blurred_outline(txt))

    # Overlay subtitles on the blurred background
    final_clip = CompositeVideoClip(
        [background, animated_background_clip, stationary_background_clip, subtitles_outline, subtitles]
    )

    # Set the final video dimensions and export the video
    final_clip = final_clip.set_duration(duration)
    final_clip = final_clip.set_audio(final_audio)

    final_clip.write_videofile(
        f"temp/videos/{video_num}.mp4",
        codec="libx264",
        fps=60,
        bitrate="8000k",
        audio_codec="aac",
        audio_bitrate="192k",
        preset="ultrafast",
        threads=8
    )

    # Release the concatenated audio
    concatenated_audio.close()

    # Release the title audio
    title_audio.close()

    # Release the background video and image
    background.close()
    background_image.close()

    # Release the final audio
    final_audio.close()

    # Release the subtitle clips
    subtitles.close()
    subtitles_outline.close()

    # Release the final video clip
    final_clip.close()


    


    ive tried turning down my settings, like setting it to "ultrafast" and dropping the bitrate, but nothing seems to work. the only thing I can think of now is that there is something Im doing wrong with moviepy.