Recherche avancée

Médias (0)

Mot : - Tags -/performance

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

Autres articles (83)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

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

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Emballe Médias : Mettre en ligne simplement des documents

    29 octobre 2010, par

    Le plugin emballe médias a été développé principalement pour la distribution mediaSPIP mais est également utilisé dans d’autres projets proches comme géodiversité par exemple. Plugins nécessaires et compatibles
    Pour fonctionner ce plugin nécessite que d’autres plugins soient installés : CFG Saisies SPIP Bonux Diogène swfupload jqueryui
    D’autres plugins peuvent être utilisés en complément afin d’améliorer ses capacités : Ancres douces Légendes photo_infos spipmotion (...)

Sur d’autres sites (8910)

  • 12 ffmpeg xfade transitions : "option not found"

    17 juillet 2023, par nimda

    I'm running into a strange error where each of these following 12 of the 56 xfade transitions are throwing errors :

    


      

    • hlwind
    • 


    • hrwind
    • 


    • vuwind
    • 


    • vdwind
    • 


    • coverleft
    • 


    • coverright
    • 


    • coverup
    • 


    • coverdown
    • 


    • revealleft
    • 


    • revealright
    • 


    • revealup
    • 


    • revealdown
    • 


    


    I've tested all filter transitions with the following command, which is being generated by a nodeJS app with the fluent-ffmpeg library, and only the twelve listed above fail with the same error "option not found" :

    


    ffmpeg -f lavfi -t 169
  -i color=c=000000:s=960x540:r=30:duration=169
  -i file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-1.jpg
  -i file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-2.jpg 
  -filter_complex
    [1:v]format=pix_fmts=yuva420p,scale=w=4608:h=-1,zoompan=z='1.2+(0*(ot/4))':x='(on/(30*4))*(iw-iw/1.2)':y='(ih-ih/zoom)/2':d=120:s=960x540[1_up];
    [1_up]scale=w=960:h=-1[1_down];
    [2:v]format=pix_fmts=yuva420p,scale=w=4608:h=-1,zoompan=z='1.2+(0*(ot/4))':x='(on/(30*4))*(iw-iw/1.2)':y='(ih-ih/zoom)/2':d=120:s=960x540[2_up];
    [2_up]scale=w=960:h=-1[2_down];
    [1_down][2_down]xfade=transition=revealdown:duration=1:offset=3[2_out];
    [0:v][2_out]overlay=x=0:y=0:enable='lte(t,7)'[all_out]
  -vcodec libx264 -r 30 -f mp4 -map [all_out] -preset veryfast -crf 18 -movflags frag_keyframe+empty_moov -pix_fmt yuv420p all.mp4


    


    fflog output :

    


    ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --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-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, lavfi, from 'color=c=000000:s=960x540:r=30:duration=169':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: wrapped_avframe, yuv420p, 960x540 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 30 tbn
Input #1, image2, from 'file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-1.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 36486 kb/s
  Stream #1:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 960x540, 25 fps, 25 tbr, 25 tbn
Input #2, image2, from 'file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-2.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 35680 kb/s
  Stream #2:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 960x540, 25 fps, 25 tbr, 25 tbn
[Parsed_xfade_8 @ 0x60000137cb00] [Eval @ 0x16f9b5348] Undefined constant or missing '(' in 'revealdown'
[Parsed_xfade_8 @ 0x60000137cb00] Unable to parse option value "revealdown"
Error applying option 'transition' to filter 'xfade': Option not found
Error initializing complex filters.
Option not found


    


    The fflog for a successful video generation follows (for comparison to the erroneous log above) :

    


    ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --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-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, lavfi, from 'color=c=000000:s=960x540:r=30:duration=169':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: wrapped_avframe, yuv420p, 960x540 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 30 tbn
Input #1, image2, from 'file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-1.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 36486 kb/s
  Stream #1:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 960x540, 25 fps, 25 tbr, 25 tbn
Input #2, image2, from 'file:///Users/johnbandy/Work/Projects/Active/CNCT/XFade/_assets/crosstrekvx-2.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 35680 kb/s
  Stream #2:0: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 960x540, 25 fps, 25 tbr, 25 tbn
Stream mapping:
  Stream #0:0 (wrapped_avframe) -> overlay
  Stream #1:0 (mjpeg) -> format:default
  Stream #2:0 (mjpeg) -> format:default
  overlay:default -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[swscaler @ 0x140158000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120098000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x130078000] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 2 times
[swscaler @ 0x140598000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x1302d8000] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 1 times
[libx264 @ 0x138e09080] using SAR=1/1
[libx264 @ 0x138e09080] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x138e09080] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x138e09080] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=4 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'all.mp4':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 960x540 [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 15360 tbn
    Metadata:
      encoder         : Lavc60.3.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=    0 fps=0.0 q=0.0 size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
frame=   32 fps=0.0 q=24.0 size=       0kB time=00:00:01.00 bitrate=   0.3kbits/s speed=1.94x    
frame=   87 fps= 84 q=24.0 size=       0kB time=00:00:02.83 bitrate=   0.1kbits/s speed=2.75x    
frame=  164 fps=107 q=24.0 size=       0kB time=00:00:05.40 bitrate=   0.1kbits/s speed=3.52x    
frame=  812 fps=399 q=24.0 size=     512kB time=00:00:26.96 bitrate= 155.5kbits/s speed=13.3x    
frame= 1821 fps=718 q=24.0 size=     512kB time=00:01:00.60 bitrate=  69.2kbits/s speed=23.9x    
frame= 2469 fps=813 q=24.0 size=     512kB time=00:01:22.23 bitrate=  51.0kbits/s speed=27.1x    
frame= 3421 fps=967 q=24.0 size=     512kB time=00:01:53.96 bitrate=  36.8kbits/s speed=32.2x    
frame= 4522 fps=1120 q=24.0 size=     768kB time=00:02:30.63 bitrate=  41.8kbits/s speed=37.3x    
frame= 5070 fps=1184 q=-1.0 Lsize=     812kB time=00:02:48.90 bitrate=  39.4kbits/s speed=39.5x    
video:769kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.626653%
[libx264 @ 0x138e09080] frame I:21    Avg QP: 2.73  size:  3710
[libx264 @ 0x138e09080] frame P:1305  Avg QP: 6.83  size:   449
[libx264 @ 0x138e09080] frame B:3744  Avg QP: 9.07  size:    33
[libx264 @ 0x138e09080] consecutive B-frames:  1.1%  1.4%  0.0% 97.5%
[libx264 @ 0x138e09080] mb I  I16..4: 95.4%  0.7%  3.8%
[libx264 @ 0x138e09080] mb P  I16..4:  0.1%  0.3%  0.1%  P16..4:  2.3%  0.2%  0.1%  0.0%  0.0%    skip:97.0%
[libx264 @ 0x138e09080] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.1%  0.0%  0.0%  direct: 0.1%  skip:99.8%  L0:70.9% L1:27.3% BI: 1.8%
[libx264 @ 0x138e09080] 8x8 transform intra:13.8% inter:71.9%
[libx264 @ 0x138e09080] coded y,uvDC,uvAC intra: 19.1% 12.6% 5.2% inter: 0.3% 0.5% 0.0%
[libx264 @ 0x138e09080] i16 v,h,dc,p: 94%  2%  4%  1%
[libx264 @ 0x138e09080] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  7% 41% 22%  2%  6%  2%  9%  3%  8%
[libx264 @ 0x138e09080] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 32% 16%  2% 11%  4% 12%  3%  8%
[libx264 @ 0x138e09080] i8c dc,h,v,p: 88%  9%  2%  1%
[libx264 @ 0x138e09080] Weighted P-Frames: Y:1.6% UV:1.6%
[libx264 @ 0x138e09080] kb/s:37.25


    


  • The 7 GDPR Principles : A Guide to Compliance

    11 août 2023, par Erin — Analytics Tips, GDPR

    We all knew it was coming. It’s all anyone could talk about — the General Data Protection Regulation (GDPR) took effect on 25 May 2018. 

    You might think five years would have been plenty of time for organisations to achieve compliance, yet many have failed to do so. As of 2022, 81% of French businesses and 95% of American companies were still not compliant.

    If you’re one of these organisations still working on compliance, this blog will provide valuable information about the seven GDPR principles and guide you on your way to compliance. It will also explore how web analytics tools can help organisations improve transparency, ensure data security and achieve GDPR compliance.

    What is GDPR ?

    The European Union (EU) created the General Data Protection Regulation (GDPR) to grant individuals greater control over their data and promote transparency in data processing. 

    Known by many other names across Europe (e.g., RGPD, DSGVO, etc.), the GDPR created a set of rules surrounding the handling of personal data of EU citizens and residents, to make sure organisations aren’t being irresponsible with user names, locations, IP addresses, information gleaned from cookies, and so on. 

    Organisations must assume several responsibilities to achieve GDPR compliance, regardless of their physical location. These obligations include :

    • Respecting user rights
    • Implementing documentation and document retention policies
    • Ensuring data security 

    Why is GDPR compliance important ?

    Data has become a valuable asset for businesses worldwide. The collection and use of data is a feature of almost every sector. However, with increased data usage comes a greater responsibility to protect individuals’ privacy and rights. 

    A YouGov study conducted in 17 key markets found that two in three adults worldwide believe tech corporations across all markets have too much control over their data.

    GDPR is the most extensive government framework aiming to tackle the increasing concern over data collection and handling. GDPR safeguards personal data from misuse, unauthorised access and data breaches. It ensures that businesses handle information responsibly and with respect for individual privacy. It also provided a foundation for similar laws to be created in other countries, including China, which is among the least concerned regions (56%), along with Sweden (54%) and Indonesia (56%).

    GDPR has been pivotal in safeguarding personal data and empowering individuals with more control over their information. Compliance with GDPR builds trust between businesses and their customers. Currently, 71% of the countries in the world are covered by data protection and privacy legislation.

    What are the risks of non-compliance ?

    We’ve established the siginficance of GDPR, but what about the implications — what does it mean for your business ? The consequences of non-compliance can be severe and are not worth being lax about. 

    According to Article 83 of the GDPR, you can be penalised up to 4% of your annual global revenue or €20 million, whichever is higher, for violations. For smaller businesses, such substantial fines could be devastating. Non-compliance could even result in legal action from individuals or data protection authorities, leading to further financial losses.

    Potential outcomes are not just legal and financial. GDPR violations can significantly damage your reputation as a company. Non-compliance could also cost you business opportunities if your policies and processes do not comply and, therefore, do not align with potential partners. Customers trust businesses that take data protection seriously over those that do not.

    Finally, and perhaps the most timid outcome on the surface, individuals have the right to complain to data protection authorities if they believe you violate their data rights. These complaints can trigger an investigation, and if your business is found to be breaking the rules, you could face all of the consequences mentioned above. 

    You may think it couldn’t happen to you, but GDPR fines have collectively reached over €4 billion and are growing at a notable rate. Fines grew 92% from H1 2021 compared with H1 2022. A record-breaking €1.2 billion fine to Meta in 2023 is the biggest we’ve seen, so far. But smaller businesses can be fined, too. A bank in Hungary was fined €1,560 for not erasing and correcting data when the subject requested it. (Individuals can also be fined in flagrant cases, like a police officer fined €1,400 for using police info for private purposes.)

    The 7 GDPR principles and how to comply

    You should now have a good understanding of GDPR, why it’s important and the consequences of not being compliant. 

    Your first step to compliance is to identify the personal data your organisation processes and determine the legal basis for processing each type. You then need to review your data processing activities to ensure they align with the GDPR’s purpose and principles.

    There are seven key principles in Article 5 of the GDPR that govern the lawful processing of personal data :

    Lawfulness, fairness and transparency

    This principle ensures you collect and use data in a legal and transparent way. It must be collected with consent, and you must tell your customers why you need their data. Data processing must be conducted fairly and transparently. 

    How to comply

    • Review your data practices and identify if and why you collect personal data from customers.
    • Update your website and forms to include a clear and easy-to-understand explanation of why you need their data and what you’ll use it for.
    • Obtain explicit consent from individuals when processing their sensitive data.
    • Add a cookie consent banner to your website, informing users about the cookies you use and why.
    • Privacy notices must be accessible at all times. 
    • To ensure your cookies are GDPR compliant, you must :
      • Get consent before using any cookies (except strictly necessary cookies). 
      • Clearly explain what each cookie tracks and its purpose.
      • Document and store user consent.
      • Don’t refuse access to services if users do not consent to the use of certain cookies.
      • Make the consent withdrawal process simple. 

    Use tools like Matomo that can be configured to automatically anonymise data so you don’t process any personal data.

    Purpose limitation

    You can only use data for the specific, legitimate purposes you told your visitors, prospects or customers about at the time of collection. You can’t use it for anything else without asking again. 

    How to comply

    • Define the specific purposes for collecting personal data (e.g., processing orders, sending newsletters).
    • Ensure you don’t use the data for any other purposes without getting explicit consent from the individuals.

    Data minimisation

    Data minimisation means you should only collect the data you need, aligned with the stated purpose. You shouldn’t gather or store more data than necessary. Implementing data minimisation practices ensures compliance and protects against data breaches.

    How to comply

    • Identify the minimum data required for each purpose.
    • Conduct a data audit to identify and eliminate unnecessary data collection points.
    • Don’t ask for unnecessary information or store data that’s not essential for your business operations.
    • Implement data retention policies to delete data when it is no longer required.

    Accuracy

    You are responsible for keeping data accurate and up-to-date at all times. You should have processes to promptly erase or correct any data if you have incorrect information for your customers.

    How to comply

    • Implement a process to regularly review and update customer data.
    • Provide an easy way for customers to request corrections to their data if they find any errors.

    Storage limitation

    Data should not be kept longer than necessary. You should only hold onto it for as long as you have a valid reason, which should be the purpose stated and consented to. Securely dispose of data when it is no longer needed. There is no upper time limit on data storage. 

    How to comply

    • Set clear retention periods for the different types of data you collect.
    • Develop data retention policies and adhere to them consistently.
    • Delete data when it’s no longer needed for the purposes you specified.

    Integrity and confidentiality

    You must take measures to protect data from unauthorised or unlawful access, like keeping it locked away and secure.

    How to comply

    • Securely store personal data with encryption and access controls, and keep it either within the EU or somewhere with similar privacy protections. 
    • Train your staff on data protection and restrict access to data only to those who need it for their work.
    • Conduct regular security assessments and address vulnerabilities promptly.

    Accountability

    Accountability means that you are responsible for complying with the other principles. You must demonstrate that you are following the rules and taking data protection seriously.

    How to comply

    • Appoint a Data Protection Officer (DPO) or someone responsible for data privacy in your company.
    • Maintain detailed records of data processing activities and any data breaches.
    • Data breaches must be reported within 72 hours.

    Compliance with GDPR is an ongoing process, and it’s vital to review and update your practices regularly. 

    What are GDPR rights ?

    Individuals are granted various rights under the GDPR. These rights give them more control over their personal data.

    A diagram with the GDPR consumer rights

    The right to be informed : People can ask why their data is required.

    What to do : Explain why personal data is required and how it will be used.

    The right to access : People can request and access the personal data you hold about them.
    What to do : Provide a copy of the data upon request, free of charge and within one month.

    The right to rectification : If data errors or inaccuracies are found, your customers can ask you to correct them.
    What to do : Promptly update any incorrect information to ensure it is accurate and up-to-date.

    The right to object to processing : Your customers have the right to object to processing their data for certain purposes, like direct marketing.
    What to do : Respect this objection unless you have legitimate reasons for processing the data.

    Rights in relation to automated decision-making and profiling : GDPR gives individuals the right not to be subject to decisions based solely on automated processing, including profiling, if it significantly impacts them.
    What to do : Offer individuals the right to human intervention and express their point of view in such cases.

    The right to be forgotten : Individuals can request the deletion of their data under certain circumstances, such as when the data is no longer necessary or when they withdraw consent.
    What to do : Comply with such requests unless you have a legal obligation to keep the data.

    The right to data portability : People can request their personal data in a commonly used and machine-readable format.
    What to do : Provide the data to the individual if they want to transfer it to another service provider.

    The right to restrict processing : Customers can ask you to temporarily stop processing their data, for example, while they verify its accuracy or when they object to its usage.
    What to do : Store the data during this period but do not process it further.

    Are all website analytics tools GDPR compliant ?

    Unfortunately, not all web analytics tools are built the same. No matter where you are located in the world, if you are processing the personal data of European citizens or residents, you need to fulfil GDPR obligations.

    While your web analytics tool helps you gain valuable insights from your user base and web traffic, they don’t all comply with GDPR. No matter how hard you work to adhere to the seven principles and GDPR rights, using a non-compliant tool means that you’ll never be fully GDPR compliant.

    When using website analytics tools and handling data, you should consider the following :

    Collection of data

    Aligned with the lawfulness, fairness and transparency principle, you must collect consent from visitors for tracking if you are using website analytics tools to collect visitor behavioural data — unless you anonymise data entirely with Matomo.

    A settings interface in the Matomo web analytics tool

    To provide transparency, you should also clarify the types of data you collect, such as IP addresses, device information and browsing behaviour. Note that data collection aims to improve your website’s performance and understand your audience better.

    Storage of data

    Assure your visitors that you securely store their data and only keep it for as long as necessary, following GDPR’s storage limitation principle. Clearly state the retention periods for different data types and specify when you’ll delete or anonymise it.

    Usage of data

    Make it clear that to comply with the purpose limitation principle, the data you collect will not be used for other purposes beyond website analytics. You should also promise not to share data with third parties for marketing or unrelated activities without their explicit consent. 

    Anonymisation and pseudonymisation

    Features like IP anonymisation to protect users’ privacy are available with GA4 (Google Analytics) and Matomo. Describe how you use these tools and mention that you may use pseudonyms or unique identifiers instead of real names to safeguard personal data further.

    Cookies and consent

    Inform visitors that your website uses cookies and other tracking technologies for analytics purposes. Matomo offers customisable cookie banners and opt-out options that allow users to choose their preferences regarding cookies and tracking, along with cookieless options that don’t require consent banners. 

    Right to access and correct data

    Inform visitors of their rights and provide instructions on requesting information. Describe how to correct inaccuracies in their data and update their preferences.

    Security measures

    Assure visitors that you take data security seriously and have implemented measures to protect their data from unauthorised access or breaches. You can also use this opportunity to highlight any encryption or access controls you use to safeguard data.

    Contact information

    Provide contact details for your company’s Data Protection Officer (DPO) and encourage users to reach out if they have any questions or concerns about their data and privacy.

    When selecting web analytics tools, consider how well they align with GDPR principles. Look for features like anonymisation, consent management options, data retention controls, security measures and data storage within the EU or a similarly privacy-protecting jurisdiction. 

    Matomo offers an advanced GDPR Manager. This is to make sure websites are fully GDPR compliant by giving users the ability to access, withdraw consent, object or erase their data, in addition to the anonymizing features. 

    And finally, when you use Matomo, you have 100% data ownership — stored with us in the EU if you’re using Matomo Cloud or on your own servers with Matomo On-Premise — so you can be data-driven and still be compliant with worldwide privacy laws. We are also trusted across industries as we provide accurate data (no trying to fill in the gaps with AI), a robust API that lets you connect your data to your other tools and cookieless tracking options so you don’t need a cookie consent banner. What’s more, our open-source nature allows you to explore the inner workings, offering the assurance of security firsthand. 

    Ready to become GDPR compliant ?

    Whether you’re an established business or just starting out, if you work with data from EU citizens or residents, then achieving GDPR compliance is essential. It doesn’t need to cost you a fortune or five years to get to compliant status. With the right tools and processes, you can be on top of the privacy requirements in no time at all, avoiding any of those hefty penalties or the resulting damage to your reputation. 

    You don’t need to sacrifice powerful data insights to be GDPR compliant. While Google Analytics uses data for its ‘own purposes’, Matomo is an ethical alternative. Using our all-in-one web analytics platform means you own 100% of your data 100% of the time. 

    Start a 21-day free trial of Matomo — no credit card required.

    Disclaimer

    We are not lawyers and don’t claim to be. The information provided here is to help give an introduction to GDPR. We encourage every business and website to take data privacy seriously and discuss these issues with your lawyer if you have any concerns.

  • FFmpeg : High pitched audio when converting AVI video to MP4 [closed]

    15 août 2023, par Karen S

    I'm pretty new to FFmpeg and I'm having trouble converting a video from AVI format to MP4. I'm trying to convert pcm_s16le to aac but the resulting audio is very high pitched and choppy.

    


    The AVI video has two audio streams :

    


    Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream #0:2: Audio: pcm_s16le, 32000 Hz, stereo, s16, 1024 kb/s


    


    In VLC Media Player the video plays fine and it uses the second audio stream.

    


    When I run ffmpeg -i input.avi -vcodec libx264 -crf 27 output.mp4 in my terminal, the output audio in the MP4 file sounds extremely choppy and the voices are chipmunk-like.
This is the codec information for the audio stream in VLC after the conversion :

    


    Codec: MPEG AAC Audio (mp4a)
Type: Audio
Channels: Stereo
Sample rate: 48000 Hz
Bits per sample: 32


    


    This is the terminal output :

    


    ffmpeg version 2023-06-11-git-09621fd7d9-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      58. 13.100 / 58. 13.100
  libavcodec     60. 17.100 / 60. 17.100
  libavformat    60.  6.100 / 60.  6.100
  libavdevice    60.  2.100 / 60.  2.100
  libavfilter     9.  8.101 /  9.  8.101
  libswscale      7.  3.100 /  7.  3.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
[avi @ 000001d1b05ffbc0] Switching to NI mode, due to poor interleaving
Input #0, avi, from 'VG2002-06-10 TAPE_71 001.avi':
  Duration: 00:10:40.64, start: 0.000000, bitrate: 28852 kb/s
  Stream #0:0: Video: dvvideo, yuv411p, 720x480 [SAR 32:27 DAR 16:9], 25000 kb/s, SAR 8:9 DAR 4:3, 60k fps, 29.97 tbr, 60k tbn
  Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
  Stream #0:2: Audio: pcm_s16le, 32000 Hz, stereo, s16, 1024 kb/s
File 'VG2002-06-10compress.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (dvvideo (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[pcm_s16le @ 000001d1b0696680] This decoder does not support parameter changes, but PARAM_CHANGE side data was sent to it.
[pcm_s16le @ 000001d1b0696680] Error applying parameter changes.
[libx264 @ 000001d1b0ab4940] using SAR=8/9
[libx264 @ 000001d1b0ab4940] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000001d1b0ab4940] profile High 4:2:2, level 3.0, 4:2:2, 8-bit
[libx264 @ 000001d1b0ab4940] 264 - core 164 r3107 a8b68eb - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=27.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'VG2002-06-10compress.mp4':
  Metadata:
    encoder         : Lavf60.6.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv422p(tv, bottom coded first (swapped)), 720x480 [SAR 8:9 DAR 4:3], q=2-31, 29.97 fps, 30k tbn
    Metadata:
      encoder         : Lavc60.17.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc60.17.100 aac
[dvvideo @ 000001d1b0a26f00] Concealing bitstream errors.49 bitrate=1424.2kbits/s speed=2.51x
    Last message repeated 76 times
[dvvideo @ 000001d1b0f61680] Concealing bitstream errors.23 bitrate=1451.5kbits/s speed=2.47x
    Last message repeated 19 times
[out#0/mp4 @ 000001d1b0696c80] video:106080kB audio:6745kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.465412%
frame=19200 fps= 73 q=-1.0 Lsize=  113351kB time=00:10:40.60 bitrate=1449.5kbits/s speed=2.43x
[libx264 @ 000001d1b0ab4940] frame I:99    Avg QP:26.85  size: 42388
[libx264 @ 000001d1b0ab4940] frame P:4922  Avg QP:29.69  size: 13724
[libx264 @ 000001d1b0ab4940] frame B:14179 Avg QP:33.82  size:  2601
[libx264 @ 000001d1b0ab4940] consecutive B-frames:  1.2%  0.8%  1.1% 97.0%
[libx264 @ 000001d1b0ab4940] mb I  I16..4: 12.2% 77.3% 10.4%
[libx264 @ 000001d1b0ab4940] mb P  I16..4:  1.7%  8.1%  1.4%  P16..4: 39.9% 16.6% 12.2%  0.0%  0.0%    skip:20.1%
[libx264 @ 000001d1b0ab4940] mb B  I16..4:  0.3%  0.6%  0.1%  B16..8: 38.6%  3.8%  1.1%  direct: 3.3%  skip:52.2%  L0:42.2% L1:49.3% BI: 8.5%
[libx264 @ 000001d1b0ab4940] 8x8 transform intra:71.6% inter:71.6%
[libx264 @ 000001d1b0ab4940] coded y,uvDC,uvAC intra: 72.3% 66.8% 11.7% inter: 17.3% 10.6% 0.2%
[libx264 @ 000001d1b0ab4940] i16 v,h,dc,p: 11% 64%  7% 17%
[libx264 @ 000001d1b0ab4940] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 26% 24%  5%  6%  5%  9%  5%  9%
[libx264 @ 000001d1b0ab4940] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  8% 52% 13%  3%  5%  4%  7%  3%  6%
[libx264 @ 000001d1b0ab4940] i8c dc,h,v,p: 58% 21% 17%  5%
[libx264 @ 000001d1b0ab4940] Weighted P-Frames: Y:3.5% UV:1.3%
[libx264 @ 000001d1b0ab4940] ref P L0: 51.9% 15.0% 23.5%  9.3%  0.3%
[libx264 @ 000001d1b0ab4940] ref B L0: 87.5%  9.7%  2.9%
[libx264 @ 000001d1b0ab4940] ref B L1: 95.1%  4.9%
[libx264 @ 000001d1b0ab4940] kb/s:1356.46
[aac @ 000001d1b0a6ab80] Qavg: 517.695


    


    FFmpeg automatically selects the first audio stream to encode but then this error comes up :

    


    [pcm_s16le @ 000001d1b0696680] This decoder does not support parameter changes, but PARAM_CHANGE side data was sent to it.


    


    To bypass this error, I've edited the FFmpeg command so that the second stream is selected instead for aac encoding, but then the resulting MP4 video is silent.

    


    Does anyone know why FFmpeg is unable to convert the original AVI audio to aac without it sounding higher-pitched ? I think that the sample rate of the first stream might be set incorrectly but I'm not too sure how to fix it so that the encoder reads it properly.