
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (100)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (6960)
-
7 Mixpanel alternatives to consider for better web and product analytics
1er août, par JoeMixpanel is a web and mobile analytics platform that brings together product and marketing data so teams can see the impact of their actions and understand the customer journey.
It’s a well-rounded tool with features that help product teams understand how customers navigate their website or app. It’s also straightforward to set up, GDPR compliant, and easy for non-technical folks to use, thanks to an intuitive UI and drag-and-drop reports.
However, Mixpanel is just one of many product and web analytics platforms. Some are cheaper, others are more secure, and a few have more advanced or specialist features.
This article will explore the leading Mixpanel alternatives for product teams and marketers. We’ll cover their key features, what users love about them, and why they may (or may not) be the right pick for you.
Mixpanel : an overview
Let’s start by giving Mixpanel its dues. The platform does a great job of arming product teams with an arsenal of tools to track the impact of their updates, find ways to boost engagement and track which features users love.
Marketing teams use the platform to track customers through the sales funnel, attribute marketing campaigns and find ways to optimise spend.
There’s plenty to like about Mixpanel, including :
- Easy setup and maintenance : Mixpanel’s onboarding flow allows you to build a tracking plan and choose the specific events to measure. When Mixpanel collects data, you’ll see an introductory “starter board.”
- Generous free plan : Mixpanel doesn’t limit freemium users like some platforms. Collect data on 20 million monthly events, use pre-built templates and access its Slack community. There are also no limits on collaborators or integrations.
- Extensive privacy configurations : Mixpanel provides strong consent management configurations. Clients can let their users opt out of tracking, disable geolocation and anonymise their data. It also automatically deletes user data after five years and offers an EU Data Residency Program that can help customers meet GDPR regulations.
- Comprehensive features : Mixpanel gives marketers and product teams the tools and features they need to understand the customer, improve the product and increase conversions.
- Easy-to-use UI : The platform prioritises self-service data, meaning users don’t need to be technically minded to use Mixpanel. Drag-and-drop dashboards democratise access to data and let anyone on your team find answers to their questions.
You wouldn’t be reading this page if Mixpanel offered everything, though. No platform is perfect, and there are several reasons people may want to look for a Mixpanel alternative :
- No self-hosted option : You’ll never have complete control over your data with Mixpanel due to the lack of a self-hosted option. Data will always live on Mixpanel’s servers, meaning compliance with data regulations like GDPR isn’t a given.
- Lack of customisation : Mixpanel doesn’t offer much flexibility when it comes to visualising data. While the platform’s in-built reports are accessible to everyone, you’ll need a developer to build custom reports.
- Not open source : Mixpanel’s proprietary software doesn’t provide the transparency, security and community that comes with using open-source software like Matomo. Proprietary software isn’t inherently wrong, but it could mean your analytics solution isn’t future-proof.
- Steep learning curve : The learning curve can be steep unless you’re a developer. While setting up the software is straightforward, Mixpanel’s reliance on manual tracking means teams must spend a lot of time creating and structuring events to collect the data they need.
If any of those struck a chord, see if one of the following seven Mixpanel alternatives might better fulfil your needs.
The top 7 Mixpanel alternatives
Now, let’s look at the alternatives.
We’ll explain exactly how each platform differs from Mixpanel, its standout features, strengths, common community critiques, and when it may be (or may not be) the right choice.
1. Matomo
Matomo is a privacy-focused, open-source web and mobile analytics platform. As a proponent of an ethical web, Matomo prioritises data ownership and privacy protection.
It’s a great Mixpanel alternative for those who care about data privacy. You own 100% of your data and will always comply with data regulations like GDPR when using the platform.
Main dashboard with visits log, visits over time, visitor map, combined keywords, and traffic sources
(Image Source)Matomo isn’t short on features, either. Product teams and marketers can evaluate the entire user journey, capture detailed visitor profiles, combine web, mobile and app reports, and use custom reporting to generate the specific insides they need.
Key features :
- Complete app and web analytics : Matomo tracks performance metrics and KPIs across web, app and mobile. Understand which pages users visit, how long they stay and how they move between devices.
- Marketing attribution : Built-in marketing attribution capabilities make it easy for marketers to pinpoint their most profitable campaigns and channels.
- User behaviour tracking : Generate in-depth user behaviour data thanks to heatmaps, form analytics and session recordings.
Strengths
- On-premise and cloud versions : Use Matomo for free on your servers or subscribe to Matomo Cloud for hosting and additional support. Either way, you remain in control of your data.
- Exceptional customer support : On-premise and Matomo Cloud users get free access to the forum. Cloud customers get dedicated support, which is available at an additional cost for on-premise customers.
- Consent-free tracking : Matomo doesn’t ruin the user’s experience with cookie banners.
- Open-source software : Matomo’s software is free to use, modify, and distribute. Users get a more secure, reliable and transparent solution thanks to the community of developers and contributors working on the project. Matomo will never become proprietary software, so there’s no risk of vendor lock-in. You will always have access to the source code, raw data and APIs.
Common community critiques :
- On-premise setup : The on-premise version requires some technical knowledge and a server.
- App tracking features : Some features, like heatmaps, available on web analytics aren’t available in-app analytics. Features may also differ between Android SDK and iOS SDK.
Price :
Matomo has three plans :
- Free : on-premise analytics is free to use
- Cloud : Hosted business plans start at €22 per month
- Enterprise : custom-priced, cloud-hosted enterprise plan tailored to meet a business’s specific requirements.
There’s a free 21-day trial for Matomo Cloud and a 30-day plugin trial for Matomo On-Premise.
2. Adobe Analytics
Adobe Analytics is an enterprise analytics platform part of the Adobe Experience Cloud. This makes it a great Mixpanel alternative for those already using other Adobe products. But, getting the most from the platform is challenging without the rest of the Adobe ecosystem.
Adobe Analytics Analysis Workspace training tutorial
(Image Source)Adobe Analytics offers many marketing tools, but product teams may find their offer lacking. Small or inexperienced teams may also need help using this feature-heavy platform.
Key features :
- Detailed web and marketing analytics : Adobe lets marketers draw in data from almost any source to get a comprehensive view of the customer journey.
- Marketing attribution : There’s a great deal of flexibility when crediting conversions. There are unlimited attribution models, too, including both paid and organic media channels.
- Live Stream : This feature lets brands access raw data in near real time (with a 30- to 90-second delay) to assess the impact of marketing campaigns as soon as they launch.
Strengths :
- Enterprise focus : Adobe Analytics’s wide range of advanced features makes It attractive to large companies with one or more high-traffic websites or apps.
- Integrations : Adobe Analytics integrates neatly with other Adobe products like Campaign and Experience Cloud). Access marketing, analytics and content management tools in one place.
- Customisation : The platform makes it easy for users to tailor reports and dashboards to their specific needs.
Common community critiques :
- Few product analytics features : While marketers will likely love Adobe, product teams may find it lacking. For example, the heatmap tool isn’t well developed. You’ll need to use Adobe Target to run A/B tests.
- Complexity : The sheer number of advanced features can make Adobe Analytics a confusing experience for inexperienced or non-technically minded users. While a wealth of support documentation is available, it will take longer to generate value.
- Price : Adobe Analytics costs several thousand dollars monthly, making it suitable only for enterprise clients.
Price :
Adobe offers three tiers : Select, Prime and Ultimate. Pricing is only available on request.
3. Amplitude
Amplitude is a product analytics and event-tracking platform. It is arguably the most like-for-like platform on this list, and there is a lot of overlap between Amploitduce’s and Mixpanel’s capabilities.
The Ask Amplitude™ feature helps build and analyse conversion funnel charts.
(Image Source)The platform is an excellent choice for marketers who want to create a unified view of the customer by tracking them across different devices. This is possible with several other analytics platforms on this list (Matomo included), but Mixpanel doesn’t centralise data from web and app users in a signal report.
Amplitude also has advanced features Mixpanel doesn’t have, like feature management and AI, as well as better customisation.
Key features :
- Product analytics : Amplitude comes packed with features product teams will use regularly, including customer journey analysis, session replays and heatmaps.
- AI : Amplitude AI can clean up data, generate insights and detect anomalies.
- Feature management : Amplitude provides near-real-time feedback on feature usage and adoption rates so that product teams can analyse the impact of their work. Developers can also use the platform to manage progressive rollouts.
Strengths :
- Self-serve reporting : The platform’s self-serve nature means employees of all levels and abilities can get the insights they need. That includes data teams that want to run detailed and complex analyses.
- Integrated web experimentation. Product teams or marketers don’t need a third-party tool to run A/B tests because Amplitude has a comprehensive feature that lets users set up tests, collect data and create reports.
- Extensive customer support : Amplitude records webinars, holds out-of-office sessions and runs a Slack community to help customers extract as much value as possible.
Common community critiques :
- Off-site tracking : While Amplitude has many features for tracking customer interaction across your product, it lacks ways to track customers once they are off-site. This is not great for marketing attribution, for example, or growing search traffic.
- Too complex : The sheer number of things Amplitude tracks can overwhelm inexperienced users who must spend time learning how to use the platform.
- Few templates : Few stock templates make getting started with Amplitude even harder. Users have to create reports from scratch rather than customise a stock graph.
Price :
- Starter : Free to track up to 50,000 users per month.
- Plus : $49 per month to track up to 300,000 users.
- Growth : Custom pricing for no tracking limits
- Enterprise : Custom pricing for dedicated account managers and predictive analytics
4. Google Analytics
Google Analytics is the most popular web analytics platform. It’s completely free to use and easy to install. Although there’s no customer support, the thousands of online how-to videos and articles go some way to making up for it.
GA dashboard showing acquisition, conversion and behaviour data across all channels
(Image Source)Most people are familiar with Google’s web analytics data, which makes it a great Mixpanel alternative for marketers. However, product teams may struggle to get the qualitative data they need.
Key features :
- User and conversion tracking : People don’t just use Google Analytics because it’s free. The platform boasts a competitive user engagement and conversion tracking offering, which lets businesses of any size understand how consumers navigate their sites and make purchases.
- Audience segmentation : Segment audiences based on time and event parameters.
- Google Ads integration : Track users from the moment they interact with one of your ads.
Strengths :
- It’s free : Web and product analytics platforms can cost hundreds of dollars monthly and put a sizable dent in a small business marketing budget. Google provides the basic tools most marketers need for free.
- Cross-platform tracking : GA4 lets teams track mobile and web analytics in one place, which wasn’t possible in Universal Analytics.
- A wealth of third-party support : There’s no shortage of Google Analytics tutorials on YouTube to help you set up and use the platform.
Common community critiques :
- Data privacy concerns : There are concerns about Google’s lack of compliance with regulations like GDPR. The workaround is asking people for permission to collect their data, but that requires a consent pop-up that can disrupt the user experience.
- No CRO features : Google Analytics lacks the conversion optimisation features of other tools in this list, including Matomo. It can’t record sessions, track user interactions via a heatmap or run A/B tests.
- AI data sampling : Google generates insights using AI-powered data sampling rather than analysing your actual data, which may make your data inaccurate.
Price :
Google Analytics is free to use. Google also offers a premium version, GA 360, which starts at $50,000 per year.
5. Heap
Heap is a digital insights and product analytics platform. It gives product managers and marketers the quantitative and qualitative data they need to improve conversion rates, improve product features, and reduce churn.
Heap marketing KPI dashboard
(Image Source)The platform offers everything you’d expect from a product analytics perspective, including session replays, heatmaps and user journey analysis. It even has an AI tool that can answer your questions.
Key features :
- Auto-capture : Unlike other analytics tools (Mixpanel and Google Analytics, for instance), you don’t need to manually code events. Heap’s auto-capture feature automatically collects every user interaction, allowing for retroactive analysis.
- Segmentation : Create distinct customer cohorts based on behaviour. Integrate other platforms like Marketo to use that information to personalise marketing campaigns.
- AI CoPilot : Heap has a generative AI tool, CoPilot, that answers questions like “How many people visited the About page last week ?” It can also handle follow-up questions and suggest what to search next.
Strengths :
- Integrations : Heap’s integrations allow teams to centralise data from dozens of third-party applications. Popular integrations include Shopify and Salesforce. Heap can also connect to your data warehouse.
- Near real-time tracking : Heap has a live data feed that lets teams track user behaviour in near real-time (there’s a 15-second delay).
- Collaboration : Heap facilitates cross-department collaboration via shared spaces and shared reports. You can also share session replays across teams.
Common community critiques :
- Struggles at scale : Heap’s auto-capture functionality can be more of a pain than a perk when working at scale. Sites with a million or more weekly visitors may need to limit data capture.
- Data overload : Heap tracks so much data it can be hard to find the specific events you want to measure.
- Poor-quality graphics : Heap’s visualisations are basic and may not appeal to non-technically minded users.
Price :
Heap offers four plans with pricing available on request.
- Free
- Growth
- Pro
- Premier
6. Hotjar
Hotjar is a product experience insight tool that analyses why users behave as they do. The platform collects behavioural data using heatmaps, surveys and session recordings.
It’s a suitable alternative for product teams and marketers who care about collecting qualitative rather than quantitative data.
New heatmap feature in hotjar
(Image Source)It’s not your typical analytics platform, however. Hotjar doesn’t track site visits or conversions, so teams use it alongside a web analytics platform like Google Analytics or Matomo.
Key features :
- Surveys : Product teams can place surveys on specific pages to capture quantitative and qualitative data.
- Heatmaps : Hotjar provides several heatmaps — click, scroll and interaction — that show how users behave when browsing your site.
- Session recordings : Support quantitative analytics data with videos of genuine user behaviour. It’s like watching someone browsing your site over their shoulder.
Strengths :
- User-friendly interface : The tool is easy to navigate and accessible to all employees. Anyone can start using it quickly.
- Funnel analysis : Use Hotjar’s range of tools to analyse your entire funnel, identifying friction points and opportunities to improve the customer experience.
- Cross-platform tracking : Hotjar compares user behaviour across desktop, mobile and app.
Common community critiques :
- Limited web analytics : While Hotjar is great for understanding customer behaviour, it doesn’t collect standard web analytics data.
- Data retention : Hotjar only retains data for one month to a year on some plans.
- Impacts page speed : The tool’s code impacts your site’s performance, leading to slower load times.
Price :
- Free : Up to five thousand monthly sessions, including screen recordings and heatmaps
- Growth : $49 per month for 7,000 to 10,000 monthly sessions
- Pro : Custom pricing for up to 500 million monthly sessions
- Enterprise : Custom pricing for up to 6 billion monthly sessions.
7. Kissmetrics
Kissmetrics is a web and mobile analytics platform that aims to help teams generate more revenue and acquire more users through product-led growth.
As such, the platform offers more to marketers than product teams — particularly online store owners and SaaS businesses.
Kissmetrics funnel report
(Image Source)Kissmetrics provides a suite of behavioural analytics tools that analyse how customers move through your funnel, where they drop off and why. That’s great for marketers, but product teams will struggle to understand how customers actually use their product once they’ve converted.
Key features :
- User journey mapping : Follow individual customer journeys to learn how each customer finds and engages with your brand.
- Funnel analysis : Funnel reports help marketers track cart abandonments and other drop-offs along the customer journey.
- A/B testing : Kissmetrics’s A/B testing tool measures how customers respond to different page layouts
Strengths :
- Detailed revenue metrics : Kissmetrics makes measuring customer lifetime value, churn rate, and other revenue-focused KPIs easy.
- Stellar onboarding experience : Kissmetrics gives new users a detailed walkthrough and tutorial, which helps non-technical users get up to speed.
- Integrations : Integrate data from dozens of platforms and tools, such as Facebook, Instagram, Shopify, and Woocommerce, so all your data is in one place.
Common community critiques :
- Predominantly web-based : Kissmetrics focuses on web-based traffic over app- or cross-platform tracking. It may be fine for some teams, but product managers or marketers who track users across apps and smartphones may want to look elsewhere.
- Slow to load large data sources : The platform can be slow to load, react to, and analyse large volumes of data, which could be an issue for enterprise clients.
- Price : Kissmetrics is significantly more expensive than Mixpanel. There is no freemium tier, meaning you’ll need to pay at least $199 monthly.
Price :
- Silver : $199 per month for up to 2 million monthly events
- Gold : $499 per month for up to five million monthly events
- Platinum : Custom pricing
Switch from Mixpanel to Matomo
When it comes to extracting deep insights from user data while balancing compliance and privacy protection, Mixpanel delivers mixed results. If you want a more straightforward alternative, more websites chose Matomo over Mixpanel for their analytics because of its :
- Accurate web analytics collected in an ethical, GDPR-compliant manner
- Behavioural analytics (like heatmaps and session recordings) to understand how users engage with your site
- Rolled-up cross-platform reporting for mobile and apps
- Flexibility and customisation with 250+ settings, plentiful plugins and integrations, APIs, raw data access
- Open-source code to create plugins to fit your specific business needs
- 100% data ownership with Matomo On-Premise and Matomo Cloud
Over one million websites in 190+ countries use Matomo’s powerful web analytics platform. Join them today by starting a free 21-day trial — no credit card required.
-
Privacy-enhancing technologies : Balancing data utility and security
18 juillet, par JoeIn the third quarter of 2024, data breaches exposed 422.61 million records, affecting millions of people around the world. This highlights the need for organisations to prioritise user privacy.
Privacy-enhancing technologies can help achieve this by protecting sensitive information and enabling safe data sharing.
This post explores privacy-enhancing technologies, including their types, benefits, and how our website analytics platform, Matomo, supports them by providing privacy-focused features.
What are privacy-enhancing technologies ?
Privacy Enhancing Technologies (PETs) are tools that protect personal data while allowing organisations to process information responsibly.
In industries like healthcare, finance and marketing, businesses often need detailed analytics to improve operations and target audiences effectively. However, collecting and processing personal data can lead to privacy concerns, regulatory challenges, and reputational risks.
PETs minimise the collection of sensitive information, enhance security and allow users to control how companies use their data.
Global privacy laws like the following are making PETs essential for compliance :
- General Data Protection Regulation (GDPR) in the European Union
- California Consumer Privacy Act (CCPA) in California
- Personal Information Protection and Electronic Documents Act (PIPEDA) in Canada
- Lei Geral de Proteção de Dados (LGPD) in Brazil
Non-compliance can lead to severe penalties, including hefty fines and reputational damage. For example, under GDPR, organisations may face fines of up to €20 million or 4% of their global annual revenue for serious violations.
Types of PETs
What are the different types of technologies available for privacy protection ? Let’s take a look at some of them.
Homomorphic encryption
Homomorphic encryption is a cryptographic technique in which users can perform calculations on cipher text without decrypting it first. When the results are decrypted, they match those of the same calculation on plain text.
This technique keeps data safe during processing, and users can analyse data without exposing private or personal data. It is most useful in financial services, where analysts need to protect sensitive customer data and secure transactions.
Despite these advantages, homomorphic encryption can be complex to compute and take longer than other traditional methods.
Secure Multi-Party Computation (SMPC)
SMPC enables joint computations on private data without revealing the raw data.
In 2021, the European Data Protection Board (EDPB) issued technical guidance supporting SMPC as a technology that protects privacy requirements. This highlights the importance of SMPC in healthcare and cybersecurity, where data sharing is necessary but sensitive information must be kept safe.
For example, several hospitals can collaborate on research without sharing patient records. They use SMPC to analyse combined data while keeping individual records confidential.
Synthetic data
Synthetic data is artificially generated to mimic real datasets without revealing actual information. It is useful for training models without compromising privacy.
Imagine a hospital wants to train an AI model to predict patient outcomes based on medical records. Sharing real patient data, however, poses privacy challenges, so that can be changed with synthetic data.
Synthetic data may fail to capture subtle nuances or anomalies in real-world datasets, leading to inaccuracies in AI model predictions.
Pseudonymisation
Pseudonymisation replaces personal details with fake names or codes, making it hard to determine who the information belongs to. This helps keep people’s personal information safe. Even if someone gets hold of the data, it’s not easy to connect it back to real individuals.
Pseudonymisation works differently from synthetic data, though both help protect individual privacy.
When we pseudonymise, we take factual information and replace the bits that could identify someone with made-up labels. Synthetic data takes an entirely different approach. It creates new, artificial information that looks and behaves like real data but doesn’t contain any details about real people.
Differential privacy
Differential privacy adds random noise to datasets. This noise helps protect individual entries while still allowing for overall analysis of the data.
It’s useful in statistical studies where trends need to be understood without accessing personal details.
For example, imagine a survey about how many hours people watch TV each week.
Differential privacy would add random variation to each person’s answer, so users couldn’t tell exactly how long John or Jane watched TV.
However, they could still see the average number of hours everyone in the group watched, which helps researchers understand viewing habits without invading anyone’s privacy.
Zero-Knowledge Proofs (ZKP)
Zero-knowledge proofs help verify the truth without exposing sensitive details. This cryptographic approach lets someone prove they know something or meet certain conditions without revealing the actual information behind that proof.
Take ZCash as a real-world example. While Bitcoin publicly displays every financial transaction detail, ZCash offers privacy through specialised proofs called Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs). These mathematical proofs confirm that a transaction follows all the rules without broadcasting who sent money, who received it, or how much changed hands.
The technology comes with trade-offs, though.
Creating and checking these proofs demands substantial computing power, which slows down transactions and drives up costs. Implementing these systems requires deep expertise in advanced cryptography, which keeps many organisations from adopting them despite their benefits.
Trusted Execution Environment (TEE)
TEEs create special protected zones inside computer processors where sensitive code runs safely. These secure areas process valuable data while keeping it away from anyone who shouldn’t see it.
TEEs are widely used in high-security applications, such as mobile payments, digital rights management (DRM), and cloud computing.
Consider how companies use TEEs in the cloud : A business can run encrypted datasets within a protected area on Microsoft Azure or AWS Nitro Enclaves. Due to this setup, even the cloud provider can’t access the private data or see how the business uses it.
TEEs do face limitations. Their isolated design makes them struggle with large or spread-out computing tasks, so they don’t work well for complex calculations across multiple systems.
Different TEE implementations often lack standardisation, so there can be compatibility issues and dependence on specific vendors. If the vendor stops the product or someone discovers a security flaw, switching to a new solution often proves expensive and complicated.
Obfuscation (Data masking)
Data masking involves replacing or obscuring sensitive data to prevent unauthorised access.
It replaces sensitive data with fictitious but realistic values. For example, a customer’s credit card number might be masked as “1234-XXXX-XXXX-5678.”
The original data is permanently altered or hidden, and the masked data can’t be reversed to reveal the original values.
Federated learning
Federated learning is a machine learning approach that trains algorithms across multiple devices without centralising the data. This method allows organisations to leverage insights from distributed data sources while maintaining user privacy.
For example, NVIDIA’s Clara platform uses federated learning to train AI models for medical imaging (e.g., detecting tumours in MRI scans).
Hospitals worldwide contribute model updates from their local datasets to build a global model without sharing patient scans. This approach may be used to classify stroke types and improve cancer diagnosis accuracy.
Now that we have explored the various types of PETs, it’s essential to understand the principles that guide their development and use.
Key principles of PET (+ How to enable them with Matomo)
PETs are based on several core principles that aim to balance data utility with privacy protection. These principles include :
Data minimisation
Data minimisation is a core PET principle focusing on collecting and retaining only essential data.
Matomo, an open-source web analytics platform, helps organisations to gather insights about their website traffic and user behaviour while prioritising privacy and data protection.
Recognising the importance of data minimisation, Matomo offers several features that actively support this principle :
- Cookieless tracking : Eliminates reliance on cookies, reducing unnecessary data collection.
- IP anonymisation : Automatically anonymises IP addresses, preventing identification of individual users.
- Custom data retention policies : Allows organisations to define how long user data is stored before automatic deletion.
7Assets, a fintech company, was using Google Analytics and Plausible as their web analytics tools.
However, with Google Analytics, they faced a problem of unnecessary data tracking, which created legal work overhead. Plausible didn’t have the features for the kind of analysis they wanted.
They switched to Matomo to enjoy the balance of privacy yet detailed analytics. With Matomo, they had full control over their data collection while also aligning with privacy and compliance requirements.
Transparency and User Control
Transparency and user control are important for trust and compliance.
Matomo enables these principles through :
- Consent management : Offers integration with Consent Mangers (CMPs), like Cookiebot and Osano, for collecting and managing user consent.
- Respect for DoNotTrack settings : Honours browser-based privacy preferences by default, empowering users with control over their data.
- Opt-out mechanisms : These include iframe features that allow visitors to opt out of tracking.
Security and Confidentiality
Security and confidentiality protect sensitive data against inappropriate access.
Matomo achieves this through :
- On-premise hosting : Gives organisations the ability to host analytics data on-site for complete data control.
- Data security : Protects stored information through access controls, audit logs, two-factor authentication and SSL encryption.
- Open source code : Enables community reviews for better security and transparency.
Purpose Limitation
Purpose limitation means organisations use data solely for the intended purpose and don’t share or sell it to third parties.
Matomo adheres to this principle by using first-party cookies by default, so there’s no third-party involvement. Matomo offers 100% data ownership, meaning all the data organisations get from our web analytics is of the organisation, and we don’t sell it to any external parties.
Compliance with Privacy Regulations
Matomo aligns with global privacy laws such as GDPR, CCPA, HIPAA, LGPD and PECR. Its compliance features include :
- Configurable data protection : Matomo can be configured to avoid tracking personally identifiable information (PII).
- Data subject request tools : These provide mechanisms for handling requests like data deletion or access in accordance with legal frameworks.
- GDPR manager : Matomo provides a GDPR Manager that helps businesses manage compliance by offering features like visitor log deletion and audit trails to support accountability.
Mandarine Academy is a French-based e-learning company. It found that complying with GDPR regulations was difficult with Google Analytics and thought GA4 was hard to use. Therefore, it was searching for a web analytics solution that could help it get detailed feedback on its site’s strengths and friction points while respecting privacy and GDPR compliance. With Matomo, it checked all the boxes.
Data collaboration : A key use case of PETs
One specific area where PETs are quite useful is data collaboration. Data collaboration is important for organisations for research and innovation. However, data privacy is at stake.
This is where tools like data clean rooms and walled gardens play a significant role. These use one or more types of PETs (they aren’t PETs themselves) to allow for secure data analysis.
Walled gardens restrict data access but allow analysis within their platforms. Data clean rooms provide a secure space for data analysis without sharing raw data, often using PETs like encryption.
Tackling privacy issues with PETs
Amidst data breaches and privacy concerns, organisations must find ways to protect sensitive information while still getting useful insights from their data. Using PETs is a key step in solving these problems as they help protect data and build customer trust.
Tools like Matomo help organisations comply with privacy laws while keeping data secure. They also allow individuals to have more control over their personal information, which is why 1 million websites use Matomo.
In addition to all the nice features, switching to Matomo is easy :
“We just followed the help guides, and the setup was simple,” said Rob Jones. “When we needed help improving our reporting, the support team responded quickly and solved everything in one step.”
To experience Matomo, sign up for our 21-day free trial, no credit card details needed.
-
ffmpeg produces duplicate pts with "wallclock_as_timestamps 1" option on MKV
15 avril 2024, par Jax2171I need to get real time reference of every keyframe captured by an IP camera. The
-wallclock_as_timestamps 1
option seems to do the trick for us, however we are forced to replace the TS output container with MKV to get a correct PTS epoch value1712996356.833000
.

Here is the ffmpeg command used :


ffmpeg -report -use_wallclock_as_timestamps 1 -rtsp_transport tcp -i rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0 -c:v copy -c:a aac -copyts -f matroska -y rec.mkv



The capture process runs without any relevant worning or error messages.


However, playing the captured video with any player shows very short and evident but very annoying lags. Upon investigation I discovered that many frame PTSs have the same value. The command I used to show duplicate PTSs is as follows :


ffprobe -v error -show_entries frame=pkt_pts_time -select_streams v -of csv=p=0 rec.mkv | sort | uniq -d



On a recording of about 10 minutes the result of the duplicate PTS is the following :


1713086493.367000
1713086493.368000
1713086493.370000
1713086493.372000
1713086543.714000
1713086558.793000
1713086558.817000
1713086558.872000
1713086561.780000
1713086564.642000
1713086564.657000
1713086564.778000
1713086565.794000
...



I'm not sure if the lag problem is caused by this, however the problem does not occur with the TS container, which however I cannot use due to the PTS values being roundly 33 bit.


The
-vsync 0
or-vsync 2
options on input or output didn't help.

This is the log using the
-report
option :

ffmpeg started on 2024-04-15 at 09:04:38
Report written to "ffmpeg-20240415-090438.log"
Log level: 48
Command line:
ffmpeg -report -stats -hide_banner -use_wallclock_as_timestamps 1 -rtsp_transport tcp -i "rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0" -c:v copy -c:a aac -copyts -f matroska -y rec.mkv
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-stats' ... matched as option 'stats' (print progress report during encoding) with argument '1'.
Reading option '-hide_banner' ... matched as option 'hide_banner' (do not show program banner) with argument '1'.
Reading option '-use_wallclock_as_timestamps' ... matched as AVOption 'use_wallclock_as_timestamps' with argument '1'.
Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'.
Reading option '-i' ... matched as input url with argument 'rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'aac'.
Reading option '-copyts' ... matched as option 'copyts' (copy timestamps) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'matroska'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'rec.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option stats (print progress report during encoding) with argument 1.
Applying option hide_banner (do not show program banner) with argument 1.
Applying option copyts (copy timestamps) with argument 1.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0.
Successfully parsed a group of options.
Opening an input file: rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0.
[tcp @ 0x1646660] No default whitelist set
[tcp @ 0x1646660] Original list of addresses:
[tcp @ 0x1646660] Address 192.168.5.21 port 554
[tcp @ 0x1646660] Interleaved list of addresses:
[tcp @ 0x1646660] Address 192.168.5.21 port 554
[tcp @ 0x1646660] Starting connection attempt to 192.168.5.21 port 554
[tcp @ 0x1646660] Successfully connected to 192.168.5.21 port 554
[rtsp @ 0x1645e70] SDP:
v=0
o=- 2251950012 2251950012 IN IP4 0.0.0.0
s=Media Server
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=packetization-supported:DH
a=rtppayload-supported:DH
a=range:npt=now-
a=x-packetization-supported:IV
a=x-rtppayload-supported:IV
m=video 0 RTP/AVP 96
a=control:trackID=0
a=framerate:25.000000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=4D4028;sprop-parameter-sets=Z01AKKaAeAIn5ZuAgICgAAADACAAAAZQgAA=,aO48gAA=
a=recvonly
m=audio 0 RTP/AVP 97
a=control:trackID=1
a=rtpmap:97 MPEG4-GENERIC/16000
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408
a=recvonly

[rtsp @ 0x1645e70] video codec set to: h264
[rtsp @ 0x1645e70] RTP Packetization Mode: 1
[rtsp @ 0x1645e70] RTP Profile IDC: 4d Profile IOP: 40 Level: 28
[rtsp @ 0x1645e70] Extradata set to 0x164af98 (size: 39)
[rtsp @ 0x1645e70] audio codec set to: aac
[rtsp @ 0x1645e70] audio samplerate set to: 16000
[rtsp @ 0x1645e70] audio channels set to: 1
[rtsp @ 0x1645e70] setting jitter buffer size to 0
[rtsp @ 0x1645e70] setting jitter buffer size to 0
[rtsp @ 0x1645e70] hello state=0
Failed to parse interval end specification ''
[h264 @ 0x164ab30] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x164ab30] Format yuvj420p chosen by get_format().
[h264 @ 0x164ab30] Reinit context to 1920x1088, pix_fmt: yuvj420p
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0x164ab30] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[rtsp @ 0x1645e70] All info found
Input #0, rtsp, from 'rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0':
 Metadata:
 title : Media Server
 Duration: N/A, start: 1713164678.794625, bitrate: N/A
 Stream #0:0, 22, 1/90000: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080, 25 fps, 25 tbr, 90k tbn, 50 tbc
 Stream #0:1, 15, 1/16000: Audio: aac (LC), 16000 Hz, mono, fltp
Successfully opened the file.
Parsing a group of options: output url rec.mkv.
Applying option c:v (codec name) with argument copy.
Applying option c:a (codec name) with argument aac.
Applying option f (force format) with argument matroska.
Successfully parsed a group of options.
Opening an output file: rec.mkv.
[file @ 0x1699f30] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
detected 4 logical cores
[graph_0_in_0_1 @ 0x1682bb0] Setting 'time_base' to value '1/16000'
[graph_0_in_0_1 @ 0x1682bb0] Setting 'sample_rate' to value '16000'
[graph_0_in_0_1 @ 0x1682bb0] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 0x1682bb0] Setting 'channel_layout' to value '0x4'
[graph_0_in_0_1 @ 0x1682bb0] tb:1/16000 samplefmt:fltp samplerate:16000 chlayout:0x4
[format_out_0_1 @ 0x187f2e0] Setting 'sample_fmts' to value 'fltp'
[format_out_0_1 @ 0x187f2e0] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[AVFilterGraph @ 0x164fd70] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[matroska @ 0x169c330] get_metadata_duration returned: 0
Output #0, matroska, to 'rec.mkv':
 Metadata:
 title : Media Server
 encoder : Lavf58.45.100
 Stream #0:0, 0, 1/1000: Video: h264 (Main) (H264 / 0x34363248), yuvj420p(pc, bt709, progressive), 1920x1080, q=2-31, 25 fps, 25 tbr, 1k tbn, 90k tbc
 Stream #0:1, 0, 1/1000: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 16000 Hz, mono, fltp, 69 kb/s
 Metadata:
 encoder : Lavc58.91.100 aac
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[matroska @ 0x169c330] Starting new cluster with timestamp 1713164678731 at offset 770 bytes
[matroska @ 0x169c330] Writing block of size 581 with pts 1713164678731, dts 1713164678731, duration 64 at relative offset 14 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 517 with pts 1713164678795, dts 1713164678795, duration 64 at relative offset 602 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 376900 with pts 1713164678872, dts 1713164678872, duration 40 at relative offset 1126 in cluster at offset 770. TrackNumber 1, keyframe 1
[matroska @ 0x169c330] Writing block of size 8172 with pts 1713164678912, dts 1713164678912, duration 40 at relative offset 378034 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 672 with pts 1713164678912, dts 1713164678912, duration 64 at relative offset 386213 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 550 with pts 1713164679177, dts 1713164679177, duration 64 at relative offset 386892 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7654 with pts 1713164679178, dts 1713164679178, duration 40 at relative offset 387449 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7483 with pts 1713164679213, dts 1713164679213, duration 40 at relative offset 395110 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7703 with pts 1713164679242, dts 1713164679242, duration 40 at relative offset 402600 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 565 with pts 1713164679242, dts 1713164679242, duration 64 at relative offset 410310 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7650 with pts 1713164679271, dts 1713164679271, duration 40 at relative offset 410882 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 585 with pts 1713164679271, dts 1713164679271, duration 64 at relative offset 418539 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 8682 with pts 1713164679301, dts 1713164679301, duration 40 at relative offset 419131 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 8888 with pts 1713164679330, dts 1713164679330, duration 40 at relative offset 427820 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 506 with pts 1713164679330, dts 1713164679330, duration 64 at relative offset 436715 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 8019 with pts 1713164679360, dts 1713164679360, duration 40 at relative offset 437228 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7919 with pts 1713164679361, dts 1713164679361, duration 40 at relative offset 445254 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7822 with pts 1713164679361, dts 1713164679361, duration 40 at relative offset 453180 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 699 with pts 1713164679361, dts 1713164679361, duration 64 at relative offset 461009 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 619 with pts 1713164679361, dts 1713164679361, duration 64 at relative offset 461715 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7768 with pts 1713164679362, dts 1713164679362, duration 40 at relative offset 462341 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 8469 with pts 1713164679362, dts 1713164679362, duration 40 at relative offset 470116 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 601 with pts 1713164679362, dts 1713164679362, duration 64 at relative offset 478592 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 559 with pts 1713164679363, dts 1713164679363, duration 64 at relative offset 479200 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 8265 with pts 1713164679366, dts 1713164679366, duration 40 at relative offset 479766 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7766 with pts 1713164679406, dts 1713164679406, duration 40 at relative offset 488038 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 531 with pts 1713164679415, dts 1713164679415, duration 64 at relative offset 495811 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7753 with pts 1713164679446, dts 1713164679446, duration 40 at relative offset 496349 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 8274 with pts 1713164679486, dts 1713164679486, duration 40 at relative offset 504109 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 569 with pts 1713164679496, dts 1713164679496, duration 64 at relative offset 512390 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 8445 with pts 1713164679526, dts 1713164679526, duration 40 at relative offset 512966 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 522 with pts 1713164679535, dts 1713164679535, duration 64 at relative offset 521418 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7922 with pts 1713164679566, dts 1713164679566, duration 40 at relative offset 521947 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7954 with pts 1713164679606, dts 1713164679606, duration 40 at relative offset 529876 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 503 with pts 1713164679615, dts 1713164679615, duration 64 at relative offset 537837 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 11167 with pts 1713164679646, dts 1713164679646, duration 40 at relative offset 538347 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 503 with pts 1713164679655, dts 1713164679655, duration 64 at relative offset 549521 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 10534 with pts 1713164679686, dts 1713164679686, duration 40 at relative offset 550031 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7607 with pts 1713164679726, dts 1713164679726, duration 40 at relative offset 560572 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 478 with pts 1713164679772, dts 1713164679772, duration 64 at relative offset 568186 in cluster at offset 770. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7842 with pts 1713164679774, dts 1713164679774, duration 40 at relative offset 568671 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 9862 with pts 1713164679806, dts 1713164679806, duration 40 at relative offset 576520 in cluster at offset 770. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Starting new cluster with timestamp 1713164679815 at offset 587166 bytes
[matroska @ 0x169c330] Writing block of size 449 with pts 1713164679815, dts 1713164679815, duration 64 at relative offset 14 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 379456 with pts 1713164679870, dts 1713164679870, duration 40 at relative offset 470 in cluster at offset 587166. TrackNumber 1, keyframe 1
[matroska @ 0x169c330] Writing block of size 415 with pts 1713164679903, dts 1713164679903, duration 64 at relative offset 379934 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7008 with pts 1713164679905, dts 1713164679905, duration 40 at relative offset 380356 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6917 with pts 1713164679925, dts 1713164679925, duration 40 at relative offset 387371 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 513 with pts 1713164679935, dts 1713164679935, duration 64 at relative offset 394295 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7111 with pts 1713164679966, dts 1713164679966, duration 40 at relative offset 394815 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 753 with pts 1713164679975, dts 1713164679975, duration 64 at relative offset 401933 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7091 with pts 1713164680006, dts 1713164680006, duration 40 at relative offset 402693 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7045 with pts 1713164680045, dts 1713164680045, duration 40 at relative offset 409791 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 659 with pts 1713164680055, dts 1713164680055, duration 64 at relative offset 416843 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6983 with pts 1713164680086, dts 1713164680086, duration 40 at relative offset 417509 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6932 with pts 1713164680127, dts 1713164680127, duration 40 at relative offset 424499 in cluster at offset 587166. TrackNumber 1, keyframe 0
frame= 35 fps=0.0 q=-1.0 size= 512kB time=475879:04:40.20 bitrate= 0.0kbits/s speed=3.35e+09x 
[matroska @ 0x169c330] Writing block of size 691 with pts 1713164680135, dts 1713164680135, duration 64 at relative offset 431438 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6990 with pts 1713164680166, dts 1713164680166, duration 40 at relative offset 432136 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 651 with pts 1713164680176, dts 1713164680176, duration 64 at relative offset 439133 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7046 with pts 1713164680206, dts 1713164680206, duration 40 at relative offset 439791 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 7130 with pts 1713164680246, dts 1713164680246, duration 40 at relative offset 446844 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 601 with pts 1713164680255, dts 1713164680255, duration 64 at relative offset 453981 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 7205 with pts 1713164680286, dts 1713164680286, duration 40 at relative offset 454589 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 561 with pts 1713164680295, dts 1713164680295, duration 64 at relative offset 461801 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6936 with pts 1713164680326, dts 1713164680326, duration 40 at relative offset 462369 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6822 with pts 1713164680366, dts 1713164680366, duration 40 at relative offset 469312 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 621 with pts 1713164680375, dts 1713164680375, duration 64 at relative offset 476141 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6845 with pts 1713164680405, dts 1713164680405, duration 40 at relative offset 476769 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6848 with pts 1713164680445, dts 1713164680445, duration 40 at relative offset 483621 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 588 with pts 1713164680455, dts 1713164680455, duration 64 at relative offset 490476 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6828 with pts 1713164680486, dts 1713164680486, duration 40 at relative offset 491071 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 546 with pts 1713164680495, dts 1713164680495, duration 64 at relative offset 497906 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6845 with pts 1713164680526, dts 1713164680526, duration 40 at relative offset 498459 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6924 with pts 1713164680566, dts 1713164680566, duration 40 at relative offset 505311 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 508 with pts 1713164680576, dts 1713164680576, duration 64 at relative offset 512242 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6844 with pts 1713164680606, dts 1713164680606, duration 40 at relative offset 512757 in cluster at offset 587166. TrackNumber 1, keyframe 0
frame= 48 fps= 47 q=-1.0 size= 512kB time=475879:04:40.72 bitrate= 0.0kbits/s speed=1.66e+09x 
[matroska @ 0x169c330] Writing block of size 587 with pts 1713164680615, dts 1713164680615, duration 64 at relative offset 519608 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6859 with pts 1713164680645, dts 1713164680645, duration 40 at relative offset 520202 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 6855 with pts 1713164680686, dts 1713164680686, duration 40 at relative offset 527068 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 573 with pts 1713164680695, dts 1713164680695, duration 64 at relative offset 533930 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6881 with pts 1713164680726, dts 1713164680726, duration 40 at relative offset 534510 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 10773 with pts 1713164680766, dts 1713164680766, duration 40 at relative offset 541398 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 520 with pts 1713164680775, dts 1713164680775, duration 64 at relative offset 552178 in cluster at offset 587166. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6923 with pts 1713164680805, dts 1713164680805, duration 40 at relative offset 552705 in cluster at offset 587166. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Starting new cluster with timestamp 1713164680815 at offset 1146808 bytes
[matroska @ 0x169c330] Writing block of size 580 with pts 1713164680815, dts 1713164680815, duration 64 at relative offset 14 in cluster at offset 1146808. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 380085 with pts 1713164680864, dts 1713164680864, duration 40 at relative offset 601 in cluster at offset 1146808. TrackNumber 1, keyframe 1
[matroska @ 0x169c330] Writing block of size 9916 with pts 1713164680896, dts 1713164680896, duration 40 at relative offset 380694 in cluster at offset 1146808. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 541 with pts 1713164680901, dts 1713164680901, duration 64 at relative offset 390617 in cluster at offset 1146808. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 5877 with pts 1713164680925, dts 1713164680925, duration 40 at relative offset 391165 in cluster at offset 1146808. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] Writing block of size 529 with pts 1713164680935, dts 1713164680935, duration 64 at relative offset 397049 in cluster at offset 1146808. TrackNumber 2, keyframe 1
[matroska @ 0x169c330] Writing block of size 6661 with pts 1713164680966, dts 1713164680966, duration 40 at relative offset 397585 in cluster at offset 1146808. TrackNumber 1, keyframe 0
[matroska @ 0x169c330] end duration = 1713164681006
[matroska @ 0x169c330] stream 0 end duration = 1713164681006
[matroska @ 0x169c330] stream 1 end duration = 1713164680999
frame= 54 fps= 42 q=-1.0 Lsize= 1515kB time=475879:04:40.99 bitrate= 0.0kbits/s speed=1.33e+09x 
video:1493kB audio:20kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.099897%
Input file #0 (rtsp://user:password1@192.168.5.21/cam/realmonitor?channel=1channel1[1]=1subtype=0):
 Input stream #0:0 (video): 54 packets read (1529156 bytes); 
 Input stream #0:1 (audio): 35 packets read (9268 bytes); 35 frames decoded (35840 samples); 
 Total: 89 packets (1538424 bytes) demuxed
Output file #0 (rec.mkv):
 Output stream #0:0 (video): 54 packets muxed (1529156 bytes); 
 Output stream #0:1 (audio): 35 frames encoded (35840 samples); 36 packets muxed (20446 bytes); 
 Total: 90 packets (1549602 bytes) muxed
35 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x1667620] Statistics: 2 seeks, 7 writeouts
[aac @ 0x1673880] Qavg: 142.738
Exiting normally, received signal 15.



In this short 3 second capture the duplicate timestamps are
1713164679.361000
and1713164679.362000
.

How can I solve this problem ? What different approach could I use to achieve this goal ?


Thanks in advance.