Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (58)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • 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

Sur d’autres sites (8017)

  • CRO Testing : The 6-Steps for Maximising Conversion Rates

    10 mars 2024, par Erin

    It’s a nightmare every marketing manager faces. Traffic is soaring after you’ve launched new digital marketing campaigns, but conversions have barely moved.

    Sound familiar ?

    The good news is you’re not alone — loads of marketing managers struggle to get potential customers to purchase. The better news is that you can test dozens of strategies to turn around your site’s fortunes. 

    Conversion rate optimisation testing (CRO testing for short) is the name for this kind of experimentation — and it can send conversion rates and revenue soaring.

    In this article, we’ll explain CRO testing and how you can start doing it today using Matomo. 

    What is CRO Testing ? 

    CRO testing is optimising your site’s conversion funnel using a series of experiments designed to improve conversion rates.

    A CRO test can take several forms, but it usually involves changing one or more elements of your landing page. It looks something like this :

    1. You hypothesise what you expect to happen.
    2. You then run an A/B test using a dedicated CRO platform or tool.
    3. This tool will divide your site’s traffic, sending one segment to one variation and the other segment to another.
    4. The CRO tool will measure conversions, track statistical significance, and declare one variation the winner. 

    A CRO tool isn’t the only software you can use to gather data when running tests. There are several other valuable data sources, including :

    • A web analytics platform : to identify issues with your website
    • User surveys : to find out what your target audience thinks about your site
    • Heatmaps : to learn where users focus their attention
    • Session recordings : to discover how visitors browse your site

    Use as many of these features, tools, and methods as you can when brainstorming hypotheses and measuring results. After all, your CRO test is only as good as your data.

    On that note, we need to mention the importance of data accuracy when researching issues with your website and running CRO tests. If you trust a platform like Google Analytics that uses data sampling (where only a subset of data is analysed), then there’s a risk you make business decisions based on inaccurate reports.

    In practice, that could see you overestimate the effectiveness of a landing page, potentially wasting thousands in ad spend on poorly converting pages. 

    That’s why over a million websites rely on Matomo as their web analytics solution—it doesn’t sample data, providing 100% accurate website traffic insights you can trust to make informed decisions.

    Try Matomo for Free

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

    No credit card required

    Types of CRO Testing 

    There are three core types of CRO tests :

    A/B testing

    A/B testing, or split testing, is when you test two versions of the same page against each other. Usually, the two pages have only one difference, such as a new headline or a different CTA. 

    An A/B test setup in Matomo

    In the test above, for example, we test what happens if we remove one of the affiliate links from a page. We hypothesise that conversions won’t change because these links aren’t effective.

    A/B/n testing

    A/B/n testing is when you test multiple variations of the same element on the same page. 

    Rather than just testing one headline against another, for example, you test multiple different headlines at once.

    A screenshot of A/B test results run using Matomo

    In the test above in Matomo, we’re testing a website’s original header against a wider and smaller version. It turns out the wider header converts significantly better. 

    Multivariate testing

    In a multivariate CRO test, you test multiple different elements at the same time. That could mean testing combining a different headline, CTA button, and image. 

    Multivariate testing can save time because you test multiple elements at once and find the best combination of elements. But you’ll usually need a lot of traffic to find a statistically significant result.

    Why is CRO testing important ?

    Who doesn’t want more conversions, right ? Improving your conversion rate is the core benefit of running a CRO test, but there are a couple of other reasons you should do it, too :

    Why Is CRO Testing Important?

    Improve conversion rates

    How well does your website convert visitors ? The average conversion rate of a typical website is 2.35%, but better-performing websites have significantly higher conversion rates. The top 25% of websites across all industries convert at a rate of 5.31% or higher.

    CRO testing is the best way to improve your site’s conversion rate by tweaking elements of your website and implementing the best results. And because it’s based on data, not your intuition, you’re likely to identify changes that move the needle. 

    Optimise the user experience

    CRO tests are also a great way to improve your site’s user experience. The process of CRO testing forces you to understand how users navigate your website using heatmaps and session recordings and fix the issues they face. 

    You could simplify your form fields to make them easier to fill in, for example, or make your pages easier to navigate. In both cases, your actions will also increase conversion rates.

    Decrease acquisition costs

    Improving your conversion rate using CRO testing will usually mean a decrease in customer acquisition costs and other conversion metrics

    After all, if the cost of your PPC ads stays the same but you convert more traffic, then each new customer will cost less to acquire.

    How to do CRO testing in 6 steps 

    Ready to get your hands dirty ? Follow these six steps to set up your first CRO test :

    Have a clear goal

    Don’t jump straight into testing. You need to be clear about what you want to achieve ; otherwise, you risk wasting time on irrelevant experiments. 

    If you’re unsure what to focus on, look back through your web analytics data and other tools like heatmaps, form analytics, and session recordings to get a feel for some of your site’s biggest conversion roadblocks. 

    Maybe there’s a page with a much lower conversion rate, for example — or a form that most users fail to complete. 

    If it’s the former, then your goal could be to increase the conversion rate of this specific landing page by 25%, bringing it in line with your site’s average. 

    The Goals dashboard in Matomo

    Make sure your new conversion goal is set up properly in your website analytics platform, too. This will ensure you’re tracking conversions accurately. 

    Set a hypothesis

    Now you’ve got a goal, it’s time to create a hypothesis. Based on your available research, a hypothesis is an assumption you make about your conversion rate optimisation test.

    A heatmap of your poorly converting landing page may show that users aren’t focusing on your CTA button because it’s hidden below the fold. 

    You could hypothesise that by placing the CTA button directly under your headline above the fold, your conversion rate should increase. 

    Whatever your goal, you can use the following template to write a hypothesis :

    If we [make this specific change], then [this specific outcome] will occur because [reason].

    Design your test elements

    Most marketing managers won’t be able to run CRO tests independently. A team of talented experts must create the assets you need for a successful experimentation. This includes designers, copywriters, and web developers. 

    Don’t just have them create one new element at a time. Accelerate the process by having your team create dozens of designs simultaneously. That way, you can run a new CRO test as soon as your current test has finished. 

    Create and launch the test

    It’s time to launch your test. Use a CRO tool to automate building your test and tracking results. 

    With Matomo’s A/B Testing feature, it’s as easy as giving your test a name, writing a hypothesis and description, and uploading the URLs of your page variants.

    How to create a new A/B test in Matomo

    Matomo handles everything else, giving you a detailed breakdown at the end of the test with the winning variant. 

    Try Matomo for Free

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

    No credit card required

    Analyse the results

    You can only review the results of your CRO test once it has reached statistical significance — which means the observed outcome isn’t the result of chance.

    In the same way you wouldn’t say a die is unbiased after three rolls, you need thousands of visitors to see your landing pages and take action before deciding which is better. 

    Luckily, most CRO testing platforms, including Matomo, will highlight when a test reaches statistical significance. That means you only need to look at the result to see if your hypothesis is correct. 

    Implement and repeat

    Was your test a success ? Great, you can implement the results and test a new element. 

    Yep, that’s right. There’s no time to rest on your laurels. Continuous CRO testing is necessary to squeeze every conversion possible from your website. Just like fashion trends, website effectiveness changes over time. What works today might not work tomorrow, making ongoing CRO testing beneficial and necessary.

    That’s why it’s a good idea to choose a CRO testing platform like Matomo with no data limits.

    Try Matomo for Free

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

    No credit card required

    CRO testing examples you can run today 

    There’s no shortage of CRO tests you can run. Here are some experiments to get started with :

    Change your CTA design and copy

    Calls to action (CTAs) are the best elements to optimise during your first CRO test. You can change many things about them ; even the smallest optimisation can have a huge impact. 

    Just take a look at the image below to see how diverse your CTAs could be :

    A range of different CTA buttons

    Changing your CTA’s copy is a great place to start, especially if you have generic instructions like “Apply Now.”

    Try a more specific instruction like “Download your free trial” or “Buy now to get 30% off.” Or test benefit-led instructions like “Reduce your ad spend today” or “Take back control of your data.”

    Changing the colour of your CTAs can also yield more conversions. Bright colours are always a good bet. Just make sure your button stands out from the rest of your page. 

    Move the CTA button placement

    The placement of your CTA can be just as important as its copy or colour. If it’s down at the bottom of your page, there’s a good chance most of your visitors will miss it. 

    Try moving it above the fold to see if that makes a difference. Then, test multiple CTA buttons as opposed to just one. 

    Heatmaps and session recordings can identify whether this test is worthwhile. If users rarely focus on your CTA or just don’t scroll far enough to find it, then it’s a good bet you could see an uptick in conversions by moving it. 

    Try different headlines

    Your website’s headlines are another great place to start CRO testing. These are usually the first (and sometimes only) things visitors read, so optimising them as much as possible makes sense. 

    There are entire books written about creating persuasive headlines, but start with one of the following tactics :

    • Include a benefit
      • “Achieve radiant skin—discover the secret !”
    • Add numbers
      • “3 foolproof methods for saving money on your next vacation”
    • Using negative words instead of positive ones
      • “Avoid these 7 mistakes to unlock your potential for personal growth”
    • Shortening or lengthening your headline
      • Shortened : “Crush your fitness goals : Expert tips for success”
      • Lengthened : “Embark on your fitness journey : Learn from experts with proven tips to crush your wellness goals”

    Add more trust signals

    Adding trust signals to your website, such as brand logos, customer reviews, and security badges, can increase your conversion rate.

    We use it at Matomo by adding the logos of well-known clients like the United Nations and Amnesty International underneath our CTAs.

    Trust signals on the Matomo website

    It’s incredibly effective, too. Research by Edelman finds that trust is among the top three most important buying decision factors, above brand likeability.

    Start CRO testing with Matomo

    CRO testing is a data-backed method to improve your site’s conversion rate, making it more user-friendly and decreasing customer acquisition costs. Even a small improvement will be worth the cost of the tools and your time. 

    Fortunately, there’s no need to allocate hundreds of dollars monthly for multiple specialised testing tools. With Matomo, you get a comprehensive platform offering web analytics, user behaviour insights, and CRO testing – all conveniently bundled into one solution. Matomo’s pricing starts from just $19 per month, making it accessible to businesses of all sizes.

    Plus, rest assured knowing that you are GDPR compliant and the data provided is 100% accurate, ethically empowering you to make informed decisions with confidence.

    Take the first step on your CRO testing journey by trying Matomo free for 21 days ; no credit card required.

  • 6 Crucial Benefits of Conversion Rate Optimisation

    26 février 2024, par Erin

    Whether investing time or money in marketing, you want the best return on your investment. You want to get as many customers as possible with your budget and resources.

    That’s what conversion rate optimisation (CRO) aims to do. But how does it help you achieve this major goal ? 

    This guide explores the concrete benefits of conversion rate optimisation and how they lead to more effective marketing and ROI. We’ll also introduce specific CRO best practices to help unlock these benefits.

    What is conversion rate optimisation ?

    Conversion rate optimisation (CRO) is the process of examining your website for improvements and creating tests to increase the number of visitors who take a desired action, like purchasing a product or submitting a form.

    The conversion rate is the percentage of visitors who complete a specific goal.

    Illustration of what conversion rate optimisation is

    In order to improve your conversion rate, you need to figure out :

    • Where your customers come from
    • How potential customers navigate or interact with your website
    • Where potential customers are likely to exit your site (or abandon carts)
    • What patterns drive valuable actions like sign-ups and sales

    From there, you can gradually implement changes that will drive more visitors to convert. That’s the essence of conversion rate optimisation.

    6 top benefits of conversion rate optimisation (and best practices to unlock them)

    Conversion rate optimisation can help you get more out of your campaigns without investing more. CRO helps you in these six ways :

    1. Understand your visitors (and customers) better

    The main goal of CRO is to boost conversions, but it’s more than that. In the process of improving conversion rates, you’ll also benefit by gaining deep insights into user behaviour, preferences, and needs. 

    Using web analytics, tests and behavioural analytics, CRO helps marketers shape their website to match what users need.

    Best practices for understanding your customer :

    First, analyse how visitors act with full context (the pages they view, how long they stay and more). 

    In Matomo, you can use the Users Flow report to understand how visitors navigate through your site. This will help you visualise and identify trends in the buyer’s journey.

    User flow chart in Matomo analytics

    Then, you can dive deeper by defining and analysing journeys with Funnels. This shows you how many potential customers follow through each step in your defined journey and identify where you might have a leaky funnel. 

    Goal funnel chart in Matomo analytics

    In the above Funnel Report, nearly half of our visitors, just 44%, are moving forward in the buyer’s journey after landing on our scuba diving mask promotion page. With 56% of potential customers dropping off at this page, it’s a prime opportunity for optimising conversions.

    Think of Funnels as your map, and pages with high drop-off rates as valuable opportunities for improvement.

    Once you notice patterns, you can try to identify the why. Analyse the pages, do user testing and do your best to improve them.

    2. Deliver a better user experience

    A better understanding of your customers’ needs means you can deliver a better user experience.

    Illustration of improving the user experience

    For example, if you notice many people spend more time than expected on a particular step in the sign-up process, you can work to streamline it.

    Best practices for improving your user experience : 

    To do this, you need to come up with testable hypotheses. Start by using Heatmaps and Session Recordings to visualise the user experience and understand where visitors are hesitating, experiencing points of frustration, and exiting. 

    You need to outline what drives certain patterns in behaviour — like cart abandonment for specific products, and what you think can fix them.

    Example of a heatmap in Matomo analytics

    Let’s look at an example. In the screenshot above, we used Matomo’s Heatmap feature to analyse user behaviour on our website. 

    Only 65% of visitors scroll down far enough to encounter our main call to action to “Write a Review.” This insight suggests a potential opportunity for optimisation, where we can focus efforts on encouraging more users to engage with this key element on our site.

    Once you’ve identified an area of improvement, you need to test the results of your proposed solution to the problem. The most common way to do this is with an A/B test. 

    This is a test where you create a new version of the problematic page, trying different titles, comparing long, and short copy, adding or removing images, testing variations of call-to-action buttons and more. Then, you compare the results — the conversion rate — against the original. With Matomo’s A/B Testing feature, you can easily split traffic between the original and one or more variations.

    A/B testing in Matomo analytics

    In the example above from Matomo, we can see that testing different header sizes on a page revealed that the wider header led to a higher conversion rate of 47%, compared to the original rate of 35% and the smaller header’s 36%.

    Matomo’s report also analyses the “statistical significance” of the difference in results. Essentially, this is the likelihood that the difference comes from the changes you made in the variation. With a small sample size, random patterns (like one page receiving more organic search visits) can cause the differences.

    If you see a significant change over a larger sample size, you can be fairly certain that the difference is meaningful. And that’s exactly what a high statistical significance rating indicates in Matomo. 

    Once a winner is identified, you can apply the change and start a new experiment. 

    3. Create a culture of data-driven decision-making

    Marketers can no longer afford to rely on guesswork or gamble away budgets and resources. In our digital age, you must use data to get ahead of the competition. In 2021, 65% of business leaders agreed that decisions were getting more complex.

    CRO is a great way to start a company-wide focus on data-driven decision-making. 

    Best practices to start a data-driven culture :

    Don’t only test “hunches” or “best practices” — look at the data. Figure out the patterns that highlight how different types of visitors interact with your site.

    Try to answer these questions :

    • How do our most valuable customers interact with our site before purchasing ?
    • How do potential customers who abandon their carts act ?
    • Where do our most valuable customers come from ?

    Moreover, it’s key to democratise insights by providing multiple team members access to information, fostering informed decision-making company-wide.

    4. Lower your acquisition costs and get higher ROI from all marketing efforts

    Once you make meaningful optimisations, CRO can help you lower customer acquisition costs (CAC). Getting new customers through advertising will be cheaper.

    As a result, you’ll get a better return on investment (ROI) on all your campaigns. Every ad and dollar invested will get you closer to a new customer than before. That’s the bottom line of CRO.

    Best practices to lower your CAC (customer acquisition costs) through CRO adjustments :

    The easiest way to lower acquisition costs is to understand where your customers come from. Use marketing attribution to track the results of your campaigns, revealing how each touchpoint contributes to conversions and revenue over time, beyond just last-click attribution.

    You can then compare the number of conversions to the marketing costs of each channel, to get a channel-specific breakdown of CAC.

    This performance overview can help you quickly prioritise the best value channels and ads, lowering your CAC. But these are only surface-level insights. 

    You can also further lower CAC by optimising the pages these campaigns send visitors to. Start with a deep dive into your landing pages using features like Matomo’s Session Recordings or Heatmaps.

    They can help you identify issues with an unengaging user experience or content. Using these insights, you can create A/B tests, where you implement a new page that replaces problematic headlines, buttons, copy, or visuals.

    Example of a multivariate test for headlines

    When a test shows a statistically significant improvement in conversion rates, implement the new version. Repeat this over time, and you can increase your conversion rates significantly, getting more customers with the same spend. This will reduce your customer acquisition costs, and help your company grow faster without increasing your ad budget.

    5. Improve your average order value (AOV) and customer lifetime value (CLV)

    CRO isn’t only about increasing the number of customers you convert. If you adapt your approach, you can also use it to increase the revenue from each customer you bring in. 

    But you can’t do that by only tracking conversion rates, you also need to track exactly what your customers buy.

    If you only blindly optimise for CAC, you even risk lowering your CLV and the overall profitability of your campaigns. (For example, if you focus on Facebook Ads with a $6 CAC, but an average CLV of $50, over Google Ads with a $12 CAC, but a $100 CLV.)

    Best practices to track and improve CLV :

    First, integrate your analytics platform with your e-commerce (B2C) or your CRM (B2B). This will help you get a more holistic view of your customers. You don’t want the data to stop at “converted.” You want to be able to dive deep into the patterns of high-value customers.

    The sales report in Matomo’s ecommerce analytics makes it easy to break down average order value by channels, campaigns, and specific ads.

    Ecommerce sales report in Matomo analytics

    In the report above, we can see that search engines drive customers who spend significantly more, on average, than social networks — $241 vs. $184. But social networks drive a higher volume of customers and more revenue.

    To figure out which channel to focus on, you need to see how the CAC compares to the AOV (or CLV for B2B customers). Let’s say the CAC of social networks is $50, while the search engine CAC is $65. Search engine customers are more profitable — $176 vs. $134. So you may want to adjust some more budget to that channel.

    To put it simply :

    Profit per customer = AOV (or CLV) – CAC

    Example :

    • Profit per customer for social networks = $184 – $50 = $134
    • Profit per customer for search engines = $241 – $65 = $176

    You can also try to A/B test changes that may increase the AOV, like creating a product bundle and recommending it on specific sales pages.

    An improvement in CLV will make your campaigns more profitable, and help stretch your advertising budget even further.

    6. Improve your content and SEO rankings

    A valuable side-effect of focusing on CRO metrics and analyses is that it can boost your SEO rankings. 

    How ? 

    CRO helps you improve the user experience of your website. That’s a key signal Google (and other search engines) care about when ranking webpages. 

    Illustration of how better content improves SEO rankings

    For example, Google’s algorithm considers “dwell time,” AKA how long a user stays on your page. If many users quickly return to the results page and click another result, that’s a bad sign. But if most people stay on your site for a while (or don’t return to Google at all), Google thinks your page gives the user their answer.

    As a result, Google will improve your website’s ranking in the search results.

    Best practices to make the most of CRO when it comes to SEO :

    Use A/B Testing, Heatmaps, and Session Recordings to run experiments and understand user behaviour. Test changes to headlines, page layout, imagery and more to see how it impacts the user experience. You can even experiment with completely changing the content on a page, like substituting an introduction.

    Bring your CRO-testing mindset to important pages that aren’t ranking well to improve metrics like dwell time.

    Start optimising your conversion rate today

    As you’ve seen, enjoying the benefits of CRO heavily relies on the data from a reliable web analytics solution. 

    But in an increasingly privacy-conscious world (just look at the timeline of GDPR updates and fines), you must tread carefully. One of the dilemmas that marketing managers face today is whether to prioritise data quality or privacy (and regulations).

    With Matomo, you don’t have to choose. Matomo values both data quality and privacy, adhering to stringent privacy laws like GDPR and CCPA.

    Unlike other web analytics, Matomo doesn’t sample data or use AI and machine learning to fill data gaps. Plus, you can track without annoying visitors with a cookie consent banner – so you capture 100% of traffic while respecting user privacy (excluding in Germany and UK).

    And as you’ve already seen above, you’ll still get plenty of reports and insights to drive your CRO efforts. With User Flows, Funnels, Session Recordings, Form Analytics, and Heatmaps, you can immediately find insights to improve your bottom line.

    And our built-in A/B testing feature will help you test your hypotheses and drive reliable progress. If you’re ready to reliably optimise conversion rates (with accuracy and without privacy concerns), try Matomo for free for 21 days. No credit card required.

  • When I use ffmpeg to go from a video to frames, and then back to video, the duration is different between the videos

    24 février 2024, par bluepanda

    I am trying to use ffmpeg to convert from a .mp4 (or .mov) video into individual frames, do some processing on those frames, and then convert back to .mp4. The problem is that the resulting video I create is a different duration than the input - I can see this visually when I play the two videos side by side. The difference is not large (i.e. 00:00:00.50 for the input video and 00:00:00.52 for the output video), but when the videos are looped next to each other they get out of sync.

    


    Here is information about the input video retrieved using fluent-ffmpeg's ffmpeg.ffprobe(videoPath) :

    


    metadata {
  streams: [
    {
      index: 0,
      codec_name: 'h264',
      codec_long_name: 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10',
      profile: 'High',
      codec_type: 'video',
      codec_tag_string: 'avc1',
      codec_tag: '0x31637661',
      width: 1080,
      height: 1920,
      coded_width: 1080,
      coded_height: 1920,
      closed_captions: 0,
      has_b_frames: 2,
      sample_aspect_ratio: 'N/A',
      display_aspect_ratio: 'N/A',
      pix_fmt: 'yuv420p',
      level: 40,
      color_range: 'tv',
      color_space: 'bt709',
      color_transfer: 'bt709',
      color_primaries: 'bt709',
      chroma_location: 'left',
      field_order: 'unknown',
      refs: 1,
      is_avc: 'true',
      nal_length_size: 4,
      id: 'N/A',
      r_frame_rate: '30000/1001',
      avg_frame_rate: '27000/1001',
      time_base: '1/30000',
      start_pts: 0,
      start_time: 0,
      duration_ts: 15100,
      duration: 0.503333,
      bit_rate: 5660223,
      max_bit_rate: 'N/A',
      bits_per_raw_sample: 8,
      nb_frames: 36,
      nb_read_frames: 'N/A',
      nb_read_packets: 'N/A',
      tags: [Object],
      disposition: [Object]
    },
    {
      index: 1,
      codec_name: 'aac',
      codec_long_name: 'AAC (Advanced Audio Coding)',
      profile: 'LC',
      codec_type: 'audio',
      codec_tag_string: 'mp4a',
      codec_tag: '0x6134706d',
      sample_fmt: 'fltp',
      sample_rate: 48000,
      channels: 2,
      channel_layout: 'stereo',
      bits_per_sample: 0,
      id: 'N/A',
      r_frame_rate: '0/0',
      avg_frame_rate: '0/0',
      time_base: '1/48000',
      start_pts: 0,
      start_time: 0,
      duration_ts: 24160,
      duration: 0.503333,
      bit_rate: 248416,
      max_bit_rate: 'N/A',
      bits_per_raw_sample: 'N/A',
      nb_frames: 27,
      nb_read_frames: 'N/A',
      nb_read_packets: 'N/A',
      tags: [Object],
      disposition: [Object]
    }
  ],
  format: {
    filename: '/Users/name/images/input.mp4',
    nb_streams: 2,
    nb_programs: 0,
    format_name: 'mov,mp4,m4a,3gp,3g2,mj2',
    format_long_name: 'QuickTime / MOV',
    start_time: 0,
    duration: 0.503333,
    size: 963879,
    bit_rate: 15319941,
    probe_score: 100,
    tags: {
      major_brand: 'mp42',
      minor_version: '1',
      compatible_brands: 'isommp41mp42',
      creation_time: '2024-02-14T01:21:12.000000Z'
    }
  },
  chapters: []
}


    


    and here is from running ffprobe directly :

    


    ffprobe '/Users/name/images/input.mp4'
ffprobe version 6.1.1 Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.1.0.2.5)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_2 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/name/images/input.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp41mp42
    creation_time   : 2024-02-14T01:21:12.000000Z
  Duration: 00:00:00.50, start: 0.000000, bitrate: 15319 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920, 5660 kb/s, 26.97 fps, 29.97 tbr, 30k tbn (default)
    Metadata:
      creation_time   : 2024-02-14T01:21:12.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : AVC Coding
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 248 kb/s (default)
    Metadata:
      creation_time   : 2024-02-14T01:21:12.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]


    


    And this is my command to go from video to frames :

    


    ffmpeg -i /Users/name/images/input.mp4 -y -f image2 /Users/name/images/frames/%d.png


    


    After which I convert the frames back to video with this - note that I get by seeing avg_frame_rate is 27000/1001 = 26.97302697 :

    


    ffmpeg -r 26.973026973026972 -i /Users/name/images/frames/%d.png -y -r 26.973026973026972 -b:v 5660223k -f mp4 -pix_fmt yuv420p -t 0.503333 /Users/name/images/output.mp4


    


    And if I then run fluent-ffmpeg's ffmpeg.ffprobe(videoPath) I get :

    


    metadata {
  streams: [
    {
      index: 0,
      codec_name: 'h264',
      codec_long_name: 'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10',
      profile: 'High',
      codec_type: 'video',
      codec_tag_string: 'avc1',
      codec_tag: '0x31637661',
      width: 1080,
      height: 1920,
      coded_width: 1080,
      coded_height: 1920,
      closed_captions: 0,
      has_b_frames: 2,
      sample_aspect_ratio: '1:1',
      display_aspect_ratio: '9:16',
      pix_fmt: 'yuv420p',
      level: 62,
      color_range: 'unknown',
      color_space: 'unknown',
      color_transfer: 'unknown',
      color_primaries: 'unknown',
      chroma_location: 'left',
      field_order: 'unknown',
      refs: 1,
      is_avc: 'true',
      nal_length_size: 4,
      id: 'N/A',
      r_frame_rate: '27000/1001',
      avg_frame_rate: '27000/1001',
      time_base: '1/27000',
      start_pts: 0,
      start_time: 0,
      duration_ts: 14014,
      duration: 0.519037,
      bit_rate: 52138429,
      max_bit_rate: 'N/A',
      bits_per_raw_sample: 8,
      nb_frames: 14,
      nb_read_frames: 'N/A',
      nb_read_packets: 'N/A',
      tags: [Object],
      disposition: [Object]
    }
  ],
  format: {
    filename: '/Users/name/images/output.mp4',
    nb_streams: 1,
    nb_programs: 0,
    format_name: 'mov,mp4,m4a,3gp,3g2,mj2',
    format_long_name: 'QuickTime / MOV',
    start_time: 0,
    duration: 0.52,
    size: 3383708,
    bit_rate: 52057046,
    probe_score: 100,
    tags: {
      major_brand: 'isom',
      minor_version: '512',
      compatible_brands: 'isomiso2avc1mp41',
      encoder: 'Lavf60.3.100'
    }
  },
  chapters: []
}


    


    and here is from running ffprobe directly :

    


    ffprobe '/Users/name/images/output.mp4'
ffprobe version 6.1.1 Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.1.0.2.5)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_2 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/name/images/output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Duration: 00:00:00.52, start: 0.000000, bitrate: 52153 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1080x1920 [SAR 1:1 DAR 9:16], 52138 kb/s, 26.97 fps, 26.97 tbr, 27k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 libx264


    


    This seems like it should be a fairly common scenario, but I have not been able to find examples of this, and the other questions about incorrect durations on Stack Overflow are about bigger differences (i.e. 3 seconds instead of 10 seconds : Wrong video duration when recording with ffmpeg).

    


    Some other details :

    


      

    • I am running this through a Node.js script with fluent-ffmpeg, but I have also tried running the commands directly in the terminal and the result is the same.
    • 


    • I am fine with the output frames being .png / .jpg / other formats.
    • 


    • I am fine with setting this to a different frame rate than the original as long as the two output videos end up with the same duration.
    • 


    • One suspicious thing is that I set -t 0.503333 when creating the video, but it doesn't seem to work as the result video shows duration: 0.519037 / 00:00:00.52.
    • 


    


    Thank you for any help !