Recherche avancée

Médias (0)

Mot : - Tags -/masques

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

Autres articles (43)

Sur d’autres sites (8557)

  • Exceeded GA’s 10M hits data limit, now what ?

    1er décembre 2021, par Joselyn Khor

    Exceeded Google Analytics’ 10M hits data limit, now what ?

    “Your data volume (1XXM hits) exceeds the limit of 10M hits per month as outlined in our Terms of Service. If you continue to exceed the limit, we will stop processing new data on XXX 21, 2019. Learn more about possible solutions.”

    Yikes. Alarm bells were ringing when a Google Analytics free user came to us faced with this notice. Let’s call him ‘Mark’. Mark had reached the limits on the data he could collect through Google Analytics and was shocked by the limited options available to fix the problem, without blowing the budget. The thoughts racing through his head were :

    • “What happens to all my data ?”
    • “What if Google starts charging USD150K now ?”

    Then he came across Matomo and decided to get in touch with our support team …

    “Can you fix this issue ?” he asked us.

    “Absolutely !” we said.

    We’ll get back to helping Mark in a minute. For now let’s go over why this was such a dilemma for him.

    In order to resolve this data limits issue, one of the solutions was for him to upgrade to Google Analytics 360, which meant shelling out USD150,000 per year for their 1 billion hits per month option. Going from free to USD150,000 was too much of a stretch for a growing company.

    “Your data volume (1XXM hits) exceeds the limit of 10M hits per month …”, what did this message mean ?

    With the free version, Mark could collect up to 10 million “hits” per month, per account. Going over meant Google Analytics could stop collecting any more data for free as outlined in their Terms.

    Google Analytics’ Terms of Service (2018, sec. 2) states, “Subject to Section 15, the Service is provided without charge to You for up to 10 million Hits per month per account.”[1]

    What is a "hit" in Google Analytics ?

    Data being sent to Google Analytics. It can be a transaction, event, social interaction or pageview - these all produce what Google calls a “hit”.

    Google Analytics data limits
    Google Analytics Terms of Service

    And their Analytics Help Data Limits (n.d.) support page makes clear that : “If a property sends more hits per month to Analytics than allowed by the Analytics Terms of Service, there is no assurance that the excess hits will be processed. If the property’s hit volume exceeds this limit, a warning may be displayed in the user interface and you may be prevented from accessing reports.”[2]

    Google Analytics data collection limit
    Google Analytics’ data limits support page

    Possible solutions

    So the possible solutions given by Google Analytics’ Data Limits support page were (also shown in image below) :

    • To pay USD150K to upgrade to Google Analytics 360
    • To send fewer hits by setting up sampling
    • Or choose the slightly less relevant option to upgrade mobile app tracking to Google Analytics for Firebase.

    Without the means to pay, the free version was fast becoming inaccessible for Mark as he was facing a future where he risked no longer having access to up-to-date data used in his business’ reporting.

    Mark was facing a problem that potentially didn’t have a cost-effective solution.

    Google Analytics data limits
    Google Analytics’ data limits support page

    So what can you really do about it ?

    This is where we can help provide some assistance. If you’re reading this article, we’ll assume you can relate to Mark and share with you the advice on options we gave him.

    Options :

    One option posed by Google is for you to send fewer hits by auditing your data collection processes

    If you really don’t have the budget, you’ll need to reassess your data collection priorities and go over your strategies to see what is necessary to track, and what isn’t.

    • Make sure you know what you’re tracking and why. Look at what websites are being tracked by Google and into what properties.
    • Go through what data you’re tracking and decide what is or isn’t of value.
    • Set up data sampling, this however, will lead to inaccurate data.

    From here you can start to course correct. If you’ve found data you’re not using for analysis, get rid of these events/pageviews in your Google Analytics.

    But the limitations here are that eventually, you’re going to run out of irrelevant metrics and everything you’re tracking will be essential. So you’ll hit another brick wall and return to the same situation.

    Option 2 Ignore and continue using the free version of Google Analytics

    With this option, you’ll have to bear the business risks involved by basing decisions off of analytics reports that may or may not be updated. In this case, you may still get contacted about exceeding the limits. As the free service is provided for only up to 10 million hits, once you’ve gone over them, you’re violating what’s stipulated in the Terms of Service. 

    There’s also the warning that “… you may be prevented from accessing reports” (Data limits, n.d.). So while we may not know for certain what Google Analytics will do, in this case it may be better to be safe rather than sorry by acting quickly to resolve it. 

    Option 3 -The Matomo solution – a privacy-friendly Google Analytics alternative

    Upgrade to a web analytics platform that can handle your demanding data requirements. Save money while continuing to gain valuable insights by moving over to Matomo Analytics (recommended)

    This is where you can save up to USD130,000 a year. As well as that, the transition from Google Analytics to the Matomo Cloud is a seamless experience as setup and maintenance is taken care of by our experts.

    For example, you can get up to 25M hits for USD3,241/month (or USD38,900/year) on the Essentials plan.

    Or even 25M hits for USD4,991/month (or USD59,900/year) on the Business plan – which offers additional web analytics and conversion optimization resources.

    Matomo Cloud is a great option if you’re looking for a secure, cost-effective and powerful analytics solution. You also get what Google Analytics could never offer you : full control and ownership of your own data and privacy. 

    Try Matomo free for 21 days – no credit card required.

    No need to worry about losing your Google Analytics data because …

    Now you can import your historic Google Analytics data directly into your Matomo with the Google Analytics Importer tool. Simply follow the step-by-step guide to get started for free.

    Along with savings you can get :

    • A solution for the data limits issue forever. You choose the right plan to suit your data needs and adapt as you continue growing
    • 100% accurate data (no data sampling)
    • 100% data ownership of all your information without signing away your data to a third party
    • Powerful web analytics and conversion optimization features
    • Matomo Tag Manager
    • Easy setup
    • Support from Matomo’s specialists

    Learn more about Matomo Cloud pricing.

    Or go for Matomo On-Premise

    If you have the in-house infrastructure to support self-hosting Matomo on your own servers then there’s also the option of Matomo On-Premise. Here you’ll get full security knowing the data is on your own servers. 

    Setup will also require technical knowledge. There will also be costs associated with acquiring your own servers, and keeping up with regular maintenance and updates. With On-Premise you get maximum flexibility, with no data limits whatsoever. But if you’re coming over from Google Analytics and don’t have the infrastructure and team to host On-Premise, the Matomo Cloud could be right for you.

    Learn more about Matomo On-Premise.

    Where do you go from here ?

    Getting 10 millions hits per month is no small feat, it’s actually pretty fantastic. But if it means having to shell out USD150,000 just to be able to continue with Google Analytics, we feel your problem could be fixed with Matomo Cloud. You could then put the rest of the money you save to better use.

    If you choose Matomo, you now have the option to : 

    • Raise your data limits for a fraction of Google Analytics 360’s price
    • Get a comprehensive range of analytics features for the most impactful insights to ensure your website continues excelling
    • Get data that’s not sampled – meaning 100% accuracy in your reports
    • Migrate your data easily with the help of Matomo’s support team

    We’ll have you covered. 

    By sharing with you the options and advice we gave to Mark, we hope you’ll be able to find a solution that makes your life easier and solves the issue of data restrictions forever.

    The team at Matomo is here to help you every step of the way to ensure a stress-free transition from Google Analytics if that is what works best for you.

    For next steps, check out our live online Matomo demo and start your free 21-day trial.

    References :

    [1] Terms of Service. (2018, July 24). In Google Analytics Terms of Service. Retrieved June 12, 2019, from https://www.google.com/analytics/terms/us.html

    [2] Data limits. (n.d.). In Analytics Help Data limits. Retrieved June 12, 2019, from https://support.google.com/analytics/answer/1070983?hl=en

  • Concat failing with ffmpeg 5.0 vs ffmpeg 4.1.1

    16 avril 2022, par Woolwit

    I have ffmpeg 5.0 installed on a new Silicon M1 Mac Mini running Monterey and concat is failing with the same command that has served me well on ffmpeg 4.1.1 lo, all these many years. Anyone have an idea why this command would fail on the newer version of ffmpeg.
This is with the exact same mp4 files. The ffmpeg 4.1.1. completes the concat in less than a minute.

    


    ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4



    


    Thank you !

    


    ffmpeg 4.1.1 Info and output...

    


    $ ffmpeg -version
ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom -


$ ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4
ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr --enable-libvidstab
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:13.01, start: 0.000000, bitrate: 1240 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480, 1103 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'vid2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:07.00, start: 0.000000, bitrate: 122 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 112 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 (h264) -> concat:in0:v0
  Stream #0:1 (aac) -> concat:in0:a0
  Stream #1:0 (h264) -> concat:in1:v0
  Stream #1:1 (aac) -> concat:in1:a0
  concat:out:v0 -> Stream #0:0 (libx264)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x7fd56881dc00] using SAR=1/1
[libx264 @ 0x7fd56881dc00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0x7fd56881dc00] profile High, level 3.0
[libx264 @ 0x7fd56881dc00] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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=3 lookahead_threads=1 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=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.35.100 aac
frame=   46 fps=0.0 q=0.0 size=       0kB time=00:00:01.55 bitrate=   0.2kbits/s spframe=   64 fps= 57 q=26.0 size=       0kB time=00:00:02.15 bitrate=   0.2kbits/s sframe=   83 fps= 51 q=29.0 size=       0kB time=00:00:02.78 bitrate=   0.1kbits/s sframe=  106 fps= 49 q=26.0 size=       0kB time=00:00:03.55 bitrate=   0.1kbits/s sframe=  131 fps= 49 q=29.0 size=     256kB time=00:00:04.38 bitrate= 478.0kbits/s sframe=  155 fps= 49 q=29.0 size=     256kB time=00:00:05.20 bitrate= 403.3kbits/s sframe=  178 fps= 48 q=29.0 size=     512kB time=00:00:05.96 bitrate= 702.9kbits/s sframe=  198 fps= 47 q=26.0 size=     512kB time=00:00:06.61 bitrate= 633.9kbits/s sframe=  218 fps= 46 q=29.0 size=     512kB time=00:00:07.26 bitrate= 577.2kbits/s sframe=  238 fps= 46 q=29.0 size=     768kB time=00:00:07.96 bitrate= 790.0kbits/s sframe=  255 fps= 44 q=29.0 size=     768kB time=00:00:08.52 bitrate= 738.3kbits/s sframe=  278 fps= 45 q=26.0 size=     768kB time=00:00:09.28 bitrate= 677.4kbits/s sframe=  296 fps= 44 q=29.0 size=    1024kB time=00:00:09.89 bitrate= 848.1kbits/s sframe=  317 fps= 43 q=29.0 size=    1024kB time=00:00:10.58 bitrate= 792.3kbits/s sframe=  333 fps= 42 q=29.0 size=    1024kB time=00:00:11.12 bitrate= 754.2kbits/s sframe=  351 fps= 42 q=29.0 size=    1024kB time=00:00:11.72 bitrate= 715.4kbits/s sframe=  363 fps= 41 q=29.0 size=    1024kB time=00:00:12.14 bitrate= 690.8kbits/s sframe=  377 fps= 40 q=29.0 size=    1280kB time=00:00:12.60 bitrate= 831.7kbits/s sframe=  389 fps= 39 q=29.0 size=    1280kB time=00:00:12.95 bitrate= 809.3kbits/s sframe=  401 fps= 38 q=29.0 size=    1280kB time=00:00:13.39 bitrate= 782.7kbits/s dframe=  410 fps= 37 q=29.0 size=    1280kB time=00:00:13.72 bitrate= 764.1kbits/s dframe=  425 fps= 37 q=29.0 size=    1536kB time=00:00:14.18 bitrate= 886.9kbits/s dframe=  446 fps= 37 q=29.0 size=    1536kB time=00:00:14.90 bitrate= 844.1kbits/s dframe=  506 fps= 40 q=29.0 size=    1536kB time=00:00:16.90 bitrate= 744.4kbits/s dframe=  564 fps= 43 q=29.0 size=    1536kB time=00:00:18.83 bitrate= 668.2kbits/s dframe=  600 fps= 44 q=-1.0 Lsize=    1807kB time=00:00:20.03 bitrate= 738.9kbits/s dup=35 drop=0 speed=1.45x    
video:1580kB audio:206kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.204253%
[libx264 @ 0x7fd56881dc00] frame I:74    Avg QP:19.97  size:  9747
[libx264 @ 0x7fd56881dc00] frame P:205   Avg QP:19.82  size:  2384
[libx264 @ 0x7fd56881dc00] frame B:321   Avg QP:20.41  size:  1269
[libx264 @ 0x7fd56881dc00] consecutive B-frames: 25.8%  5.3%  9.5% 59.3%
[libx264 @ 0x7fd56881dc00] mb I  I16..4: 17.8% 79.7%  2.5%
[libx264 @ 0x7fd56881dc00] mb P  I16..4:  2.7%  5.7%  0.7%  P16..4: 17.7%  3.1%  1.2%  0.0%  0.0%    skip:68.8%
[libx264 @ 0x7fd56881dc00] mb B  I16..4:  0.3%  1.1%  0.1%  B16..8: 18.4%  1.7%  0.2%  direct: 1.6%  skip:76.5%  L0:57.0% L1:40.0% BI: 3.0%
[libx264 @ 0x7fd56881dc00] 8x8 transform intra:75.9% inter:87.2%
[libx264 @ 0x7fd56881dc00] coded y,uvDC,uvAC intra: 54.9% 8.2% 1.3% inter: 6.5% 6.0% 0.9%
[libx264 @ 0x7fd56881dc00] i16 v,h,dc,p: 44% 34% 14%  8%
[libx264 @ 0x7fd56881dc00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 22% 30%  4%  5%  3%  5%  3%  5%
[libx264 @ 0x7fd56881dc00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 41% 29%  1%  2%  2%  2%  1%  1%
[libx264 @ 0x7fd56881dc00] i8c dc,h,v,p: 92%  5%  1%  1%
[libx264 @ 0x7fd56881dc00] Weighted P-Frames: Y:1.5% UV:0.5%
[libx264 @ 0x7fd56881dc00] ref P L0: 58.7%  9.7% 21.6% 10.0%  0.1%
[libx264 @ 0x7fd56881dc00] ref B L0: 85.1% 11.6%  3.3%
[libx264 @ 0x7fd56881dc00] ref B L1: 95.7%  4.3%
[libx264 @ 0x7fd56881dc00] kb/s:646.32
[aac @ 0x7fd56881f400] Qavg: 23136.783
$


    


    ffmpeg 5.0 Info and output... It never completes

    


    % ffmpeg -version
ffmpeg version 5.0-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.17)

% ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4
ffmpeg version 5.0-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:13.01, start: 0.000000, bitrate: 1240 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x480, 1103 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'vid2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:07.00, start: 0.000000, bitrate: 122 kb/s
  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], 112 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 (h264) -> concat
  Stream #0:1 (aac) -> concat
  Stream #1:0 (h264) -> concat
  Stream #1:1 (aac) -> concat
  concat -> Stream #0:0 (libx264)
  concat -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[mp4 @ 0x7fbab280dbc0] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7fbab280e840] using SAR=1/1
[libx264 @ 0x7fbab280e840] MB rate (1350000000) > level limit (16711680)
[libx264 @ 0x7fbab280e840] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x7fbab280e840] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7fbab280e840] 264 - core 164 r3081 19856cc - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], q=2-31, 1000k tbn
    Metadata:
      encoder         : Lavc59.18.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), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc59.18.100 aac
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.23 bitrate=   1.7kbits/sMore than 1000 frames duplicated
frame=33367 fps=843 q=33.0 size=    2048kB time=00:00:00.27 bitrate=60212.7kbitsMore than 10000 frames duplicatedx    
frame=66733 fps=841 q=33.0 size=    4352kB time=00:00:00.32 bitrate=109671.7kbitMore than 100000 frames duplicatedx    
frame=100100 fps=825 q=33.0 size=    6656kB time=00:00:00.34 bitrate=156550.4kbiframe=133467 fps=806 q=33.0 size=    8704kB time=00:00:00.39 bitrate=180634.7kbiframe=166834 fps=810 q=33.0 size=   11008kB time=00:00:00.41 bitrate=215757.8kbiframe=200200 fps=812 q=33.0 size=   13312kB time=00:00:00.46 bitrate=234824.6kbiframe=233567 fps=814 q=33.0 size=   153
...


    


  • How can I retain 2x pixel density when encoding Retina screen capture with ffmpeg ?

    26 février 2018, par hfossli

    Whenever I use ffmpeg to encode a HiDPI/Retina screen recording, the video plays at 2x the size, so it looks fuzzy, because the pixel density is not retained.

    How can I retain the original pixel density of HiDPI screen recordings with ffmpeg ?

    How to reproduce :

    1. Use QuickTime Player to create a Screen Recording on a Retina Mac.
    2. Play the video you recorded in QuickTime Player using the ⌘1 Actual Size view. Notice that it’s playing 2:1 on your Retina Display, so the video looks sharp. It’s playing in half the space of the actual recorded pixels.
    3. Use ffmpeg to encode the video using a command like this :

      ffmpeg -i haha.mov -c:v libx264 -crf 23 haha-lg.mov
    4. Play the new ffmpeg-compressed video in QuickTime Player using the ⌘1 Actual Size view. Notice that it’s playing 1:1, so the video looks fuzzy.

    To clarify, the video does not look blurry because it was compressed. Rather, it looks blurry because the video is being played twice as big as it should be, at a 1:1 pixel density, instead of the required 2:1 pixel density, presumably because some metadata is being discarded when encoding.

    For the record, VLC plays both videos too big (blurry). So being able to play HiDPI videos seems to be a feature of QuickTime Player.

    Here is the detailed information ffmpeg shows for the original screen recording :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'haha.mov':
     Metadata:
       major_brand     : qt  
       minor_version   : 0
       compatible_brands: qt  
       creation_time   : 2018-02-26T16:46:00.000000Z
       com.apple.quicktime.make: Apple
       com.apple.quicktime.model: iMac18,3
       com.apple.quicktime.software: Mac OS X 10.13.3 (17D102)
       com.apple.quicktime.creationdate: 2018-02-26T10:45:50-0600
     Duration: 00:00:04.35, start: 0.000000, bitrate: 10947 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1396x928 [SAR 1:1 DAR 349:232], 10701 kb/s, 60 fps, 60 tbr, 6k tbn, 12k tbc (default)
       Metadata:
         creation_time   : 2018-02-26T16:46:00.000000Z
         handler_name    : Core Media Data Handler
         encoder         : H.264

    And here is the information for the ffmpeg-compressed version :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'haha-lg.mov':
     Metadata:
       major_brand     : qt  
       minor_version   : 512
       compatible_brands: qt  
       encoder         : Lavf57.83.100
     Duration: 00:00:04.35, start: 0.000000, bitrate: 1923 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1396x928 [SAR 1:1 DAR 349:232], 1783 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
       Metadata:
         handler_name    : DataHandler
         encoder         : Lavc57.107.100 libx264